>  기사  >  백엔드 개발  >  NumPy 배열에서 고유 값의 빈도를 효율적으로 계산하려면 어떻게 해야 합니까?

NumPy 배열에서 고유 값의 빈도를 효율적으로 계산하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-28 07:03:30991검색

How can I efficiently count the frequency of unique values in a NumPy array?

NumPy 배열의 고유 값에 대한 빈도 수 얻기

NumPy 배열 내 각 고유 값의 빈도를 효율적으로 결정하려면 다음을 사용하는 것이 좋습니다. return_counts=True와 결합된 NumPy의 고유 함수.

<code class="python">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)</code>

이 접근 방식은 두 개의 배열을 포함하는 튜플을 생성합니다. 고유한 배열은 원래 배열에 있는 고유한 값을 보유하고, 개수는 해당 빈도를 나타냅니다.

예를 들어 주어진 입력 배열로 위 코드를 실행하면 다음이 반환됩니다.

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

값 1이 5번 나타나고, 2가 3번 나타나고, 5가 나타납니다. 한 번 나타나고 25가 한 번 나타납니다.

unique(return_counts=True)를 사용하면 아래 코드 조각에서 볼 수 있듯이 대규모 데이터 세트에 대해 SciPy의 scipy.stats.itemfreq 함수에 비해 상당한 성능 이점을 얻을 수 있습니다.

<code class="python">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</code>

위 내용은 NumPy 배열에서 고유 값의 빈도를 효율적으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.