2012-03-27 17 views
5

私はnumpyの使用に慣れていません。実際には分かりませんが、インデックス配列です。 tentative tutorialブール配列を使用した多次元配列へのインデックス付けnumpyを使用した

この例があります:

>>> a = arange(12).reshape(3,4) 
>>> b1 = array([False,True,True])    # first dim selection 
>>> b2 = array([True,False,True,False])  # second dim selection 
>>> 
>>> a[b1,b2]         # a weird thing to do 
array([ 4, 10]) 

私はそれが最後のことをやっ理由はわかりません。誰も私にそれを説明することはできますか?

ありがとうございます!

答えて

4

あなたアレイからなる:整数のリストを使用するであろう、それをインデックスの

0 1 2 3 
4 5 6 7 
8 9 10 11 

一つの方法、行/列が含まれるように指定:

意味
>>> i1 = [1,2] 
>>> i2 = [0,2] 
>>> a[i1,i2] 
array([ 4, 10]) 

:行1列0を行2列2

ブール値インデックスを使用している場合は、どの行/列を含めるべきかを指定します。

>>> b1 = [False,True,True]  # 0:no, 1:yes, 2:yes  ==> [1,2] 
>>> b2 = [True,False,True,False] # 0:yes, 1:no, 2:yes, 3:no ==> [0,2] 

ご覧のとおり、これは上記のi1i2に相当します。したがって、a[b1,b2]は同じ結果になります。 b1b2両方が(整数形式で表現ときに、それらが同じ長さの2つの配列を表す)True同じ数の値を持っているので、上記の操作のみ可能であることも

注。

+0

+1次のリンク先は、http://docs.scipy.org/doc/numpy/reference/arrays.indexing.htmlです。 –

関連する問題