2012-08-08 38 views
19

我使用python 2.7,並試圖對從1.00000000到3.0000000008的一些隨機數據進行預測。我的陣列中有大約196個項目,並且出現錯誤Numpy'ValueError:操作數無法與形狀一起廣播...'

ValueError: operands could not be broadcast together with shape (2) (50) 

我似乎無法自行解決此問題。任何幫助或有關文件的鏈接將不勝感激。

這裏是我使用產生這個錯誤

nsample = 50 
sig = 0.25 
x1 = np.linspace(0,20, nsample) 
X = np.c_[x1, np.sin(x1), (x1-5)**2, np.ones(nsample)] 
beta = masterAverageList 
y_true = ((X, beta)) 
y = y_true + sig * np.random.normal(size=nsample) 

回答

17

如果Xbeta不具有相同的形狀,在最後一行的右邊第二項(即nsample)的代碼,那麼你會得到這種類型的錯誤。要將數組添加到數組元組中,它們都必須是相同的形狀。我想推薦看看numpy broadcasting rules

+0

我的錯誤,如果它改變了我的數組中的任何東西,目前形狀是168個項目(1,168)(168,4)。所以你的意思是相同的兩者的形狀應該是(1,168)(1,168)? – 2012-08-08 17:44:32

+0

哎呀我編輯我的代碼befor張貼。但已經將其轉回到形狀實際上是(1,168)(50,4)。我應該讓他們都是(1,168)(1,168)或(50,4)(50,4)? – 2012-08-08 17:52:54

+0

我真的不能回答你的數組應該是多大。他們只需要相同,以便按照您嘗試的方式添加它們。 – JoshAdel 2012-08-08 21:07:52

相關問題