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


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

使用布尔索引

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

示例

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

import numpy as np
arr = np.arange(2,20,3)
if np.all(arr) >0:
   print("The given array is Non-zero")
else:
   print("The given array is zero")

输出

运行以上代码后,将生成以下输出,此输出确定给定数组非零。

The given array is Non-zero

示例

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

import numpy as np
arr = np.arange(2,20,3).reshape(3,2)
print("The original array:",arr)
if np.all(arr) > 0:
    print("The given array is Non-zero")
else:
    print("The given array is zero")

输出

运行以上代码后,布尔索引的输出如下:

The original array: [[ 2  5]
 [ 8 11]
 [14 17]]
The given array is Non-zero

使用nonzero()函数

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

示例

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

import numpy as np
arr = np.arange(2,20,3).reshape(3,2)
print("The original array:",arr)
if np.nonzero(arr):
    print("The given array is Non-zero")
else:
    print("The given array is zero")

输出

运行以上代码后,将生成以下输出:

The original array: [[ 2  5]
 [ 8 11]
 [14 17]]
The given array is Non-zero

示例

让我们来看另一个使用NumPy库的nonzero()函数的示例。

import numpy as np
arr = np.arange(0,20,2)
print("The original array:",arr)
non_zero = np.nonzero(arr)
print(non_zero)

输出

nonzero()函数的输出如下:

The original array: [ 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("The Original array:",arr)
output = np.where(arr == 0)
print(output)

输出

运行以上代码后,将生成以下输出:

The Original array: [[[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("The Original array:",arr)
output = np.where(arr == 0)
print(output)

输出

运行以上代码后,将显示以下输出。输出显示一个数组,其中包含零元素的索引。

The Original array: [ 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("The Original array:",arr)
output = np.count_nonzero(arr)
print("There is/are",output,"zeroes in the defined array")

输出

运行以上代码后,将生成以下输出:

The Original array: [  1  32   4 356   4   3   0]
There is/are 6 zeroes in the defined array

更新于:2023年8月9日

浏览量:131

开启您的职业生涯

通过完成课程获得认证

开始学习
广告