基于来自另一个数组的数据对numpy数组进行排序

时间:2016-04-10 21:18:31

标签: python sorting numpy

我有两组数组dataresultresultdata中包含相同的元素,但有一个额外的列并且未按顺序排列。我想重新排列result数组,使其与data中的行的顺序相同,同时在执行排序时将关联的值与行的其余部分一起放入最后一列。 / p>

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似乎对基于数组的顺序进行排序在每个元素上,而我希望排序将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]])

按行进行此类排序有什么好方法?

0 个答案:

没有答案