格式:np.multiply(a, b)
注意:文中用到了arange、dot、reshape函数以及转置(.T)
由于multiply是ufunc函数,ufunc函数会对这两个数组的对应元素进行计算,因此它要求这两个数组有相同的大小(shape相同),相同则是计算内积。如果shape不同的话,会将小规格的矩阵延展成与另一矩阵一样大小,再求两者内积。
1、当两个规格大小一样时,得到结果则是两个的内积
In : a = np.arange(1,5).reshape(2,2)# a.shape = (2,2) #a.shape = (2,2)
In : b = np.array([1,2,3,4]).reshape(2,2) #b.shape = (2,2)
Out: [[1 2] #其中a =b
[3 4]]
In : np.multiply(a, b)
Out: [[ 1 4]
[ 9 16]] #结果是a与b的内积
2、当两个矩阵大小不一样,则先将小的扩大到与另一矩阵大小一样,再求内积
In : a = np.array ([[1,2,3],[4,5,6]]) # a.shape = (2, 3)
Out: [[1 2 3]
[4 5 6]]
In : b = np.array([1,2,3]) # b.shape = (1,3)
In : np.multiply(a, b) #先将b扩展成 array ([[1, 2, 3],
# [1, 2, 3]])
Out: array ([[1, 4, 9],
[4,10,18]]) #最后a与b*的内积(b*是延展后的b)