파이썬에서 1 차원 배열에서 항목의 발생 횟수를 계산하는 방법

Debolina Dasgupta 2023년1월30일
  1. collections 를 사용하여 파이썬에서 배열에서 발생 횟수 찾기
  2. NumPy 라이브러리를 사용하여 파이썬에서 배열에서 발생 횟수 찾기
파이썬에서 1 차원 배열에서 항목의 발생 횟수를 계산하는 방법

개발자가 직면 할 수있는 주요 문제 중 하나 인 배열로 작업하는 동안 항목의 발생 횟수를 세는 것입니다. 전자 상거래 사이트에서 10 일 동안 판매 된 품목 수가 배열되어있는 경우 100 개 이상의 품목이 판매 된 일 수를 알고 싶다고 가정하십시오.

sales = [0, 100, 100, 80, 70, 80, 20, 10, 100, 100, 80, 70, 10, 30, 40]

해결하는 가장 쉬운 방법은 배열에서 100 번 발생하는 횟수를 계산하는 것입니다.

collections 를 사용하여 파이썬에서 배열에서 발생 횟수 찾기

** 컬렉션 **은 데이터 컬렉션을 저장하는 컨테이너 역할을합니다. 컬렉션 모듈을 쉽게 가져 와서 카운터 기능을 사용할 수 있습니다.
아래 코드를 확인하십시오.

import collections

sales=[0, 100, 100, 80, 70, 80, 20, 10, 100, 100, 80, 70, 10, 30, 40]  

print(collections.Counter(sales))

결과 출력은 사전입니다. 배열의 각 항목이 발생한 횟수를 나열합니다.

그러나 판매 배열에서 100 번 발생하는 횟수를 인쇄하려면 사전에서 가져올 수 있습니다.

>>>print(collections.Counter(sales)[100])
4

collections 모듈은 십진수 및 문자열과도 작동합니다.

floatarr=[0.7, 10.0, 10.1, .8, .7, .8, .2, .1, 10.0, 
10.0, .8, .8, .7, .7, .8]
print(collections.Counter(floatarr))
#Counter({0.8: 5, 0.7: 4, 10.0: 3, 10.1: 1, 0.2: 1, 0.1: 1})

stringarr=["george","mark","george","steve","george"]
print(collections.Counter(stringarr))
#Counter({'george': 3, 'mark': 1, 'steve': 1})

NumPy 라이브러리를 사용하여 파이썬에서 배열에서 발생 횟수 찾기

그러나 NumPy 를 사용할 수도 있습니다. NumPy 는 파이썬에서 큰 배열을 처리하기 위해 정의 된 라이브러리이며 많은 수의 수학 함수를 포함합니다.

NumPy 에 정의 된 함수를 사용하여 항목 개수를 배열로 반환 할 수있는 몇 가지 방법이 있습니다.

NumPy 에서 unique 기능 사용

Count 와 함께 unique함수는 각 항목 수의 사전을 반환합니다. 또한 십진수 및 문자열과 함께 작동합니다.

import collections, numpy

aUnique = numpy.array([0, 100, 100, 80, 70, 80, 20, 10, 100, 
100, 80, 70, 10, 30, 40])

unique, counts = numpy.unique(aUnique, return_counts=True)

print(dict(zip(unique, counts)))

NumPy 에서 count_nonzero함수 사용

count_nonzero를 사용하면 검색중인 항목의 개수가 반환됩니다. 읽기 쉬운 인터페이스와 적은 코드 줄을 제공합니다.

>>>aCountZero = numpy.array([0, 100.1, 100.1, 80, 70, 80, 20, 10, 
100, 100, 80, 70, 10, 30, 40,"abc"])
>>>print(numpy.count_nonzero(aCountZero == "abc"))
1

count_nonzero 는 십진수와 문자열에서도 작동합니다.

>>>aCountZero = numpy.array([0, 100.1, 100.1, 80, 70, 80, 20, 10,

100, 100, 80, 70, 10, 30, 40])

>>>print(numpy.count_nonzero(aCountZero == 100.1))
1

NumPy 에서 bitcount 함수 사용-정수 배열의 경우에만

그러나 정수만있는 배열이 있다면 NumPy 의 bitcount 함수를 사용할 수 있습니다. 가장 좋은 점은 결과를 배열로 반환한다는 것입니다.

>>>abit = numpy.array([0, 6, 0, 10, 0, 1, 1, 0, 10, 9, 0, 1])

>>>print(numpy.bincount(abit))

[5 3 0 0 0 0 1 0 0 1 2]

배열의 숫자에 대해 결과는 항목 수를 오름차순으로 표시합니다. 예를 들어, 배열 abit의 0은 배열의 첫 번째 항목과 마지막 항목으로 표시되는 5 회와 10 회, 2 회 발생합니다.

결론적으로, 1 차원 배열에서 항목의 발생 횟수를 찾으려면 선택할 수있는 옵션이 많이 있습니다. 다음 기사에서 각 솔루션의 시간 효율성에 대해 논의하면서 우리를 따르십시오.

관련 문장 - Python Array