首先,我是python的新手,所以我非常感谢任何提示/帮助。
从本质上讲,我希望nx3 numpy数组首先按第二列排序,然后按第三列排序,但我希望该行中的所有数据彼此保持一致。
如下所示:
import numpy as np
a = np.array([[20, 2, 4],
[7, 5, 6],
[25, 1, 5],
[2, 2, 3],
[3, 5, 8],
[4, 1, 3]])
......... (n times)在此数组中,第一列表示值,第二列表示x坐标,第三列表示y坐标。最好的方法是先按x坐标对数组进行降序排序,然后在y坐标上进行降序排序,同时仍将值分配给x和y坐标?
所以在排序之后,它看起来是这样的:
a = ([[4, 1, 3],
[25, 1, 5],
[2, 2, 3],
[20, 2, 4],
[7, 5, 6],
[3, 5, 8]])
......... (n times)你可以看到,它如何首先对x坐标进行排序,然后对所有x坐标相同的y坐标进行排序。因为它首先找到所有x坐标为1,然后在该排序中找到y坐标。而值、x和y坐标都彼此保持在同一行上。
发布于 2019-08-13 17:38:27
看一下'order‘参数:https://docs.scipy.org/doc/numpy/reference/generated/numpy.sort.html
import numpy as np
dtype = [('x',int),('y',int)]
values = [(1,7),(3,4),(1,4),(1,3)]
a = np.array(values,dtype=dtype)
print(np.sort(a, order=['x','y']))https://stackoverflow.com/questions/57474739
复制相似问题