深度学习入门(基于python的理论与实现)-09神经网络(多维数组运算)
·
1.多维数组
import numpy as np
A=np.array([[1,2,3,4,5],[1,23,3,4,5]])
B=np.array([1,2,3,4,5])
print(A)
print(A.shape)
print(f"数组的形状{str(A.shape)}")
print(f"数组的形状{str(B.shape)}")
# print("数组的维数"+A.ndim)报错
# 方法1:使用字符串格式化
print(f"数组的维数{A.ndim}")
# 方法2:将整数转换为字符串后拼接
print("数组的维数" + str(A.ndim))
# 三维数组
# 创建一个3×3×3的三维数组(3个3×3的矩阵)
three_d_array = np.array([
[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
[[10, 11, 12], [13, 14, 15], [16, 17, 18]],
[[19, 20, 21], [22, 23, 24], [25, 26, 27]]
])#三层中括号
# 查看数组的形状(三维)
print("数组形状:", three_d_array.shape) # 输出 (3, 3, 3)
# 查看数组的维度
print("数组维度:", three_d_array.ndim) # 输出 3
# 访问三维数组中的元素(第2个矩阵的第1行第0列,索引从0开始)
print("指定元素:", three_d_array[1, 0, 2]) # 输出 12
# 访问第一个二维数组(矩阵)
print("第一个矩阵:\n", three_d_array[0])
print("第二个矩阵:\n", three_d_array[1])
2.矩阵(二维数组)乘法
矩阵乘积可以通过np.dot(A,B)来实现。要注意的是,np.dot(A, B)和np.dot(B, A)的 值可能不一样。

注意矩阵A*B时:A的第1维的元素个数(列数) 必须和矩阵B的第0维的元素个数(行数)相等。
代码实现:
import numpy as np
A=np.array([[1,2,3],[4,5,6]]) #2*3
B=np.array([[2,4],[3,5],[6,8]])#3*2
C=A.dot(B) #2*2
print(C)
运算结果的矩阵C的形状是由矩阵A的行数 和矩阵B的列数构成的
3.神经网络的内积

实现该神经网络时,要注意X、W、Y的形状,特别是X和W的对应 维度的元素个数是否一致,这一点很重要。
更多推荐



所有评论(0)