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
示例
让我们来看一个在2维数组上应用布尔索引的另一个例子。
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()函数用于获取数组中非零元素的索引。
示例
以下是non_zero()函数的示例。
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库中的non_zero()函数的另一个示例。
import numpy as np
arr = np.arange(0,20,2)
print("The original array:",arr)
non_zero = np.nonzero(arr)
print(non_zero)
输出
以下是 non_zero() 函数的输出结果。
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