【问题标题】:Numpy sorting helpNumpy 排序帮助
【发布时间】:2011-04-22 00:39:07
【问题描述】:

在 Numpy 中,如何创建一个可用于按排序顺序返回源数组值的索引数组?例如:

Source:
     [[4  2  6  7]
      [1  4  8  9]
      [3  1  0  3]]

Indices:
     [10  4  9  1  8  11   0  5  2  3  6  7]

【问题讨论】:

    标签: sorting indexing numpy


    【解决方案1】:

    看看numpy.argsort - 它会返回对你的数组进行排序的索引。您还可以指定要排序的轴。试试:

    a = numpy.asarray([[4, 2, 6, 7], [1, 4, 8, 9], [3, 1, 0, 3]])
    numpy.argsort(a.flat)
    
    >> array([10,  4,  9,  1,  8, 11,  0,  5,  2,  3,  6,  7])
    

    【讨论】:

      【解决方案2】:

      答案在手册中:

      src = [[ ... ]]
      ravel_src = np.ravel(src)
      indices = np.argsort(ra)
      

      【讨论】: