gpt4 book ai didi

Python删除numpy数组中的行

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

我有一个大的 numpy 数组(8 x 30000),我想根据某些条件删除一些行。此标准仅适用于一列。

例子:

>>> p = np.array([[0, 1, 3], [1 , 5, 6], [4, 3, 56], [1, 34, 4]])
>>> p
array([[ 0, 1, 3],
[ 1, 5, 6],
[ 4, 3, 56],
[ 1, 34, 4]])

在这里,我想删除第 3 列的值大于 30 的每一行,即。这里是第 3 行。

由于数组非常大,我想避免 for 循环。我想到了这个:

>>> a[~(a>30).any(1), :]
array([[0, 1, 3],
[1, 5, 6]])

但是,它显然删除了最后两行。关于如何以有效的方式做到这一点有什么想法吗?

最佳答案

p = p[~(p[:,2] > 30)]

或(如果您的情况很容易逆转):

p = p[p[:,2] <= 30]

返回

array([[ 0,  1,  3],
[ 1, 5, 6],
[ 1, 34, 4]])

关于Python删除numpy数组中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650663/

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