如何使用包含我要访问的索引号的数组获取numpy数组中的所有值

时间:2019-07-17 09:31:28

标签: python arrays numpy

假设我有以下两个numpy数组。 idxes包含我想从arr返回的元素的索引。

arr = ['a', 'b', 'c' ]
idxes = [1, 2]
// This is the result I'm after
result = ['b', 'c']

最初的想法是使用np.where和一个布尔数组,但是使用起来似乎很尴尬,并且想知道是否有一个更优雅的解决方案,因为我对numpy很陌生。

2 个答案:

答案 0 :(得分:2)

使用这种简单的列表理解方法,它遍历idxes并在idxes中的iarr)中得到索引的值:

print([arr[i] for i in idxes])

输出:

['b', 'c']

如果它们是numpy数组:

print(arr[idxes])

输出:

['b' 'c']

答案 1 :(得分:0)

另一种方式:

list(map(arr.__getitem__, idxes))

输出:

['b', 'c']