如何检查一个给定的NumPy数组的元素是否为非零

  • Post category:Python

要检查给定NumPy数组中的元素是否为非零,可以使用NumPy库中的函数numpy.nonzero(),该函数将返回所有非零元素的索引。以下是检查数组是否包含非零元素的详细操作步骤。

第一步:导入NumPy库

在使用NumPy库之前,需要先导入该库。可以使用以下代码行导入NumPy库:

import numpy as np

第二步:创建NumPy数组

接下来,我们创建一个NumPy数组来演示如何检查其元素是否为非零。以下是创建数组的示例代码:

array = np.array([1, 0, 3, 0, 5])

第三步:检查数组元素是否非零

使用nonzero()函数检查上述数组的非零元素。以下是实现该操作的代码:

non_zero_elements = np.nonzero(array)

现在,non_zero_elements将包含所有非零元素的索引。在我们的示例中,non_zero_elements将返回一个长度为2的元组,其中包含非零元素的索引。

示例演示

以下是一个完整示例代码,演示了如何检查一个NumPy数组的元素是否为非零:

import numpy as np

# 创建NumPy数组
array = np.array([1, 0, 3, 0, 5])

# 检查数组元素是否非零
non_zero_elements = np.nonzero(array)

# 打印非零元素的索引
print(non_zero_elements)

运行上述代码,将输出以下结果:

(array([0, 2, 4], dtype=int64),)

以上结果表示,array数组中的第1、3、5个元素是非零元素,它们的索引分别是0、2、4。

示例演示2

以下是另一个示例,演示了如何检查一个多维NumPy数组的元素是否非零:

import numpy as np

# 创建一个2x3x4的三维NumPy数组
array_3d = np.array([[[1, 2, 3, 4],
                      [0, 6, 0, 8],
                      [9, 10, 0, 12]],

                     [[13, 14, 15, 0],
                      [0, 18, 19, 20],
                      [0, 22, 23, 24]]])

# 检查数组元素是否非零
non_zero_elements = np.nonzero(array_3d)

# 打印非零元素的索引
print(non_zero_elements)

运行上述代码,将输出以下结果:

(array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6],
       dtype=int64),
 array([0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 2, 2, 2, 0, 1, 1, 2, 0, 1, 1, 2, 1, 0, 1, 2, 3, 0, 1, 2, 1, 2, 3, 3, 0, 1, 2, 3],
       dtype=int64),
 array([0, 1, 2, 3, 1, 3, 0, 3, 0, 1, 0, 1, 2, 3, 3, 1, 1, 3, 2, 0, 1, 3, 3, 2, 3, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 1, 1, 1, 1],
       dtype=int64))

以上结果表示,array_3d数组中的非零元素分别位于以下位置:

  • 坐标(0, 0, 0),值为1
  • 坐标(0, 0, 1),值为2
  • 坐标(0, 0, 2),值为3
  • 坐标(0, 0, 3),值为4
  • 坐标(0, 1, 1),值为6
  • 坐标(0, 1, 3),值为8
  • 坐标(0, 2, 0),值为9
  • 坐标(0, 2, 3),值为12
  • 坐标(1, 0, 0),值为13
  • 坐标(1, 0, 3),值为0(注意这个元素虽然非零,但我们统计的是非零元素的位置,不包括非零元素的值)
  • 坐标(1, 1, 0),值为0
  • 坐标(1, 1, 1),值为18
  • 坐标(1, 1, 2),值为19
  • 坐标(1, 1, 3),值为20
  • 坐标(1, 2, 1),值为22
  • 坐标(1, 2, 2),值为23
  • 坐标(1, 2, 3),值为24

以上就是检查一个给定NumPy数组的元素是否为非零的完整攻略,希望对你有所帮助。