numpy两个数组的相加、相减以及相乘都是对应元素之间的操作。
import numpy as np
x = np.array([[2, 2, 3], [1, 2, 3]])
y = np.array([[1, 1, 3], [2, 2, 4]])
print(x*y)
# 与线性代数中的矩阵相乘不一样。
输出结果为:
[[ 2 2 9]
[ 2 4 12]]
当两个数组的形状不相同的时候,我们可以通过扩展数组的方法来实现相加、相减、相乘等操作,这种机制叫做广播(broadcasting)。
广播的原则:如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符,或其中的一方的长度为1,则认为它们是广播兼容的。广播会在缺失或长度为1的维度上进行。
广播主要发生在两种情况,一种是两个数组的维数不相等,但是它们的后缘维度的轴长相符;另外一种是有一方的长度为1。
数组维度不同,后缘维度的轴长相符
import numpy as np
arr1 = np.array([[0,0,0], [1,1,1,], [2,2,2,], [3,3,3]])
arr2 = np.array([1,2,3])
arr_sum &#