元の質問
配列の要素の一部を割り当てようとすると、非常に奇妙なエラーメッセージが表示されます。私は、スライスとインデックスの組み合わせを使用しています。次の簡単な例を参照してください。高度な混合インデックスを使用したサブ配列の割り当て
とValueError:形状の不一致:形状(3,4)の値アレイは形状の割り出し結果にブロードキャストすることができなかった(3,4)
import scipy as sp
a = sp.zeros((3, 4, 5))
b = sp.ones((4, 5))
I = sp.array([0, 1, 3])
b[:, I] = a[0, :, I]
このコードはValueError
以下提起します -
スライスおよび配列の組み合わせを使用する場合は注意してください
をフォローアップ。整数のgithubの上で指摘したように:
x = rand(3, 5, 7)
print(x[0, :, [0,1]].shape)
# (2, 5)
print(x[0][:, [0,1]].shape)
# (5, 2)
これはnumpyのが動作するように設計された方法ですが、それは、x [0] [:, I]こと、それにもかかわらず少し混乱して、0 [xと同じではありません:私]。これが私のコードでx [0] [:, I]を使うことを選ぶことを望む振舞いなので、ここで
はルックス:う '[0,1 4] '実際には' [0,1,4] '(1から4までのカンマで)ですか? – heltonbiker