logo

줄리아에서 빈도 수 세는 방법 📂줄리아

줄리아에서 빈도 수 세는 방법

설명

줄리아에서 객체 내 원소의 빈도수를 셀 때는 함수 countmap 혹은 counts를 이용하면 된다. 둘 다 패키지 StatsBase를 불러와야 사용할 수 있다.

countmap은 그 이름에 맞게 원소와 그 개수의 페어들을 반환한다. 입력 대상이 포함하는 값에 대해서만 결과를 얻는다.

julia> countmap(x)
Dict{Int64, Int64} with 4 entries:
  값1 => 값1의 빈도
  값2 => 값2의 빈도
  값3 => 값3의 빈도
  값4 => 값4의 빈도

이와 달리 counts는 우선 출력이 벡터이며, 정수에 대해서만 사용할 수 있다. 자세한 건 아래에서 코드를 확인하라.

countmap

정수의 벡터든, 문자의 벡터든, 행렬이든, 문자열이든 사용할 수 있다.

julia> x = rand(0:4, 100)
100-element Vector{Int64}:
 0
 4
 ⋮
 4
 1

julia> countmap(x)
Dict{Int64, Int64} with 5 entries:
  0 => 28
  4 => 20
  2 => 13
  3 => 16
  1 => 23

julia> s = rand('a':'e', 100)
100-element Vector{Char}:
 'd': ASCII/Unicode U+0064 (category Ll: Letter, lowercase)
 'd': ASCII/Unicode U+0064 (category Ll: Letter, lowercase)
 ⋮
 'e': ASCII/Unicode U+0065 (category Ll: Letter, lowercase)
 'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)


julia> A = rand(0:4, (10,10))
10×10 Matrix{Int64}:
 2  4  3  1  2  3  3  3  3  0
 1  0  3  2  0  0  3  0  3  1
 ⋮              ⋮
 2  0  1  3  4  4  2  0  4  4
 1  4  4  4  2  1  2  1  0  4

julia> countmap(A)
Dict{Int64, Int64} with 5 entries:
  0 => 19
  4 => 24
  2 => 15
  3 => 22
  1 => 20

julia> foo = "asdflk23f90cxnvjkcdsafalj;fdwaelkf"
"asdflk23f90cxnvjkcdsafalj;fdwaelkf"

julia> countmap(foo)
Dict{Char, Int64} with 18 entries:
  'n' => 1
  'f' => 5
  ';' => 1
  ⋮ 
  '0' => 1
  '2' => 1
  '3' => 1
  'v' => 1

counts

함수 countscountmap과 비슷하지만, 결과가 빈도의 벡터라는 점이 다르다. 여기서 중요한 점은 출력의 첫번째 성분이 제일 작은 값의 빈도, 두번째 성분은 그 다음 정수의 빈도와 같은 식으로 되어있다는 것이다.

julia> x = [1, 1, 2, 2, 3]
5-element Vector{Int64}:
 1
 1
 2
 2
 3

julia> counts(x)
3-element Vector{Int64}:
 2 # x내 1의 빈도
 2 # x내 2의 빈도
 1 # x내 3의 빈도

julia> y = [3, 5, 5, 8, 8, 8]
6-element Vector{Int64}:
 3
 5
 5
 8
 8
 8

julia> counts(y)
6-element Vector{Int64}:
 1 # y내 3의 빈도
 0 # y내 4의 빈도
 2 # y내 5의 빈도
 0 # y내 6의 빈도
 0 # y내 7의 빈도
 3 # y내 8의 빈도

빈도를 측정할 범위를 지정할 수 있다.

# 정수 k만 입력하면 범위 1:k 내의 빈도수를 반환
julia> counts(x, 5)
5-element Vector{Int64}:
 2
 2
 1
 0
 0

julia> counts(x, 0:5)
6-element Vector{Int64}:
 0
 2
 2
 1
 0
 0

환경

  • OS: Windows11
  • Version: Julia 1.11.3, StatsBase v0.34.10