0%

Python的numpy中的各种乘积

Python的numpy中的各种乘积

1. np.dot()

如果参与运算的是两个一维数组(或向量),则结果就是两个数组的内积(inner product)

1
2
3
4
a = np.array([1, 2]) # shape:(2,)
b = np.array([1, 2]) # shape:(2,)
print(np.dot(a,b))
>> 5

如果参与运算的是两个二维数组(或形式上的矩阵),则结果就是两个矩阵乘积

1
2
3
4
5
a = np.array([[1,2,3], [4,5,6]]) # shape:(2,3)
b = np.array([[1,2],[3,4],[5,6]]) # shape:(3,2)
print(np.dot(a,b))
>> [[22 28]
[49 64]]

2. np.multiply() 和 *

*和np.multiply()方法针对的是标量的运算,当参与运算的是两个数组时,结果是两个数组对应位置的乘积

1
2
3
4
5
6
a = np.array([1,2,3])
b = np.array([1,2,3])
print(a*b)
print(np.multiply(a,b))
>> [1 4 9]
>> [1 4 9]

3. np.matmul() 和 @

matmul是matrix multiply的缩写,是专门用于矩阵乘法的函数,@是np.matmul()的简化写法。

1
2
3
4
5
6
7
8
a = np.array([[1,2], [3,4]])
b = np.array([[1,2], [3,4]])
print(a@b)
print(np.matmul(a,b))
>> [[7 10]
[15 22]]
>> [[7 10]
[15 22]]