给出你的数组>>> arr
array([[ 3.05706500e+06, 4.98000000e+01, -2.62500070e+01,
-9.38135544e+01],
[ 3.05706600e+06, 4.98000000e+01, -3.00000056e+01,
-9.38135544e+01],
[ 3.05706700e+06, 4.98000000e+01, -3.37500042e+01,
-9.38135544e+01],
[ 3.05706800e+06, 4.98000000e+01, -3.75000028e+01,
-9.38135544e+01]])
您只需使用numpy.sort和axis=0就可以按需要进行排序>>> numpy.sort(arr,axis=0)
array([[ 3.05706500e+06, 4.98000000e+01, -3.75000028e+01,
-9.38135544e+01],
[ 3.05706600e+06, 4.98000000e+01, -3.37500042e+01,
-9.38135544e+01],
[ 3.05706700e+06, 4.98000000e+01, -3.00000056e+01,
-9.38135544e+01],
[ 3.05706800e+06, 4.98000000e+01, -2.62500070e+01,
-9.38135544e+01]])
>>>
我相信我之前的回答是错误的,因为我误解了这个问题。这是正确的答案>>> arr[arr[:,2].argsort()]
array([[ 3.05706800e+06, 4.98000000e+01, -3.75000028e+01,
-9.38135544e+01],
[ 3.05706700e+06, 4.98000000e+01, -3.37500042e+01,
-9.38135544e+01],
[ 3.05706600e+06, 4.98000000e+01, -3.00000056e+01,
-9.38135544e+01],
[ 3.05706500e+06, 4.98000000e+01, -2.62500070e+01,
-9.38135544e+01]])
>>>