Julia
Julia - 행렬을 여러 열에 대해 정렬하기
쿠키아버님
2022. 10. 25. 16:08
예전 버전에서는 sortrows였고, 현재는 sortslices를 사용한다고 한다
원하는 것은 행렬이 주어져있을 때, 우선순위를 정해 여러개의 열에 대해 정렬을 하는 것이다.
예시로 행렬이 다음과 같이 주어졌을 때,
julia> t = [1 0 3 ; 1 1 2; 0 0 5; 0 1 10]
4×3 Matrix{Int64}:
1 0 3
1 1 2
0 0 5
0 1 10
아래와 같이 1번 열 → 2번 열의 순서로 데이터를 정렬하고 싶다.
4×3 Matrix{Int64}:
0 0 5
0 1 10
1 0 3
1 1 2
이를 위해 sortslices 함수를 사용한다.
인수의 by 부분에 정렬하고자 하는 열의 우선순위를 적어준다.
julia> sortslices(t, dims=1, by=x->(x[1], x[2]))
4×3 Matrix{Int64}:
0 0 5
0 1 10
1 0 3
1 1 2
dims=1은 행 정렬, dims=2는 열 정렬이다.