Numpy:如何访问满足条件

时间:2015-11-28 02:06:04

标签: python arrays numpy

首先请允许我为任何格式问题道歉,我正在手机上写这个。如果我有一个numpy数组'a',我可以很容易地找到'a'满足elem的所有值> 2通过:

a = no.random.random_sample(10)
idx = a > 2
a[idx]

我的问题是我如何以快速和pythonic的方式访问满足条件的元素右侧的元素。因此,如果'a'满足索引1,2,4,7的条件,我希望能够访问索引2,3,5,8处的数组。

谢谢!

1 个答案:

答案 0 :(得分:1)

使用numpy.where获取idxTrue的索引:

>>> np.where(idx)[0]
array([1, 2, 4, 7])

1添加到该数组(或任何其他操作):

>>> new_idx = np.where(idx)[0] + 1
>>> new_idx
array([2, 3, 5, 8])

然后使用它进行切片:

>>> a[new_idx]