我有一个形状为 numpy 的数组
(500,12)
我想做的就是检查偶数列是否具有正值,例如。 值 > 0
。在那种情况下,我想删除数组中的整行。
我提出这个:
a = a[a[:,1] < 0, :]
这会消除所需的行,但会查看第二列。我希望它也检查第 4 列、第 6 列、第 8 列等。
有没有办法使用我上面的方法来做到这一点?
最佳答案
如果你正在处理 NumPy 数组,那么你可以使用 fancy indexing方法(用整数数组序列索引数组)如下所示:
mask = (a[:, np.arange(1, a.shape[1], 2)] < 0).all(axis=1)
out = a[mask]
解释:
选择要比较值的奇数列的位置:
np.arange(1, a.shape[1], 2) # a.shape[1] gives the number of columns
# array([ 1, 3, 5, 7, 9, 11])
接下来,我们根据这些索引对数组进行子集化,并通过提供 axis=1
来查看这些列下的值是否小于零,这会执行逐列检查并返回包含减少数字的数组删除剩余行后的行数。
关于python - 如果存在特定值,则从偶数列中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42483979/