python - Numpy "sort like"函数

标签 python sorting numpy

假设我有两个数组,vw:

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/

相关文章:

python - 如何判断从列表中随机选择的字符串是相同的

python - 获取 dateutil.parse 中的格式

linux - Linux 的排序命令如何将后续传递应用于数据?

php - redis 能否提高我的mysql 性能以及如何将数据存储在类似于db 表的redis 中?

python - 如何检测一个点是否位于 2D numpy 数组中的非矩形区域?

python - matplotlib mathtext\frac 太小

python - 使用 scipy 和 numpy 中的函数计算 z-score

java - 如何使用 selenium、java 验证排序选项结果包含正确的结果?

python - 将形状 (n,) 的数组转换为形状 (n,1) 的 numpy 数组

python - 在python中连接几个np数组