获取NumPy数组中的元素(甚至更有趣的是其中一部分)必须有一种(非常)快速和高效的方法。 假设我有一个NumPy数组:
import numpy as np
a = np.arange(-10,10)
现在,如果我有一个列表:
s = [9, 12, 13, 14]
我可以从a中选择元素:
a[s] #array([-1, 2, 3, 4])
我该如何创建一个(numpy)数组,由a[s]中满足条件的元素组成,即为正数(或负数)? 它应该得到以下结果:
np.ifcondition(a[s]>0, a[s]) #array([2, 3, 4])
这看起来很简单,但我找不到一个简洁明了的表达方式。我确定口罩可以,但对我来说似乎并不是非常直接的方法。 然而,也不是:
a[a[s]>0]
a[s[a[s]>0]]
实际上是很好的选择。
np.clip
或np.where
这样的工具会保留数组的原始大小,所以它们并不真正符合我的需求。 - gluuke