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是改變形狀的作品,但我正在專門尋找這種形狀。 –