【发布时间】:2016-04-11 23:35:36
【问题描述】:
我有两组数组data 和result。 result 包含与 data 相同的元素,但有一个额外的列且未排序。我想重新排列 result 数组,使其与 data 中的行顺序相同,同时在进行排序时将关联的值与行的其余部分一起放入最后一列。
data = np.array([[0,1,0,0],[1,0,0,0],[0,1,1,0],[0,1,0,1]])
result = np.array([[0,1,1,0,1],[1,0,0,0,0],[0,1,0,0,1],[0,1,0,1,0]])
# this is what the final sorted array should look like:
'''
array([[0, 1, 0, 0, 1],
[1, 0, 0, 0, 0],
[0, 1, 1, 0, 1],
[0, 1, 0, 1, 0]])
'''
我尝试过 argsort 以将 data 反转为排序顺序,然后将其应用于 result 但 argsort 似乎根据每个元素对数组的顺序进行排序,而我想要sort 将data[:,4] 的每一行视为一个整体。
ind = np.argsort(data)
indind =np.argsort(ind)
ind
array([[0, 2, 3, 1],
[1, 2, 3, 0],
[0, 3, 1, 2],
[0, 2, 1, 3]])
这种按行排序的好方法是什么?
【问题讨论】:
-
额外的列总是放在序列的最后吗?