【发布时间】:2020-09-07 20:16:33
【问题描述】:
我有以下 numpy 数组(自 1957 年以来在国家/地区的火箭发射次数),我想按发射次数升序对其进行排序。
['Australia', 6.0],
['Brazil', 3.0],
['China', 269.0],
['France', 303.0],
['India', 76.0],
['Iran', 14.0],
['Israel', 11.0],
['Japan', 126.0],
['Kazakhstan', 701.0],
['Kenya', 9.0],
['New Zealand', 13.0],
['North Korea', 5.0],
['Pacific Ocean', 36.0],
['Russian Federation', 1398.0],
['South Korea', 3.0],
['USA', 1351.0]
问题是, np.sort(a, axis = 0) 仅对值进行排序,但国家/地区没有关联,因此 e.i.朝鲜已经发射了 269 枚火箭(这可能比 5 枚更大)
或者,如果我执行 np.sort(a, axis = 1) 那么我会收到一个错误提示
TypeError: 'float' 和 'str' 的实例之间不支持 '
非常感谢任何想法!
【问题讨论】:
-
这看起来更像是一个列表而不是数组。形状和dtype是什么?您可能需要使用 argsort。
-
arr[arr[:, 1].argsort()]应该可以工作 -
arr[arr[:, 1].argsort()] 有效。谢谢
标签: python arrays numpy sorting