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

numpypythonserver side programmingprogramming

有多种方法可以检查给定 Numpy 数组的元素是否非零。以下是我们可以应用的几种常见方法。

使用布尔索引

布尔索引是 Numpy 库中的一种技术,允许根据布尔条件从数组中选择特定元素。这将创建一个包含 True 或 False 值的布尔掩码,这些值具有与布尔条件相同的形状和大小。

示例

以下示例说明如何使用布尔索引来检查给定的 numpy 数组的元素是否为非零。

import numpy as np
arr = np.arange(2,20,3)
if np.all(arr) >0:
    print("给定的数组为非零")
else:
    print("给定的数组为零")

输出

当我们运行上述代码时,将生成以下输出,此处输出确定给定的数组为非零。

给定的数组为非零

示例

我们来看另一个在二维数组上应用布尔索引的示例。

import numpy as np
arr = np.arange(2,20,3).reshape(3,2)
print("原始数组:",arr)
if np.all(arr) > 0:
    print("给定的数组非零")
else:
    print("给定的数组为零")

输出

以下是运行上述代码时布尔索引的输出 -

原始数组:[[ 2 5]
[ 8 11]
[14 17]]
给定的数组非零

使用 nonzero() 函数

在 python 中,nonzero() 函数用于检索数组中非零元素的索引。

示例

以下是 non_zero() 函数的示例。

import numpy as np
arr = np.arange(2,20,3).reshape(3,2)
print("原始数组:",arr)
if np.nonzero(arr):
    print("给定数组非零")
else:
    print("给定数组为零")

输出

运行上述代码时,将生成以下输出 -

原始数组:[[ 2 5]
[ 8 11]
[14 17]]
给定数组非零

示例

让我们看另一个使用 numpy 库的 non_zero() 函数的示例。

import numpy as np
arr = np.arange(0,20,2)
print("原始数组:",arr)
non_zero = np.nonzero(arr)
print(non_zero)

输出

以下是 non_zero() 函数的输出。

原始数组: [ 0 2 4 6 8 10 12 14 16 18]
(array([1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=int64),)

使用 np.where() 函数

Where() 是另一个numpy 库提供的函数,该函数用于检查给定数组中的元素是否非零。当使用指定数组调用时,Where() 将返回数组中非零元素的索引。

示例

在下面的示例中,我们将使用 Where() 函数查找 NumPy 数组中非零元素的索引,我们将数组和值"0"作为参数传递给函数,以便检索索引。

import numpy as np
arr = np.array([[[10,30],[2,40.3]],[[56,4],[56,3]]])
print("原始数组:",arr)
output = np.where(arr == 0)
print(output)

输出

当我们运行上面的代码时,将生成以下输出 -

原始数组:[[[10. 30. ]
  [ 2.  40.3]]

 [[56.   4. ]
  [56.   3. ]]]
  (array([], dtype=int64), array([], dtype=int64), array([], dtype=int64))

示例

让我们看另一个示例,使用 Where() 函数检查给定数组中是否存在非零元素。

import numpy as np
arr = np.array([10,302,4,0.356,4,3,0])
print("原始数组:",arr)
output = np.where(arr == 0)
print(output)

输出

运行上述代码时,将显示以下输出。由于有零个元素,因此显示一个具有索引的数组作为输出。

原始数组:[ 10. 302. 4. 0.356 4. 3. 0. ]
(array([6], dtype=int64),)

使用 numpy.count_nonzero() 函数

确定定义的 numpy 数组中非零元素的另一种方法是使用 count_nonzero() 函数。此函数返回数组中存在的非零元素的数量作为输出。

示例

以下是示例。

import numpy as np
arr = np.array([10,302,4,0.356,4,3,0])
print("原始数组:",arr)
output = np.count_nonzero(arr)
print("定义数组中有",output,"个零")

输出

当我们运行上述代码时,将生成以下输出 -

原始数组:[ 1 32 4 356 4 3 0]
定义数组中有 6 个零

相关文章