一、何为广播机制
a、广播机制是Numpy(开源数值计算工具,用于处理大型矩阵)里一种向量化数组操作方法。
b、Numpy的通用函数(Universal functions) 中要求输入的两个数组shape是一致的,当数组的shape不想等的时候,则会使用广播机制,调整数组使得两个shape一致,满足规则,则可以运算,否则就出错。
二、遵守哪些规则
a、如果数组的秩不同,将秩较小的数组进行扩展,直到两个数组的尺寸长度都一样。
b、如果两个数组在某个维度上的长度是相同的,或者其中一个数组在该维度上的长度为1,那么我们就说这两个数组在该维度上是相容的。
c、如果两个数组在所有维度上都是相容的,它们就能使用广播。
d、广播之后,两个数组的尺寸将和较大的数组尺寸一样。
e、在任何一个维度上,如果一个数组的长度为1,另一个数组长度大于1,那么在该维度上,就好像是对第一个数组进行了复制。
三、代码 (python 3.6)
import numpy as np # 矩阵x的每一行加上向量y, 将结果保存在矩阵result中
x = np.array([[1,2,3], [4,5,6], [7,8,9], [10,11,12]])
y = np.array([0, 1, 0])
# 使用广播机制将y加到矩阵x的每一行上
result = x + y
print(result)