📜  Python中的 numpy.find()(1)

📅  最后修改于: 2023-12-03 14:46:36.015000             🧑  作者: Mango

Python中的 numpy.find()

numpy.find()是一个用于在数组中查找给定值的函数,它返回匹配项的索引(如果找到了)。它的语法如下:

numpy.find(array, value)

其中,

  • array:需要查找的数组;
  • value:需要查找的值。

下面是一个例子:

import numpy as np

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

print(index)
# 输出:3

上面的例子中,我们在数组arr中查找值为5的元素,并返回索引。由于5在数组中的位置是第四个,因此返回值为3

需要注意的是,如果在数组中找不到值,numpy.find()将返回空数组,而不是-1或其他错误值。

import numpy as np

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

print(index)
# 输出:[]

在上面的例子中,由于数组中没有值为9的元素,numpy.find()将返回空数组。

numpy.find()还支持一些其他参数:

  • start:从这个位置开始查找,默认为0;
  • end:查找结束的位置,默认为数组的长度。

下面是一个带参数的例子:

import numpy as np

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

print(index)
# 输出:[]

在上面的例子中,我们从索引2开始查找,查找结束的位置为5,这样就只查找了4, 5, 6这三个元素,因此返回值为空数组。

需要注意的是,numpy.where()也可以实现类似的功能,但它会返回匹配项的位置,而不是索引。如果需要返回数组索引,则需要使用numpy.argwhere()函数。

import numpy as np

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

print(index)
# 输出:[[3]]

在上面的例子中,我们使用numpy.argwhere()函数查找值为5的位置,并返回索引。返回值是一个包含一个元素的二维数组,需要使用[0][0]来获取值。