我想对数组进行排序,并同时对索引和值进行排序。 这是一个很大的数组,所以我不想同时进行argsort和排序。
如何使用argsort的结果对数组进行排序。我尝试过:
import numpy as np
import pdb
A = np.random.rand(10,5)
indices = np.argsort(A,1)
B = A[indices]
print(B)
pdb.set_trace()
但是这里B的形状变成(10,5,5)。应该是(10,5)
答案是:
import numpy as np
import pdb
A = np.random.rand(10,5)
print(A)
print('\n\n')
indices = np.argsort(A,1)
B = A[np.arange(A.shape[0])[:,None],indices]
print(B)
pdb.set_trace()