스택큐힙리스트

NumPy 배열의 고유 값에 대한 빈도 수 계산 본문

카테고리 없음

NumPy 배열의 고유 값에 대한 빈도 수 계산

스택큐힙리스트 2023. 4. 19. 05:06
반응형

NumPy 배열에서 각 고유한 값의 빈도를 효율적으로 얻는 방법은 무엇인가요?

>>> x = np.array([1,1,1,2,2,2,5,25,1,1])

>>> freq_count(x)

[(1, 5), (2, 3), (5, 1), (25, 1)]

답변 1

넘파이 1.9+에서 # $ @! ^! ^ & $ &와 함께 # $ @! &&&! $ &를 사용하십시오.

import numpy as np

x = np.array([1,1,1,2,2,2,5,25,1,1])

unique, counts = np.unique(x, return_counts=True)

>>> print(np.asarray((unique, counts)).T)

[[ 1 5]

[ 2 3]

[ 5 1]

[25 1]]

scipy.stats.itemfreq와 비교하여:

In [4]: x = np.random.random_integers(0,100,1e6)

In [5]: %timeit unique, counts = np.unique(x, return_counts=True)

10 loops, best of 3: 31.5 ms per loop

In [6]: %timeit scipy.stats.itemfreq(x)

10 loops, best of 3: 170 ms per loop

답변 2

NumPy는 Python에서 수치 계산을 위한 핵심 라이브러리 중 하나입니다. NumPy 배열은 매우 강력하며, 대용량 데이터를 효율적으로 처리할 수 있습니다. 그리고 NumPy는 배열 요소의 빈도수를 계산하는 것을 아주 간단하게 할 수 있습니다.

NumPy에서 고유한 값의 빈도수를 계산하는 데에는 numpy.unique() 함수를 사용하면 됩니다. 이 함수는 고유한 값과 각 값이 나타나는 빈도수를 반환합니다. 이 함수를 사용하면 배열 속에서 어떤 값이 얼마나 많이 나타나는지 쉽게 파악할 수 있습니다.

아래 예시 코드를 참고하세요.

```

import numpy as np

arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])

unique_values, counts = np.unique(arr, return_counts=True)

print('고유한 값:', unique_values)

print('빈도수:', counts)

```

위 코드는 NumPy 배열의 요소를 가지고 있는 1차원 배열 변수를 만듭니다. 그리고 numpy.unique() 함수를 이용해 배열에 있는 요소 중 고유한 값과 각 값의 빈도수를 계산합니다. 마지막으로, 결과를 출력합니다.

실행 결과는 다음과 같습니다.

```

고유한 값: [1 2 3 4]

빈도수: [1 2 3 4]

```

위 결과에서 확인할 수 있듯이, 1은 1번, 2는 2번, 3은 3번, 4는 4번 나타납니다.

여기서 한 가지 더 알아봐야 할 것은, numpy.unique() 함수에서 return_counts 옵션을 설정해주어야 하는 것입니다. 이 값이 True일 경우, 함수는 빈도수를 반환합니다. False일 경우, 함수는 고유한 값만 반환합니다.

결과적으로, NumPy는 배열의 요소 중 고유한 값의 빈도수를 간단하게 계산하는 완벽한 라이브러리입니다. 이를 이용하면 대용량 데이터도 쉽게 처리할 수 있습니다.

반응형
Comments