如何仅使用argmin()对数组进行排序

时间:2017-12-11 12:08:11

标签: python arrays sorting numpy

如何仅使用argmin()

按升序对数组进行排序

例如,如果我定义sort_function(x)仅使用x返回argmin()的升序,并执行:

print(sort_function(np.array([1,6,3,7]))

结果应为[1 3 6 7]

1 个答案:

答案 0 :(得分:5)

这里是快速的O(N ** 2) -

  1. 在列表中调用np.argmin
  2. 在该索引处弹出元素
  3. 重复直到列表为空
  4. def sort_function(x):
        y = list(x)
        while y:
            yield y.pop(np.argmin(y))
    
    list(sort_function(np.array([1, 6, 3, 7])))
    [1, 3, 6, 7]