首先请允许我为任何格式问题道歉,我正在手机上写这个。如果我有一个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处的数组。
谢谢!
答案 0 :(得分:1)
使用numpy.where
获取idx
为True
的索引:
>>> 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]