假设我有两个数组,v
和 w
:
v=np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
w=np.random.random(10,)
array([ 0.20224634, 0.19145386, 0.44607429, 0.53601637, 0.29148741,
0.62670435, 0.95371219, 0.63634805, 0.48733178, 0.17155278])
我可以像这样对 w
进行排序:
np.sort(w)
array([ 0.17155278, 0.19145386, 0.20224634, 0.29148741, 0.44607429,
0.48733178, 0.53601637, 0.62670435, 0.63634805, 0.95371219])
我想用与 w
相同的方式对 v
进行排序。例如。这样元素 9 移动到元素 0 等等,直到 v
变成:
array([9, 1, 0, 4, 2, 8, 3, 5, 7, 6])
有没有一种我缺少的简单方法可以做到这一点?
如果没有,你会怎么做?
最佳答案
您可以使用 np.argsort
获取顺序:
order = np.argsort(w)
然后对两个数组进行排序:
w = w[order]
v = v[order]
关于python - Numpy "sort like"函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038347/