我有一个看似如下的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()
手动删除行,因为我不知道行的数量。
我必须迭代,还是有简单的方法?
答案 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. ]])