📜  在 np arrau 中查找第一个 - Python (1)

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

在 Numpy 数组中查找第一个 - Python

在 Numpy 数组中查找特定元素是一个常见的任务。本文将介绍如何在 Numpy 数组中查找第一个指定元素的位置。

方法一:使用 np.where() 函数

np.where() 函数可以返回满足条件的元素的索引,我们可以使用它来查找第一个指定元素的位置。

import numpy as np

a = np.array([1, 2, -3, 4, 5, -6, 7, 8, 9])
index = np.where(a == -3)[0][0]
print(index)  # 2

在上面的例子中,我们创建了一个包含 9 个元素的 Numpy 数组,并使用 np.where() 函数找到了第一个值为 -3 的元素的位置。

首先,np.where() 函数返回一个元组,其中的第一个元素是包含满足条件的元素的索引的数组。由于我们只想要一个索引值,我们可以使用 [0] 操作符获取第一个数组。然后,我们再次使用 [0] 操作符来获取该数组的第一个元素,即我们要找的索引。

请注意,如果数组中不存在指定的元素,则会引发 IndexError。

方法二:使用 np.argwhere() 函数

与 np.where() 类似,np.argwhere() 函数也可以返回满足条件的元素的索引。但是,它返回的是一个包含每个满足条件元素的索引列表的数组。

import numpy as np

a = np.array([1, 2, -3, 4, 5, -6, 7, 8, 9])
index = np.argwhere(a == -3)[0][0]
print(index)  # 2

注意,np.argwhere() 函数返回的数组包含多维索引。因此,我们需要使用 [0][0] 操作符获取我们想要的索引。

方法三:使用 np.nonzero() 函数

np.nonzero() 函数返回非零元素的索引,与前两种方法不同,它可以用于查找所有满足条件的元素的位置,而不仅仅是第一个。

import numpy as np

a = np.array([1, 2, -3, 4, 5, -6, 7, 8, 9])
indices = np.nonzero(a == -3)[0]
print(indices)  # [2]

在上面的例子中,我们使用 np.nonzero() 函数查找数组中所有值为 -3 的元素的位置,并将它们存储在 indices 变量中。

请注意,np.nonzero() 函数返回的是一个包含索引列表的元组,因此我们需要使用 [0] 操作符来获取第一个索引列表。

结论

在本文中,我们介绍了三种在 Numpy 数组中查找第一个指定元素的位置的方法。虽然这些方法都可以实现目标,但对于大型数组,np.where() 函数可能会更快一些。