我不懂广播。该文档说明了广播规则,但似乎没有用英语对其进行定义。我的猜测是,广播是当NumPy用虚拟数据填充较小尺寸的数组以执行操作时。但这不起作用:
>>> x = np.array([1,3,5])
>>> y = np.array([2,4])
>>> x+y
*** ValueError: operands could not be broadcast together with shapes (3,) (2,)
错误消息暗示我走在正确的轨道上。有人可以定义广播,然后提供一些简单的示例,说明何时可以正常播放,什么时候不可用?
术语广播描述了numpy在算术运算期间如何处理具有不同形状的数组。
基本上,这是numpy可以扩展数组操作范围的一种方式。
广播的唯一要求是对齐数组尺寸的方式,以便:
因此,例如:
x = np.ndarray(shape=(4,1,3))
y = np.ndarray(shape=(3,3))
您无法像这样对齐x和y:
4 x 1 x 3
3 x 3
但您可能会这样:
4 x 1 x 3
3 x 3
假设我们有:
x = np.ndarray(shape=(1,3), buffer=np.array([1,2,3]),dtype='int')
array([[1, 2, 3]])
y = np.ndarray(shape=(3,3), buffer=np.array([1,1,1,1,1,1,1,1,1]),dtype='int')
array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
该操作x + y
将导致:
array([[2, 3, 4],
[2, 3, 4],
[2, 3, 4]])
我希望你能抓住这个漂移。如果没有,您可以随时在此处查看官方文档。
干杯!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句