用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。