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

  • Post category:Python

想要检查NumPy数组中是否存在指定的值,通常可以使用Python中NumPy库提供的函数来解决。

下面是一些示例代码,说明如何使用NumPy中的函数检查数组中是否存在指定的数值:

1. 使用in1d函数

in1d()函数用于测试在两个数组中的所有元素是否按某种方式匹配,它返回一个布尔型数组,将原始数组中的所有与第二个数组匹配的元素标记为True。在这里可以将第一个参数设置为要检查的数组,第二个参数设置为需要查找的元素值。

import numpy as np

a = np.array([1, 2, 3, 4, 5])
b = np.array([2, 6, 7])

isin = np.in1d(a, b)
print(isin)

输出结果为:

[False  True False False False]

在这个例子中,我们可以看到isin数组中只有原始数组中包含在第二个数组中的元素为True,而其他元素都是False。

2.使用where函数

where()函数返回输入数组中非零元素的索引,我们可以结合使用该函数和size()函数来检查数组中是否存在指定的数值。

import numpy as np

a = np.array([1, 2, 3, 4, 5])
value = 3

result = np.where(a == value)
size_of_result = np.size(result)

if size_of_result > 0:
    print(f"The value {value} is in the array.")
else:
    print(f"The value {value} is not in the array.")

输出结果为:

The value 3 is in the array. 

在这个例子中,我们首先使用where()函数查找数组a中等于数值3的所有索引位置,然后使用size()函数计算这个数组的大小,如果大小大于0,则表示数组中包含该数值。否则,将显示该数值不在数组中的消息。

希望这些信息能对你有所帮助!