删除边界之间的numpy数组中的行

时间:2015-07-07 14:54:12

标签: python arrays numpy

我有一个看似如下的numpy数组:

a = np.array([1.2,10],[2.3,20],[3.4,30],[4.5,40],[5.8,50],[6.7,60],[7.8,70],[8.9,80])

现在我想检查第一列并删除小于3且大于6的所有内容。这意味着我希望我的数组看起来像:

a = np.array([3.4,30],[4.5,40],[5.8,50])

问题是我无法使用np.delete()手动删除行,因为我不知道行的数量。

我必须迭代,还是有简单的方法?

1 个答案:

答案 0 :(得分:2)

您不想删除,您想要选择。你可以这样做:

a = np.array([[1.2,10],[2.3,20],[3.4,30],[4.5,40],[5.8,50],[6.7,60],[7.8,70],[8.9,80]])
a[(a[:,0]>=3) & (a[:,0]<=6)]

Out: array([[  3.4,  30. ],
   [  4.5,  40. ],
   [  5.8,  50. ]])