python - 获取已排序矩阵的索引

标签 python sorting matrix indexing

我有一个 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)

谢谢

最佳答案

使用numpy.argsort使用 axis=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)]

关于python - 获取已排序矩阵的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31694080/

相关文章:

python - usecols 在 pandas 中不区分大小写

python - 如果不立即重新引发异常回溯,则隐藏

javascript - 使用 Javascript 按值对 JSON 数组对象进行排序

c - 如何检查矩阵中是否存在元素?

python - 为什么打印制表符并不总是打印制表符而是打印空格?

python - OpenCV - 车道检测,黄色和白色车道

python - 如何在Python中对一个数字进行排序并得到另一个数字?

javascript - 按最匹配的列表项对列表进行排序

r - 使用大型数据集在 R 中创建二元矩阵

r - 使用包含行名和列名的索引向量向矩阵添加值