1
我刚开始学习numpy,通过了numpy的scipy教程。我的问题涉及广播发生的时间。在numpy广播
正如tutorial建议,两个数组是兼容的,如果他们遵循一定的条件,如:
- 他们是平等的
- 其中之一是1
我的问题是,假设我有以下两个阵列:
import numpy as np
c1 = np.arange(10).reshape(2,5)
c2 = np.arange(8).reshape(2,4,1)
c3 = c1-c2
但是上面的操作给了我如下兼容/广播错误:
ValueError: operands could not be broadcast together with shapes (2,5) (2,4,1)
当我示意代表这两个数组纸笔我得到的操作不能进行,但我不能从上面提到的教程,如何遵循操作未在阵列上成功执行。请帮助我理解。
我知道这是基本的东西,但这会有助于我的理解。
问候
c2 = np.arange(8).reshape(4,2 ,1)而不是c2 = np.arange(8).reshape(2,4,1) –
否副轴必须与其他副轴相匹配,在这种情况下,您有1个具有2列和5行的数组,以及另一个是2列4行,第三个轴是单一长度。如果你的第一个数组是'c1 = np.arange(8).reshape(4,2)',那么这是不能被广播的,那么如果你看例子,这也是可行的:https://docs.scipy.org/doc /numpy/user/basics.broadcasting.html你的例子不符合任何可以工作的例子 – EdChum
@GauravDhama是改变形状的作品,但我正在专门寻找这种形状。 –