如何有条件地选择numpy数组中的元素

Tru*_*ran 3 python arrays numpy

有人可以帮助我有条件地选择numpy数组中的元素吗?我正在尝试返回大于阈值的元素。我当前的解决方案是:

sampleArr = np.array([ 0.725, 0.39, 0.99 ])
condition = (sampleArr > 0.5)`
extracted = np.extract(condition, sampleArr) #returns [0.725 0.99]
Run Code Online (Sandbox Code Playgroud)

但是,这似乎是回旋处,我怀疑有一种方法可以做到这一点吗?

Ste*_*uch 7

您可以像这样直接建立索引:

sampleArr[sampleArr > 0.5]
Run Code Online (Sandbox Code Playgroud)

测试代码:

sampleArr = np.array([0.725, 0.39, 0.99])

condition = (sampleArr > 0.5)
extracted = np.extract(condition, sampleArr)  # returns [0.725 0.99]

print(sampleArr[sampleArr > 0.5])
print(sampleArr[condition])
print(extracted)
Run Code Online (Sandbox Code Playgroud)

结果:

[ 0.725  0.99 ]
[ 0.725  0.99 ]
[ 0.725  0.99 ]
Run Code Online (Sandbox Code Playgroud)