【发布时间】:2019-05-02 00:31:59
【问题描述】:
我有一个简单的二维数组,我想按第 2 列中的条目排序,如果第 2 列中存在相同的条目,则也按第 1 列排序并返回这个新数组的索引来自原始数组a。这是起点:
import numpy as np
a = np.array([[0.1,2.134],[0.2,3.02],[0.1,2.5],[0.3,2.134],[0.1,3.02]])
a
>>> array([[0.1 , 2.134],
[0.2 , 3.02 ],
[0.1 , 2.5 ],
[0.3 , 2.134],
[0.1 , 3.02 ]])
然后我可以按第二列排序以生成:
b = a[a[:,1].argsort()]
b
>>> array([[0.1 , 2.134],
[0.3 , 2.134],
[0.1 , 2.5 ],
[0.2 , 3.02 ],
[0.1 , 3.02 ]])
但我希望这另外按第一列排序。我想要的从a 开始的输出是:
>>> array([[0.1 , 2.134],
[0.3 , 2.134],
[0.1 , 2.5 ],
[0.1 , 3.02 ],
[0.2 , 3.02 ]])
连同这个新数组的相应索引。
【问题讨论】:
-
查看solution
标签: arrays python-3.x numpy sorting