【发布时间】:2021-07-22 21:36:38
【问题描述】:
我有一个 numpy 数组列表,想先对每个数组进行排序,然后对列表中的整个数组进行排序。第一步对我来说很清楚。这是我的数据:
unsorted=[np.array([[2.5, 6., 5.1],\
[3.5, 7., 0.1],\
[2.5, 7., 0.],\
[3.5, 6., 0.1]]),\
np.array([[2.5, 6., 1.],\
[1.5, 7., 5.2]]),\
np.array([[1.5, 7., 0.2],\
[2.5, 7., 1.2]])]
首先,我使用以下代码根据第一列和第二列对每个数组进行排序:
sorted_arr=[]
for i in unsorted:
i=i[np.lexsort((i[:,0],i[:,1]))]
sorted_arr.append(i)
然后,我还想对列表中的数组进行排序。我想根据第一列和第二列的平均值对它们进行排序。对于第一列和第二列的第一个数组平均值是:3. 和 6.5。对于第二个数组,它是 2. 和 6.5。最后一个数组是2. 和7。我想首先根据第二列的平均值对数组进行排序,然后是第一列。我的意思是我希望我的最终结果是:
sorted_arr=[array([[2.5, 6. , 1. ],
[1.5, 7. , 5.2]]),
array([[1.5, 7. , 0.2],
[2.5, 7. , 1.2]]),
array([[2.5, 6. , 5.1],
[3.5, 6. , 0.1],
[2.5, 7. , 0. ],
[3.5, 7. , 0.1]])]
我非常感谢在 python 中这样做的任何帮助。
【问题讨论】:
标签: python arrays numpy sorting