2017-01-31 12 views
2

私は別のnumpy配列にアクセスするのに必要なインデックスのセットを格納するnumpy配列を持っています。別のnumpy配列に格納されたインデックスのセットでnumpy配列にアクセスする方法は?

私はforループを使用しようとしましたが、期待通りに動作しません。

状況はこのようなものです:

>>> a 
array([[1, 2], 
     [3, 4]]) 
>>> c 
array([[0, 0], 
     [0, 1]]) 
>>> a[c[0]] 
array([[1, 2], 
     [1, 2]]) 
>>> a[0,0]   # the result I want 
1 

以上は、私はすべてのインデックスを取得するためにforループを使用する必要がありますのでc配列がはるかに大きい私の実際のコードの簡易版です。

+1

は非常に関連思える - http://stackoverflow.com/questions/41802319 – Divakar

答えて

2

tupleに変換します

>>> a[tuple(c[0])] 
1 

listarrayインデックスがadvanced indexingを誘発するので。 tupleは(ほとんど)基本的なスライスです。列インデックスとして行のインデックス2つ目として第1のカラムを通すことによりcの列を持つ

1

ランキングa

In [23]: a[c[:,0], c[:,1]] 
Out[23]: array([1, 2]) 
関連する問題