如何检查NumPy数组中是否存在指定的值

  • Post category:Python

当我们需要检查一个NumPy数组中是否存在某个指定的值时,我们可以通过以下步骤进行:

  1. 导入NumPy库并创建一个NumPy数组,作为检查的数据源。

python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])

  1. 使用NumPy的in1d()函数来检查数组中是否存在指定的值。in1d()函数可以用于检查第一个数组中的每一个元素是否在另一个数组中出现,返回一个布尔类型的数组。

python
np.in1d(arr, [3, 4])

  1. 检查结果。np.in1d(arr, [3, 4])将返回一个布尔类型的数组,其元素分别对应arr数组中对应位置上的元素是否存在于[3, 4]这个指定的数组中。我们可以使用Python的print()函数打印出这个数组,以查看数组中每个元素的布尔值。

python
print(np.in1d(arr, [3, 4]))

输出结果为:

[False False True True False]

结果中可以看到,3和4在arr数组中的位置上是True,其余位置上是False。

下面是一个完整的代码演示,对一个二维数组[[1, 2, 3], [4, 5, 6], [7, 8, 9]]进行检查,是否存在1和22,以及输出结果。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 检查是否存在1
result1 = np.in1d(1, arr)
print(result1)

# 检查是否存在22
result2 = np.in1d(22, arr)
print(result2)

输出结果为:

True
False

从结果中可以看到,1存在于arr数组中,返回结果是True,而22不存在于arr数组中,返回结果是False。

还可以使用in关键字,检查数组中是否存在指定的值。下面是一个简单的例子:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
if 3 in arr:
    print("3 exists in the array")
else:
    print("3 does not exist in the array")

输出结果为:

3 exists in the array

从结果可以看到,3在arr数组中存在,因此输出结果为“3 exists in the array”。