📜  在 np 数组中删除 0 (1)

📅  最后修改于: 2023-12-03 15:23:14.274000             🧑  作者: Mango

在 np 数组中删除 0

np数组是numpy中最基础的数组结构之一,它提供了很多方便的方法来操作数组。当我们想要删除np数组中的0时,我们可以使用numpy中的特定函数来实现。

方法一:使用np.delete函数

我们可以使用np.delete函数来删除数组中的0。这个函数有三个必要的参数:要被删除元素的数组,要被删除的元素的下标或下标数组,和要被删除的轴方向。删除元素的下标可以是单个整数,也可以是一个含有多个整数的元组或列表。

import numpy as np

arr = np.array([1, 0, 5, 0, 9])
newarr = np.delete(arr, np.where(arr == 0))
print(newarr)

输出结果为:[1 5 9]

方法二:使用np.nonzero函数

我们可以使用np.nonzero函数来找出np数组中所有非0元素的下标,然后根据这些下标重新构造一个不包含0的新数组。

import numpy as np

arr = np.array([1, 0, 5, 0, 9])
newarr = arr[np.nonzero(arr)]
print(newarr)

输出结果为:[1 5 9]

方法三:使用np.where函数

我们可以使用np.where函数来找出数组中所有不为0的元素,然后根据这些元素构造一个新数组。

import numpy as np

arr = np.array([1, 0, 5, 0, 9])
newarr = arr[np.where(arr != 0)]
print(newarr)

输出结果为:[1 5 9]

总结

上述三种方法都可以用来删除np数组中的0,其中第一种方法最为直接,第二种方法只需要一次遍历,第三种方法则比较灵活。在实际使用中,我们可以根据实际需求来选择不同的方法。