给出你的数组>>> 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]])

>>>