gpt4 book ai didi

python - 如果存在特定值,则从偶数列中删除行

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:16 24 4
gpt4 key购买 nike

我有一个形状为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com