用法:
sortslices(A; dims, alg::Algorithm=DEFAULT_UNSTABLE, lt=isless, by=identity, rev::Bool=false, order::Ordering=Forward)
对数组的切片进行排序 A
。必需的关键字参数 dims
必须是整数或整数元组。它指定对切片进行排序的维度。
例如,如果A
是一个矩阵,dims=1
将对行进行排序,dims=2
将对列进行排序。请注意,一维切片上的默认比较函数按字典顺序排序。
对于其余的关键字参数,请参阅
的文档。sort!
例子
julia> sortslices([7 3 5; -1 6 4; 9 -2 8], dims=1) # Sort rows
3×3 Matrix{Int64}:
-1 6 4
7 3 5
9 -2 8
julia> sortslices([7 3 5; -1 6 4; 9 -2 8], dims=1, lt=(x,y)->isless(x[2],y[2]))
3×3 Matrix{Int64}:
9 -2 8
7 3 5
-1 6 4
julia> sortslices([7 3 5; -1 6 4; 9 -2 8], dims=1, rev=true)
3×3 Matrix{Int64}:
9 -2 8
7 3 5
-1 6 4
julia> sortslices([7 3 5; 6 -1 -4; 9 -2 8], dims=2) # Sort columns
3×3 Matrix{Int64}:
3 5 7
-1 -4 6
-2 8 9
julia> sortslices([7 3 5; 6 -1 -4; 9 -2 8], dims=2, alg=InsertionSort, lt=(x,y)->isless(x[2],y[2]))
3×3 Matrix{Int64}:
5 3 7
-4 -1 6
8 -2 9
julia> sortslices([7 3 5; 6 -1 -4; 9 -2 8], dims=2, rev=true)
3×3 Matrix{Int64}:
7 5 3
6 -4 -1
9 8 -2
更高的维度
sortslices
自然地扩展到更高的维度。例如,如果 A
是一个 2x2x2 数组,则 sortslices(A, dims=3)
将对第 3 维内的切片进行排序,将 2x2 切片 A[:, :, 1]
和 A[:, :, 2]
传递给比较函数。请注意,虽然高维切片没有默认顺序,但您可以使用 by
或 lt
关键字参数来指定这样的顺序。
如果dims
是元组,则dims
中的维度顺序是相关的,并指定切片的线性顺序。例如,如果 A
是三维的,而 dims
是 (1, 2)
,则重新排列前两个维度的顺序,以便对(剩余的第三维的)切片进行排序。如果 dims
改为 (2, 1)
,则将采用相同的切片,但结果顺序将改为行优先。
高维示例
julia> A = permutedims(reshape([4 3; 2 1; 'A' 'B'; 'C' 'D'], (2, 2, 2)), (1, 3, 2))
2×2×2 Array{Any, 3}:
[:, :, 1] =
4 3
2 1
[:, :, 2] =
'A' 'B'
'C' 'D'
julia> sortslices(A, dims=(1,2))
2×2×2 Array{Any, 3}:
[:, :, 1] =
1 3
2 4
[:, :, 2] =
'D' 'B'
'C' 'A'
julia> sortslices(A, dims=(2,1))
2×2×2 Array{Any, 3}:
[:, :, 1] =
1 2
3 4
[:, :, 2] =
'D' 'C'
'B' 'A'
julia> sortslices(reshape([5; 4; 3; 2; 1], (1,1,5)), dims=3, by=x->x[1,1])
1×1×5 Array{Int64, 3}:
[:, :, 1] =
1
[:, :, 2] =
2
[:, :, 3] =
3
[:, :, 4] =
4
[:, :, 5] =
5
相关用法
- Julia sort用法及代码示例
- Julia sortperm用法及代码示例
- Julia sort!用法及代码示例
- Julia something用法及代码示例
- Julia splice!用法及代码示例
- Julia sizeof()用法及代码示例
- Julia setfield()用法及代码示例
- Julia sqrt方法用法及代码示例
- Julia signed用法及代码示例
- Julia strip用法及代码示例
- Julia setdiff!用法及代码示例
- Julia setindex!方法用法及代码示例
- Julia sizeof方法用法及代码示例
- Julia stride用法及代码示例
- Julia skipmissing用法及代码示例
- Julia setdiff用法及代码示例
- Julia sum用法及代码示例
- Julia show方法用法及代码示例
- Julia string用法及代码示例
- Julia signbit()用法及代码示例
- Julia startswith用法及代码示例
- Julia strides用法及代码示例
- Julia symdiff用法及代码示例
- Julia split用法及代码示例
- Julia sign用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.sortslices — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。