Julia中的排序索引(相当于numpy和argsort)
哪个Julia函数返回对数组排序的索引?Python的Numpy使用了Julia中的排序索引(相当于numpy和argsort),julia,Julia,哪个Julia函数返回对数组排序的索引?Python的Numpy使用了argsort我不是100%理解这个问题,但是我怀疑你要问的是,如果你有向量 a = [4,8,2] 你想得到什么 order = [2,3,1] 如果这是您需要的,我所做的就是使用sortcols,这是一种veird解决方案 如果你有一个向量 a = [5,2,8,4,3,1] 您创建了一个新的 b = hcat(a, 1:length(a)) 5 1 2 2 8 3 4 4 3 5 1 6
argsort
我不是100%理解这个问题,但是我怀疑你要问的是,如果你有向量
a = [4,8,2]
你想得到什么
order = [2,3,1]
如果这是您需要的,我所做的就是使用sortcols,这是一种veird解决方案
如果你有一个向量
a = [5,2,8,4,3,1]
您创建了一个新的
b = hcat(a, 1:length(a))
5 1
2 2
8 3
4 4
3 5
1 6
然后你打电话
c = sortrows(b, by = x -> x[1])
1 6
2 2
3 5
4 4
5 1
8 3
现在c[:,2]将是后一列
6
2
5
4
1
3
当然,这些都可以压缩为
sortrows(hcat(a, 1:length(a)), by = x -> x[1])[:,2]
但我想解释一下它是如何工作的
我真的希望有人能发布一个更好的方法来做到这一点,如果有的话看看
sortperm
。
julia> r = rand(0:9, 5)
5-element Array{Int64,1}:
5
0
6
1
1
julia> i = sortperm(r)
5-element Array{Int64,1}:
2
4
5
1
3
julia> r[i]
5-element Array{Int64,1}:
0
1
1
5
6