np.multiply()函数
函数作用:数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致
演示:
import numpy as np
a = np.matrix([[1,2],[3,4]])
b = np.matrix([[5,6],[7,8]])
c = np.multiply(a,b)
应用场景
【1】求,有矩阵W和矩阵X,分别记录了w_ij和x_ij,就可以使用np.multiply(a,b).sum()求出对应位置乘积的和。
np.dot()函数
函数作用:对于秩为1的数组,执行对应位置相乘,然后再相加;对于秩不为1的二维数组,执行矩阵乘法运算;
星号(*)乘法运算
作用:对数组执行对应位置相乘;对矩阵执行矩阵乘法运算
实例
import numpy as np
# -------------np.multiply()函数-------------
A = np.arange(1,5).reshape(2,2)
print(f'A={A}')
B = np.arange(0,4).reshape(2,2)
print(f'B={B}')
print(f'np.multiply(A,B):\n{np.multiply(A,B)}')
print(f'np.multiply(np.mat(A),np.mat(B)) :\n{np.multiply(np.mat(A),np.mat(B)) }')
# -------------np.dot()函数-------------
print('# -------------np.dot()函数-------------')
print(f'np.dot(A,B)\n{np.dot(A,B)}') #秩不为1的数组执行矩阵相乘运算
C = np.arange(1,4)
D = np.arange(0,3)
print(f'np.dot(C,D)={np.dot(C,D)}') #秩为1的数组对应位置相乘,再求和
print(f'np.dot(np.mat(A),np.mat(B)) :\n{np.dot(np.mat(A),np.mat(B)) } ') #执行矩阵乘法运算
# -------------星号-------------
print('# -------------星号函数-------------')
print(A*B) # 数组对应位置点乘
print((np.mat(A))*(np.mat(B)))
参考
python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别_o_Eagle_o的博客-CSDN博客