1. 对于数组array
-
乘
就是对应位置的元素相乘:
X1 = np.array([[1,2], [3, 4]])
X2 = X1
print X2*X1
[[ 1 4]
[ 9 16]] -
加
就是对应位置的相加:
X1 = np.array([[1,2], [3, 4]])
X2 = X1
print X2+X1
[[2 4]
[6 8]]
2. 对于矩阵matrix
-
乘
就是矩阵的点乘:
X1 = np.matrix([[1,2], [3, 4]])
X2 = X1
print X2*X1
[[ 7 10]
[15 22]] -
加
有两种情况,第一种是X1与X2的大小一致,就是普通的矩阵相加,即对应位置相加:
X1 = np.matrix([[1,2], [3, 4]])
X2 = X1
print X2+X1
[[2 4]
[6 8]]第二种情况是n*1的X1 + m*1的X2(或者反过来),就会得到n*m的矩阵:
X1 = np.matrix([[1,2,3]])
X2 = np.matrix([[1,2,3,4]]).T
print X2+X1
[[2 3 4]
[3 4 5]
[4 5 6]
[5 6 7]]
3. 混用情况
在numpy中存在很多的matrix和array 运算符混用的情况,程序也能通过,但这样很不好,尽量按照以上原则使用。
如果2维的array想要进行矩阵的点乘运算,可以用np.dot(X1, X2)
如果matrix想要进行对应位置的乘,可以用np.multiply(X2,X1)