【发布时间】:2021-11-29 07:52:34
【问题描述】:
我正在尝试对二维数组进行排序,我尝试了很多方法,但它不起作用。我不知道这里发生了什么
from operator import itemgetter
import pprint
arr=[['0.55070000', '879.00000000'], ['0.55350000', '879.00000000'], ['0.55640000', '879.00000000'], ['0.56210000', '879.00000000'], ['0.56490000', '879.00000000'], ['0.56780000', '879.00000000'], ['0.57060000', '879.00000000'], ['0.54500000', '899.00000000'], ['0.56370000', '901.00000000'], ['0.53070000', '908.00000000'], ['0.57350000', '916.00000000'], ['0.55000000', '9172.00000000'], ['0.56300000', '939.00000000'], ['0.54490000', '94.00000000'], ['0.56040000', '96.00000000'], ['0.54960000', '999.00000000']]
# sorted(floatarry, key=itemgetter(1))
sorted(arr,key=lambda x:x[1])
pprint.pprint(arr)
# from operator import itemgetter
#############################################################
# columnIndex = 1
# # Sort 2D numpy array by 2nd Column
# arr2D = np.array(arr)
# sortedArr = arr2D[arr2D[:,columnIndex].argsort()]
# print('Sorted 2D Numpy Array')
# print(sortedArr)
result
[['0.55070000' '879.00000000']
['0.55350000' '879.00000000']
['0.55640000' '879.00000000']
['0.56210000' '879.00000000']
['0.56490000' '879.00000000']
['0.56780000' '879.00000000']
['0.57060000' '879.00000000']
['0.54500000' '899.00000000']
['0.56370000' '901.00000000']
['0.53070000' '908.00000000']
['0.57350000' '916.00000000']
['0.55000000' '9172.00000000']
['0.56300000' '939.00000000']
['0.54490000' '94.00000000']
['0.56040000' '96.00000000']
['0.54960000' '999.00000000']]
最后 4 和 5 没有显示错误结果的行
【问题讨论】:
-
您正在对仍然是字符串的第二个值进行排序。你必须先把它们变成浮点值/整数值。详情请查看我的回答。
标签: python arrays numpy sorting