Numpy
Numpy基础8:矩阵操作
定义变量A、B
A = np.ones(shape=(5,4),dtype='int8')
B = np.full(shape=(5,4),fill_value=2,dtype='int8')
求和
np.add()
np.add(A,B)
⇒ \Rightarrow ⇒array([[3, 3, 3, 3], [3, 3, 3, 3], [3, 3, 3, 3], [3, 3, 3, 3], [3, 3, 3, 3]], dtype=int8)
相减
np.subtract()
np.subtract(B,A)
⇒ \Rightarrow ⇒array([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], dtype=int8)
乘积
np.multiply()
np.multiply(A,B)
⇒ \Rightarrow ⇒array([[2, 2, 2, 2], [2, 2, 2, 2], [2, 2, 2, 2], [2, 2, 2, 2], [2, 2, 2, 2]], dtype=int8)
相除
np.divide()
np.divide(A,B)
⇒ \Rightarrow ⇒array([[0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5]])
点积
np.dot()
np.dot(A.T,B)
⇒ \Rightarrow ⇒array([[10, 10, 10, 10], [10, 10, 10, 10], [10, 10, 10, 10], [10, 10, 10, 10]], dtype=int8)
向量运算
np.add(A.T,[1,2,3,4,5])
⇒ \Rightarrow ⇒array([[2, 3, 4, 5, 6],[2, 3, 4, 5, 6], [2, 3, 4, 5, 6], [2, 3, 4, 5, 6]])
np.dot(A.T,[1,2,3,4,5]) #会降维
⇒ \Rightarrow ⇒array([15, 15, 15, 15])
三维张量和矩阵之间的点积
定义变量C
C = np.random.randint(0,150,(6,5,4))
当前张量中一共有6个矩阵
张量和矩阵的运算 相当于 把每一个矩阵和A.T矩阵做一个点积
np.dot(C,A.T)
⇒ \Rightarrow ⇒array([[[428, 428, 428, 428, 428], [336, 336, 336, 336, 336], [211, 211, 211, 211, 211],[319, 319, 319, 319, 319], [263, 263, 263, 263, 263]],…, [[188, 188, 188, 188, 188], [250, 250, 250, 250, 250], [270, 270, 270, 270, 270], [245, 245, 245, 245, 245], [435, 435, 435, 435, 435]]])
- 三维张量和向量运算(同理)