gpt4 book ai didi

python - 如何使 argsort 结果在相等值之间是随机的?

转载 作者:太空狗 更新时间:2023-10-29 20:11:09 35 4
gpt4 key购买 nike

假设您有一个 numpy 向量 [0,3,1,1,1] 并且您运行 argsort你会得到 [0,2,3,4,1] 但所有的都是一样的!我想要的是一种洗牌相同值索引的有效方法。知道如何在没有 while 循环的情况下在排序向量上使用两个索引来做到这一点吗?

numpy.array([0,3,1,1,1]).argsort()

最佳答案

使用词法排序:np.lexsort((b,a)) 表示按a排序,然后按b

排序
>>> a
array([0, 3, 1, 1, 1])
>>> b=np.random.random(a.size)
>>> b
array([ 0.00673736, 0.90089115, 0.31407214, 0.24299867, 0.7223546 ])
>>> np.lexsort((b,a))
array([0, 3, 2, 4, 1])
>>> a.argsort()
array([0, 2, 3, 4, 1])
>>> a[[0, 3, 2, 4, 1]]
array([0, 1, 1, 1, 3])
>>> a[[0, 2, 3, 4, 1]]
array([0, 1, 1, 1, 3])

关于python - 如何使 argsort 结果在相等值之间是随机的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20197990/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com