HOWTO · Python

Python을 사용하여 목록 요소의 빈도 가져오기

이 짧은 기사에서는 Python을 사용하여 목록에서 요소의 빈도를 얻는 다양한 방법을 설명합니다.

이 페이지의 내용

이 짧은 기사에서는 Python을 사용하여 모든 목록 요소의 총 발생 수를 계산하는 가능한 방법을 설명합니다. 우리는 또한 이렇게 하는 것의 장단점을 볼 것입니다.

Python은 개발자가 구현이 아닌 핵심 문제에 집중할 수 있게 해주는 매우 다재다능한 언어입니다. C 또는 C++와 같은 다른 최신 언어보다 Python으로 코딩하는 것이 비교적 쉽습니다.

항목 빈도 문제는 Python을 통해 여러 가지 방법으로 해결할 수 있습니다. 먼저 공식적으로 문제를 소개하겠습니다.

목록 A= [2, 4, 7, 8, 12, 4, 6, 7, 8, 91, 8]과 같은 순서가 없는 숫자 목록을 고려하고 목록의 각 숫자의 빈도를 얻고 싶습니다. 목록에 숫자가 몇 번 나타나는지 확인하십시오.

답은 다음과 같아야 합니다. {'2': 1, '4': 2, '6': 1, '7': 2, '8': 3, '12': 1, '91': 1 }. 숫자 21번 존재하고 42번 존재하며 61의 빈도를 가짐을 의미합니다.

collections 모듈을 사용하여 Python을 사용하여 목록 요소의 빈도 가져오기

이 방법에서는 컬렉션 모듈을 사용합니다. 이 모듈의 카운터 함수는 목록에 숫자가 몇 번 나타나는지 추적하는 컨테이너를 반환합니다.

아래 코드를 참조하십시오.

import collections

a = [2, 4, 7, 8, 12, 4, 6, 7, 8, 91, 8]
counter = collections.Counter(a)
print(counter)
print(type(counter))

위의 코드는 다음 출력을 생성합니다.

Counter({8: 3, 4: 2, 7: 2, 2: 1, 12: 1, 6: 1, 91: 1})
<class 'collections.Counter'>

다음 코드를 사용하여 컨테이너에서 고유 번호를 가져올 수 있습니다.

counter.keys()

위의 코드 줄은 다음과 같은 결과를 제공합니다.

dict_keys([2, 4, 7, 8, 12, 6, 91])

마찬가지로 각 고유 번호의 개수를 얻으려면 다음 코드를 실행할 수 있습니다.

counter.values()

출력은 다음과 같습니다.

dict_values([1, 2, 2, 3, 1, 1, 1])

Python을 사용하여 목록 요소의 빈도를 가져오는 수동 코드

방법 1에서는 카운트에 collections 모듈을 사용했습니다. 하지만 이 방법에서는 원하는 결과를 얻기 위해 수동 코딩을 해야 합니다.

이 접근법의 코드는 다음과 같습니다.

List_numbers = [2, 4, 7, 8, 12, 4, 6, 7, 8, 91, 8]
dict_count = {}
for i, number in enumerate(List_numbers):
    if number in dict_count.keys():
        dict_count[number] = dict_count[number] + 1
    else:
        dict_count[number] = 1
print(dict_count)

이것은 사전 유형을 사용하여 각 숫자에 대한 개수를 저장하는 간단한 코드입니다. 사전의 키는 항상 고유하게 유지되며 이는 복제할 수 없음을 의미합니다.

위의 코드는 다음 출력을 생성합니다.

{2: 1, 4: 2, 7: 2, 8: 3, 12: 1, 6: 1, 91: 1}

이 코드의 복잡도는 O(n)입니다.

NumPy를 사용하여 Python을 사용하여 목록 요소의 빈도 가져오기

numpy 모듈에서 unique() 함수는 목록의 각 요소의 빈도를 찾을 수 있는 유연성을 제공합니다.

import numpy as np

List_numbers = [2, 4, 7, 8, 12, 4, 6, 7, 8, 91, 8]
print(np.unique(List_numbers, return_counts=True))

np.unique() 함수는 배열의 고유한 요소를 찾는 데 사용됩니다. 배열의 정렬된 고유 요소를 반환합니다.

선택적 매개변수 return_counts를 사용하면 각 요소 수를 얻을 수 있습니다.

앞의 코드는 다음을 출력합니다.

(array([ 2,  4,  6,  7,  8, 12, 91]), array([1, 2, 1, 2, 3, 1, 1]))

카운트를 얻으려면 다음을 사용할 수 있습니다.

np.unique(List_numbers, return_counts=True)[1]

이 기사에서는 Python에서 목록 요소의 수를 얻는 다양한 방법을 제안했습니다. 리소스 및 시간 복잡성에 따라 논의된 방법 중에서 선택할 수 있습니다.