朱莉娅的排序索引(相当于numpy的argsort)

时间:2016-09-26 08:34:51

标签: julia

哪个Julia的函数返回将对数组进行排序的索引? Python的Numpy使用argsort

2 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分:1)

我不是100%我理解这个问题,但我怀疑你问的是,如果你有载体

private void textEdit1_KeyDown(object sender, KeyEventArgs e)
    {
        if (this.textEdit1.Text.Length == 10)
        {
            textEdit2.Text = textEdit1.Text;                
            this.textEdit1.Text = "";

        }
        label2.Text = textEdit1.Text.Length.ToString();
        label1.Text = textEdit2.Text.Length.ToString();
    }

你想得到

a = [4,8,2]

如果这就是你所需要的,我所做的就是使用sortcols,这是一个很奇怪的解决方法

如果你有一个矢量,

order = [2,3,1]

你创建了一个新的

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 [:,2]将是后一列

c = sortrows(b, by = x -> x[1])

 1  6
 2  2
 3  5
 4  4
 5  1
 8  3

当然,这可以全部压缩成

 6
 2
 5
 4
 1
 3

但我想解释它是如何运作的

我真的希望有人发布更好的方法,如果有的话