📜  numpy 查找匹配值的索引 - Python (1)

📅  最后修改于: 2023-12-03 15:03:19.140000             🧑  作者: Mango

numpy 查找匹配值的索引 - Python

numpy 是 Python 中一个强大的科学计算库,提供了许多高级的数学函数和数据结构,同时也方便了数组的索引和操作。在使用 numpy 进行数组操作时,有时需要查找指定值在数组中的位置,本文将介绍 numpy 中几种查找匹配值的索引方法。

numpy.where

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

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

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 数组中非零元素的索引,并返回索引在数组中的位置。

Conclusion

以上就是 numpy 中几种查找匹配值的索引方法,包括 numpy.where、numpy.argmax 和 numpy.argmin、numpy.nonzero。这些函数都非常方便实用,可以大大提高代码的效率和可读性。