일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 컴퓨터비전
- 클라우드컴퓨팅
- 자료구조
- 소프트웨어공학
- 소프트웨어
- Yes
- 버전관리
- 2
- 딥러닝
- 사이버보안
- 빅데이터
- 데이터과학
- 데이터베이스
- 컴퓨터과학
- 보안
- 자바스크립트
- 웹개발
- 코딩
- 프로그래밍언어
- 파이썬
- 컴퓨터공학
- 알고리즘
- 인공지능
- 프로그래밍
- 네트워크보안
- I'm Sorry
- 데이터구조
- 데이터분석
- 네트워크
- 머신러닝
- Today
- Total
스택큐힙리스트
NumPy 배열의 고유 값에 대한 빈도 수 계산 본문
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는 배열의 요소 중 고유한 값의 빈도수를 간단하게 계산하는 완벽한 라이브러리입니다. 이를 이용하면 대용량 데이터도 쉽게 처리할 수 있습니다.