📅  最后修改于: 2023-12-03 15:27:48.621000             🧑  作者: Mango
在NumPy中,可以通过多种方法获取数组中元素的索引。本文将介绍NumPy中获取数组元素索引的几种方法。
where
函数numpy.where
函数可以返回满足条件的所有元素的索引。下面是一个示例:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
indices = np.where(arr == 3)
print(indices)
输出结果:
(array([2]),)
nonzero
函数numpy.nonzero
函数可以返回一个包含数组中所有非零元素索引的元组。下面是一个示例:
import numpy as np
arr = np.array([1, 2, 3, 0, 5])
indices = np.nonzero(arr)
print(indices)
输出结果:
(array([0, 1, 2, 4]),)
argwhere
函数numpy.argwhere
函数返回数组中所有非零元素的索引,其返回结果是一个二维数组。下面是一个示例:
import numpy as np
arr = np.array([1, 0, 2, 0, 3, 0])
indices = np.argwhere(arr != 0)
print(indices)
输出结果:
array([[0],
[2],
[4]])
meshgrid
函数numpy.meshgrid
函数可以生成一个多维坐标网格,其返回结果是一个元组,每个元素都是一个数组。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x, y = np.meshgrid(np.arange(arr.shape[0]), np.arange(arr.shape[0]))
indices = list(zip(x[arr == 3], y[arr == 3]))
print(indices)
输出结果:
[(2, 0)]
unravel_index
函数numpy.unravel_index
函数可以将一维索引转换为多维数组索引。
import numpy as np
arr = np.array([1, 2, 3, 4, 5]).reshape(1, -1)
indices = np.unravel_index(np.argmax(arr), arr.shape)
print(indices)
输出结果:
(0, 4)
以上就是几种获取NumPy数组Python中元素的索引的方法。不同的方法适用于不同的场景,根据需要选择合适的方法即可。