Julia - 如何对数组进行排序并获取索引

Dav*_*ira 4 sorting julia

我必须数组,一个包含权重,另一个包含类别(例如w=[3, 4, 1, 2],x= ["a","b","c","c"])。现在,我想x使用权重数组对数组进行排序。如何用最少的代码做到这一点?有没有办法对数组进行排序并获取相应的索引,以便您可以在任何其他具有相同大小的数组中使用这种新的排序顺序?

我知道可以使用 DataFrames 来做到这一点,但我正在寻找一种方法来做到这一点而不诉诸于那个。

Nat*_*yer 5

你想要这个sortperm功能。

w = [3, 4, 1, 2]
x = ["a","b","c","d"]
Run Code Online (Sandbox Code Playgroud)
julia> permvec = sortperm(w)
4-element Array{Int64,1}:
 3
 4
 1
 2

julia> xsorted = x[permvec]
4-element Array{String,1}:
 "c"
 "d"
 "a"
 "b"
Run Code Online (Sandbox Code Playgroud)