📅  最后修改于: 2023-12-03 15:03:19.140000             🧑  作者: Mango
numpy 是 Python 中一个强大的科学计算库,提供了许多高级的数学函数和数据结构,同时也方便了数组的索引和操作。在使用 numpy 进行数组操作时,有时需要查找指定值在数组中的位置,本文将介绍 numpy 中几种查找匹配值的索引方法。
numpy.where 是一个非常方便的函数,可用于查找符合指定条件的元素的索引,如下所示:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
ind = np.where(arr == 3)
print(ind[0])
输出:
[2]
上述代码在 arr 数组中查找值为 3 的元素的索引,并返回索引在数组中的位置。
如果要查找多个匹配项的索引,可以将多个条件组合起来,例如:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
ind = np.where((arr == 2) | (arr == 4))
print(ind[0])
输出:
[1 3]
上述代码查找 arr 数组中值为 2 或 4 的元素的索引,并返回索引在数组中的位置。
numpy.argmax 和 numpy.argmin 分别用于查找数组中最大和最小元素的索引,如下所示:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
max_ind = np.argmax(arr)
min_ind = np.argmin(arr)
print(max_ind, min_ind)
输出:
4 0
上述代码在 arr 数组中查找最大和最小元素的索引,并返回索引在数组中的位置。
需要注意的是,如果数组中有多个相同的最大或最小元素,则只会返回第一个匹配项的索引。
numpy.nonzero 用于查找数组中非零元素的索引,如下所示:
import numpy as np
arr = np.array([1, 0, 3, 0, 5])
ind = np.nonzero(arr)
print(ind[0])
输出:
[0 2 4]
上述代码查找 arr 数组中非零元素的索引,并返回索引在数组中的位置。
以上就是 numpy 中几种查找匹配值的索引方法,包括 numpy.where、numpy.argmax 和 numpy.argmin、numpy.nonzero。这些函数都非常方便实用,可以大大提高代码的效率和可读性。