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

时间:2018-02-04 16:07:57

标签: 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]

然而,这似乎是迂回的,我怀疑在一条线上有办法吗?

2 个答案:

答案 0 :(得分:5)

您可以直接索引:

sampleArr[sampleArr > 0.5]

测试代码:

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)

结果:

[ 0.725  0.99 ]
[ 0.725  0.99 ]
[ 0.725  0.99 ]

答案 1 :(得分:2)

你实际上可以像这样做布尔索引:

extracted = sampleArr[sampleArr > 0.5]