python-3.x - 排序数组的索引
问题描述
我有一个包含实数的形状 (nrows,ncols) 的二维数组。我想按降序获取与数组值相对应的索引(行,列)。检查 np.argsort() 的文档,它似乎只返回按特定轴排序的索引。我确信这应该很简单,但我就是想不通。
例如,如果我有:
[
[1 5 6]
[7 4 9]
[8 2 3]
]
所需的输出是:
[
(1,2),
(2,0),
(1,0),
(0,2),
(0,1),
(1,1),
(2,2),
(2,1),
(0,0),
]
解决方案
这是降序的一种方法 -
In [19]: a
Out[19]:
array([[1, 5, 6],
[7, 4, 9],
[8, 2, 3]])
In [20]: np.c_[np.unravel_index(a.ravel().argsort()[::-1],a.shape)]
Out[20]:
array([[1, 2],
[2, 0],
[1, 0],
[0, 2],
[0, 1],
[1, 1],
[2, 2],
[2, 1],
[0, 0]])
对于升序,跳过翻转部分:[::-1]
。
或负值 -
In [24]: np.c_[np.unravel_index((-a).ravel().argsort(),a.shape)]
Out[24]:
array([[1, 2],
[2, 0],
[1, 0],
[0, 2],
[0, 1],
[1, 1],
[2, 2],
[2, 1],
[0, 0]])
推荐阅读
- c++ - 也接受 http 连接的 boost-beast websocket 服务器
- python - Python 3:通过套接字发送文件。(客户端-服务器程序)
- r - 基于没有特定标题的excel电子表格组合文件夹中的多个excel文件
- amazon-web-services - 如何远程运行脚本?
- salesforce - 如何获取顶点页面中使用的所有自定义标签信息?
- scala - 如何检查akka actor中的存储大小
- json - 将嵌套的 JSON 解码为采用 Decodable 的结构
- highcharts - 具有绝对长度的连通向量的 Highcharts 向量图
- r - 使用空列表启动数据框中的元素
- cucumber - Gherkin:带有双引号元素的字符串的步骤定义