Python 使用条件从np数组中删除元素的最有效方法
我现在有一个Python 使用条件从np数组中删除元素的最有效方法,python,arrays,numpy,Python,Arrays,Numpy,我现在有一个numpy数组,看起来像: A = [ [5, 8, 6, 2], [5, 8, 6, 2], [...], ... ] 假设我有另一个1Dnumpy数组,它看起来像数组B,但有与A中的每个列表对应的at值 B = [0.4, 0.6, 0.3, ...] 现在我想删除列表中的任何列表,该列表在B中的对应值大于0.5(这可以由名为thresh的变量表示)。结果数组应该如下所示(因为第二个列表的值更大): 我正在寻找一种很好的nu
numpy
数组,看起来像:
A = [ [5, 8, 6, 2],
[5, 8, 6, 2],
[...], ... ]
假设我有另一个1Dnumpy
数组,它看起来像数组B
,但有与A
中的每个列表对应的at值
B = [0.4, 0.6, 0.3, ...]
现在我想删除列表中的任何列表,该列表在B
中的对应值大于0.5(这可以由名为thresh
的变量表示)。结果数组应该如下所示(因为第二个列表的值更大):
我正在寻找一种很好的
numpy
为基础的/pythonic的方法来实现这一点。我知道np.delete,但不知道如何在有条件的情况下使用它 conditionBoolean
slice怎么样
A[B<0.5]
Out[197]:
array([[5, 8, 6, 2],
[1, 1, 1, 1]])
A[BCool解决方案!但是有没有一种numpy
方法呢?我试过A[B@SharanDuggiralaA和B有相同的透镜吗?打印透镜(A)和透镜(B)
A[B<0.5]
Out[197]:
array([[5, 8, 6, 2],
[1, 1, 1, 1]])