必须有一种(非常)快速有效的方法来从numpy数组中获取元素,或者更有趣的是从其切片中获取元素。
假设我有一个numpy数组:

import numpy as np
a = np.arange(-10,10)

现在,如果我有一个列表:
s = [9, 12, 13, 14]

我可以从以下元素中选择元素:
a[s]  #array([-1,  2,  3,  4])

如何从满足条件的a [s]中的元素组成一个(numpy)数组,即它们是正数(或负数)?
它应该导致
np.ifcondition(a[s]>0, a[s])  #array([2,  3,  4])

它看起来很琐碎,但我找不到一个简洁的表达式。我敢肯定,口罩可以,但是对我来说看起来并不是很直接。
但是,两个都没有:
a[a[s]>0]
a[s[a[s]>0]]

实际上是不错的选择。

最佳答案

怎么样:

In [19]: b = a[s]

In [20]: b[b > 0]
Out[20]: array([2, 3, 4])

关于python - 仅获取满足numpy数组中条件的那些值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13029029/

10-11 22:11
查看更多