2

なぜarray1[:][1] != array1[:,1]ですか?

例えば:

array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array1[1] ## Output: array([4,5,6]) as expected
array1[:,1] ## Output: array([2, 5, 8]) as expected
array1[:][1] ## Output: array([4,5,6]) which isn't what I expected!

二重括弧参照を使用する場合、最初に実行されるコンポーネントは完全な配列array1[:]を返しますか? 2Dしたがってarray1[:][1] == array1[1]

4

1 に答える 1

0

a[:]NumPyは、「行」のセットではなく、配列のコピーとして解釈します。:基本的なスライスは、エントリが表示されるまでの連続スライスにのみ類似しています。ドキュメント(セクション1.4-インデックス)から:

スライスタプルに複数のnon-:エントリがある基本的なスライスは、単一のnon-:エントリを使用してスライスを繰り返し適用するように機能します。ここで、non-:エントリが連続して取得されます(他のすべてのnon-:エントリは:)に置き換えられます。 。したがって、基本的なスライスの下のようにx[ind1,...,ind2,:]動作します。x[ind1][...,ind2,:]

:エントリが処理されるとき、暗黙の複雑さがあります。

于 2013-02-02T05:44:33.020 に答える