获取符合多个条件的Numpy数组中的行

时间:2013-01-24 16:50:03

标签: python numpy python-2.7

我有以下数据数组

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

我希望在a中存储其第零个元素小于某个值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()

这样做有效吗?感谢。

1 个答案:

答案 0 :(得分:4)

以下应该这样做:

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

顺便说一句,您可以将所有0::替换为:

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

我发现眼睛看起来更容易了。