【发布时间】:2020-09-27 20:13:06
【问题描述】:
我有一个长度为 N 的 numpy 数组,其唯一整数范围从 0 到 N-1,例如
2 3 1 0
我想获得从元素到它们的索引的映射
0 -> 3
1 -> 2
2 -> 0
3 -> 1
我怎样才能很快做到这一点?在我的问题设置中,numpy 数组可能非常大(N 几乎是 10^7)。
结果可以存储在另一个相同长度的mumpy数组中。
【问题讨论】:
标签: arrays performance numpy
我有一个长度为 N 的 numpy 数组,其唯一整数范围从 0 到 N-1,例如
2 3 1 0
我想获得从元素到它们的索引的映射
0 -> 3
1 -> 2
2 -> 0
3 -> 1
我怎样才能很快做到这一点?在我的问题设置中,numpy 数组可能非常大(N 几乎是 10^7)。
结果可以存储在另一个相同长度的mumpy数组中。
【问题讨论】:
标签: arrays performance numpy
由于值中没有模式,您将遍历数组以获得 O(n) 解决方案:
arr = np.array([2, 3, 1, 0])
indices = np.zeros(arr.size, dtype=int)
for i in range(size):
indices[arr[i]] = i
【讨论】: