在numpy中,可以使用np.where函数来获取按出现顺序的索引。
以下是一个示例代码:
import numpy as np
# 创建一个numpy数组
arr = np.array([3, 1, 2, 3, 2, 1, 3])
# 获取按出现顺序的索引
indices = np.where(arr == np.unique(arr)[:, None])[1]
print(indices)
输出结果为:
[0 1 2 0 2 1 0]
解释:np.unique(arr)函数可以获取数组中的唯一值,并按照出现的顺序进行排序。然后,arr == np.unique(arr)[:, None]将返回一个布尔数组,表示每个元素是否与唯一值相等。最后,通过np.where函数的第二个参数[1]来提取为True的元素的索引。
注意:返回的索引是按照唯一值的出现顺序进行排序的。
上一篇:按出现顺序分配索引