最後のケースでは、2つの個別のリストは個別のインデックス付け操作として扱われます(これは実際には厄介な表現なので、ご容赦ください)。
Numpyは2つの整数の2つのリストを参照して、2つの値を要求していると判断します。各値の行インデックスは最初のリストから取得され、各値の列インデックスは2番目のリストから取得されます。したがって、とを取得a[1,1]
しa[2,2]
ます。:
表記は、あなたが正確に推定されてきたリストに展開するだけでなく、あなたがその範囲内のすべての行/列をしたいというnumpyのを伝えるだけではなく。
手動でキュレートしたリストインデックスを提供する場合、各リストまたは任意のリストのサイズは、取得する要素の数であるため、同じサイズにする必要があります。たとえば、行1、2、3の列1と2の要素が必要な場合:
>>> a[1:4,[1,2]]
array([[ 6, 7],
[11, 12],
[16, 17]])
だが
>>> a[[1,2,3],[1,2]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: shape mismatch: indexing arrays could not be broadcast together with shapes (3,) (2,)
前者は後者は言いながら、「要素で私を得る、あなたが行と特定の列の範囲をしたいというnumpyのを伝え(1,1)
、(2,2)
と(3, hey! what the?! where's the other index?)
」
a[[1,2],[1,2]]
と言うことになってa[[1:2],[1:2]]
?誤植はありa[1:3,[1,2]]
ますか?それとも私は誤解していますか?