2012-08-08 12 views
19

私はpython 2.7を使用しています。ランダムなデータを1.00000000から3.0000000008まで予報しようとしています。私の配列には約196個のアイテムがありますが、エラーが発生しますNumpy `ValueError:オペランドをシェイプと一緒にブロードキャストできませんでした。 '

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

私自身でこの問題を解決することはできないようです。関連するドキュメンテーションへのヘルプやリンクは非常に高く評価されます。ここで

Xbetaは、あなたが、あなたの最後の行の右辺第二項(すなわちnsample)と同じ形状を持っていない場合、私はそれが

このエラーが発生し
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

を使用していたコードですこのタイプのエラーが発生します。配列のタプルに配列を追加するには、すべて同じ形状でなければなりません。

私はnumpy broadcasting rulesを見ることをお勧めします。

+0

私の配列の中に何か変わったら私の間違いは168のアイテムがあります。現在の形状は(1,168)(168、4)です。それで、両方の形が同じ(1,168)(1,168)と同じであることを意味しますか? –

+0

おっと私はそのコードを編集するためにコードを編集しました。しかし、それがどのように形状が実際に(1,168)(50,4)に戻っているのかを戻しました。 A(1,168)(1,168)か(50,4)(50,4)の両方になるはずですか? –

+0

あなたの配列がどんなサイズになるのか本当に答えられません。彼らはあなたが試みている方法でそれらを追加するために同じである必要があります。 – JoshAdel

関連する問題