numpy删除任何值匹配条件的行

时间:2015-08-31 17:09:57

标签: python numpy

我在数组中的范围[0,1]中的RGB值如下:

[[0.2, 0.2, 0.3], [0.1, 0.1, 0.1], [0.4, 0.3, 0.5]]

我想删除任何值低于0.15(任何颜色强度小于0.15)的行。也就是说,我希望上面的数组改为:

[[0.2, 0.2, 0.3], [0.4, 0.3, 0.5]]

我正在尝试以下方面:

od = od[any(od, axis=1) > 0.15]

我该怎么做?为什么以上什么都不做?

1 个答案:

答案 0 :(得分:2)

使用:any()

In [146]:

arr = np.array([[0.2, 0.2, 0.3], [0.1, 0.1, 0.1], [0.4, 0.3, 0.5], [0.4, 0.3, 0.5]])
arr
Out[146]:
array([[ 0.2,  0.2,  0.3],
       [ 0.1,  0.1,  0.1],
       [ 0.4,  0.3,  0.5],
       [ 0.4,  0.3,  0.5]])
In [147]:

arr[~(arr<0.15).any(1)]
Out[147]:
array([[ 0.2,  0.2,  0.3],
       [ 0.4,  0.3,  0.5],
       [ 0.4,  0.3,  0.5]])