我有以下一组数据

In [56]:data
Out[56]:
array([[  4360.,   6178.],
       [ 10906.,  14956.],
       [  5071.,   8963.],
       ...,
       [ 16019.,  12300.],
       [ 12306.,   3327.],
       [ 13663.,  12641.]])

我想在a中存储第0个元素小于某个值value1且高于其他值value2的所有行。
我试过了
d[ 9057 > d[0::,0] > 8000, 0::]


d[d[0::,0] > 8000 and d[0::,0] < 9057, 0::]

但这两个都因以下错误而停止
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

有没有一种有效的方法来做这件事?谢谢。

最佳答案

应采取以下措施:

d[(d[0::,0] > 8000) & (d[0::,0] < 9057), 0::]

顺便说一下,您可以用0::替换所有那些:
d[(d[:,0] > 8000) & (d[:,0] < 9057)]

我觉得这在眼睛上容易一点。

关于python - 在Numpy数组中获取满足多个条件的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14506505/

10-16 07:00