【发布时间】:2018-04-12 16:13:59
【问题描述】:
我有一个包含列表的字典,每个列表的元素数量相同。
to_sort={'a':np.array([1,1,3]),'b':np.array([5,4,5])}
我想添加一个新键“rank”,它包含根据“a”排序的字典的索引,如果出现平局,则根据“b”。 我能做到:
to_sort['a'].argsort()
并获取排序索引。但是,如果出现示例中的平局,我会得到:
np.array([1,3,3]).argsort()
Out[17]: array([0, 1, 2], dtype=int64)
现在我想使用“b”的值对这些排序索引进行排名。
例如所需的输出 -> [1,0,2] 而不是 [0,1,2]。
首选 Python 原生解决方案
【问题讨论】:
标签: python sorting numpy dictionary