【问题标题】:Get the indices of for a numpy array of N integers获取 N 个整数的 numpy 数组的索引
【发布时间】: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


    【解决方案1】:

    由于值中没有模式,您将遍历数组以获得 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
    

    【讨论】:

    • 谢谢。我可以假设“indices[arr]=np.arange(arr.size)”会更快吗?
    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2017-03-27
    相关资源
    最近更新 更多