私はこのようなnumpy配列を持っています:
a = [0,88,26,3,48,85,65,16,97,83,91]
ワンステップで特定のインデックス位置の値を取得するにはどうすればよいですか?例えば:
ind_pos = [1,5,7]
結果は次のようになります。
[88,85,16]
ただあなたを使ってインデックスを作成するind_pos
ind_pos = [1,5,7]
print (a[ind_pos])
[88 85 16]
In [55]: a = [0,88,26,3,48,85,65,16,97,83,91]
In [56]: import numpy as np
In [57]: arr = np.array(a)
In [58]: ind_pos = [1,5,7]
In [59]: arr[ind_pos]
Out[59]: array([88, 85, 16])
ワンライナー「輸入なし」バージョン
a = [0,88,26,3,48,85,65,16,97,83,91]
ind_pos = [1,5,7]
[ a[i] for i in ind_pos ]
numpy
配列について尋ねますが、通常のPythonリストに対してoperator.itemgetter
。
>>> from operator import itemgetter
>>> a = [0,88,26,3,48,85,65,16,97,83,91]
>>> ind_pos = [1, 5, 7]
>>> print itemgetter(*ind_pos)(a)
(88, 85, 16)
インデックス配列 を使用して、単にind_pos
を以下のインデックス引数として使用します。
a = np.array([0,88,26,3,48,85,65,16,97,83,91])
ind_pos = np.array([1,5,7])
print(a[ind_pos])
# [88,85,16]
インデックス配列は必ずしもnumpy配列である必要はありません。リストまたはシーケンスのようなオブジェクト(タプルではありません)にすることもできます。