📅  最后修改于: 2023-12-03 14:51:03.162000             🧑  作者: Mango
在 Numpy 数组中查找特定元素是一个常见的任务。本文将介绍如何在 Numpy 数组中查找第一个指定元素的位置。
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.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() 函数返回非零元素的索引,与前两种方法不同,它可以用于查找所有满足条件的元素的位置,而不仅仅是第一个。
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() 函数可能会更快一些。