【问题标题】:Get an index of a sorted matrix获取排序矩阵的索引
【发布时间】:2015-07-29 07:36:25
【问题描述】:

我有一个 2D np.array:

array([[ 1523.,   172.,  1613.],
       [ 3216.,   117.,  1999.],
       [   85.,  1271.,     4.]])

我会按值提取这个 np.array 的排序索引。
结果应该是(例如): [[2,2],[2,0],[1,1],[0,1],[2,1],[0,0],[0,2],[1,2],[1,0]]

我已经看到了如何提取最小值:

np.unravel_index(np.argmin(act),act.shape) #(2,2)

谢谢

【问题讨论】:

    标签: python sorting matrix indexing


    【解决方案1】:

    使用numpy.argsortaxis=None(假设展平数组):

    >>> import numpy as np
    >>> 
    >>> act = np.array([[ 1523.,   172.,  1613.],
    ...                 [ 3216.,   117.,  1999.],
    ...                 [   85.,  1271.,     4.]])
    >>> n = act.shape[1]
    >>> zip(*np.argsort(act, axis=None).__divmod__(n))
    [(2, 2), (2, 0), (1, 1), (0, 1), (2, 1), (0, 0), (0, 2), (1, 2), (1, 0)]
    

    【讨论】:

    • @BenoitHugonnard,对不起,我更新了修复格式问题的答案。
    • 工作就像一个魅力!只需将其转换为列表;)谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 2019-04-16
    • 2018-04-29
    • 1970-01-01
    相关资源
    最近更新 更多