Numpy.digitize()를 사용하여 python에서 변수를 그룹화하는 방법


종종 변수 값을 Python의 “bins”에 넣는 데 관심이 있을 수 있습니다.

다행히도 다음 구문을 사용하는 numpy.digitize() 함수를 사용하면 이 작업을 쉽게 수행할 수 있습니다.

numpy.digitize(x, bins, right=False)

금:

  • x: 그룹에 대한 배열입니다.
  • bins: 저장소 배열.
  • 오른쪽: 간격에 Bin의 오른쪽 가장자리 또는 왼쪽 가장자리가 포함되는지 여부를 나타냅니다. 기본적으로 간격에는 오른쪽 간선이 포함되지 않습니다.

이 튜토리얼에서는 이 기능의 실제 사용에 대한 몇 가지 예를 보여줍니다.

예시 1: 모든 값을 두 개의 bin에 배치

다음 코드는 배열의 값을 두 개의 bin에 배치하는 방법을 보여줍니다.

  • x < 20이면 0
  • x ≥ 20인 경우 1
 import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34]

#place values into bins
n.p. digitize (data, bins=[20])

array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1])

예시 2: 모든 값을 3개의 bin에 배치

다음 코드는 배열의 값을 세 개의 bin에 배치하는 방법을 보여줍니다.

  • x < 10이면 0
  • 10 ≤ x < 20인 경우 1
  • x ≥ 20인 경우 2
 import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
n.p. digitize (data, bins=[10, 20])

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

right= True를 지정하면 값은 다음 저장소에 배치됩니다.

  • x ≤ 10인 경우 0
  • 10 < x ≤ 20인 경우 1
  • x > 20인 경우 2

각 간격에는 Bin의 오른쪽 가장자리가 포함됩니다. 다음과 같이 보입니다.

 import numpy as np

#createdata
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
n.p. digitize (data, bins=[10, 20], right= True )

array([0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2])

예시 3: 모든 값을 4개의 Bin에 배치

다음 코드는 배열의 값을 세 개의 bin에 배치하는 방법을 보여줍니다.

  • x < 10이면 0
  • 10 ≤ x < 20인 경우 1
  • 20 ≤ x < 30인 경우 2
  • x ≥ 30인 경우 3
 import numpy as np

#createdata
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
n.p. digitize (data, bins=[10, 20, 30])

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3])

예시 4: 각 bin의 빈도 계산

numpy.digitize() 함수를 보완하는 또 다른 유용한 NumPy 함수는 각 bin의 빈도를 계산하는 numpy.bincount() 함수입니다.

다음 코드는 배열의 값을 세 그룹으로 나누고 각 그룹의 빈도를 계산하는 방법을 보여줍니다.

 import numpy as np

#createdata
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
bin_data = np. digitize (data, bins=[10, 20])

#view binned data
bin_data

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

#count frequency of each bin
n.p. bincount (bin_data)

array([4, 2, 5])

출력은 다음을 알려줍니다.

  • Bin “0”에는 4개의 데이터 값이 포함되어 있습니다.
  • Bin “1”에는 2개의 데이터 값이 포함되어 있습니다.
  • Bin “2”에는 5개의 데이터 값이 포함되어 있습니다.

여기에서 더 많은 Python 튜토리얼을 찾아보세요.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다