집계 함수
전체 배열 또는 특정 축을 따라 합, 평균, 최솟값, 최댓값, 표준 편차를 계산합니다.
집계 함수은(는) CoddyKit의 무료 Pandas & NumPy Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Pandas & NumPy Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Pandas & NumPy Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
집계란 무엇인가요?
집계는 배열을 합계나 평균처럼 몇 가지 요약값으로 줄이는 작업입니다. NumPy의 내장 함수는 반복문 없이 빠른 C 코드로 이 작업을 수행합니다.
import numpy as np
a = np.array([3, 7, 2, 9, 1, 6])
print('sum:', a.sum()) # 28
print('mean:', a.mean()) # 4.666...
print('max:', a.max()) # 9sum()과 cumsum()
모든 요소의 합계에는 a.sum()을 사용하고, 누적 합계에는 np.cumsum을 사용합니다. 누적 합계에서는 각 위치에 해당 위치까지의 모든 값의 합이 저장됩니다.
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(a.sum()) # 15
print(np.cumsum(a)) # [ 1 3 6 10 15]mean()과 std()
a.mean()은 평균을 반환하고 a.std()는 표준 편차를 반환합니다. 기본적으로 std는 N으로 나눕니다. 데이터가 표본이라면 ddof=1을 전달하세요.
import numpy as np
a = np.array([2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0])
print('mean:', a.mean()) # 5.0
print('std (pop):', a.std()) # 2.0
print('std (sample):', a.std(ddof=1)) # 2.138...argmin/argmax와 함께 사용하는 min()과 max()
a.min()과 a.max()는 가장 작은 값과 가장 큰 값을 반환합니다. 값 대신 위치가 필요하신가요? argmin과 argmax는 각각의 인덱스를 반환합니다.
import numpy as np
a = np.array([3, 7, 2, 9, 1, 6])
print('min:', a.min(), 'at index', a.argmin()) # 1 at 4
print('max:', a.max(), 'at index', a.argmax()) # 9 at 3축을 따라 집계하기
axis 인수는 어떤 차원을 축소할지 지정합니다. axis=0이면 열마다 하나의 값이 반환되고, axis=1이면 행마다 하나의 값이 반환됩니다. 생략하면 배열 전체를 축소합니다.
import numpy as np
m = np.array([[1, 2, 3],
[4, 5, 6]])
print(m.sum(axis=0)) # [5 7 9] -- column sums
print(m.sum(axis=1)) # [ 6 15] -- row sums
print(m.mean(axis=0)) # [2.5 3.5 4.5]형상 보존을 위한 keepdims=True
축을 따라 집계하면 해당 차원이 사라집니다. keepdims=True를 추가하면 해당 차원을 크기 1로 유지할 수 있습니다. 나중에 결과를 브로드캐스트해야 할 때 꼭 필요합니다.
import numpy as np
m = np.array([[1, 2, 3],
[4, 5, 6]])
row_sums = m.sum(axis=1, keepdims=True)
print(row_sums.shape) # (2, 1)
normed = m / row_sums
print(normed.round(3))
# [[0.167 0.333 0.5 ]
# [0.267 0.333 0.4 ]]NaN을 안전하게 처리하는 집계
NaN이 하나라도 있으면 일반적인 합계나 평균은 NaN을 반환합니다. NaN 안전 버전인 np.nansum, np.nanmean 등은 누락된 값을 건너뜁니다.
import numpy as np
a = np.array([1.0, np.nan, 3.0, np.nan, 5.0])
print(a.sum()) # nan
print(np.nansum(a)) # 9.0
print(np.nanmean(a)) # 3.0
print(np.nanmax(a)) # 5.0np.median과 np.percentile
np.median은 중앙값을 반환하며 평균보다 이상치의 영향을 훨씬 덜 받습니다. np.percentile은 지정한 비율의 데이터가 그 값보다 작거나 같은 경계값을 찾습니다.
import numpy as np
a = np.array([1, 2, 3, 4, 100]) # outlier at 100
print('mean:', a.mean()) # 22.0 -- skewed
print('median:', np.median(a)) # 3.0 -- robust
print(np.percentile(a, [25, 50, 75])) # [ 2. 3. 4.]np.any()와 np.all()
np.any는 조건을 만족하는 요소가 하나라도 있으면 True를 반환하고, np.all은 모든 요소가 조건을 만족할 때만 True를 반환합니다. 두 함수 모두 행별 또는 열별로 검사할 수 있습니다.
import numpy as np
a = np.array([1, -2, 3, -4])
print(np.any(a < 0)) # True (some are negative)
print(np.all(a > 0)) # False (not all are positive)
# Row-wise check on 2D
m = np.array([[1, 2], [-1, 3]])
print(np.all(m > 0, axis=1)) # [ True False]np.count_nonzero()
np.count_nonzero는 0이 아닌 요소의 개수를 셉니다. True인 요소의 개수를 셀 때도 사용할 수 있습니다. a > 5처럼 조건을 전달하면 조건을 만족하는 요소를 간편하게 셀 수 있습니다.
import numpy as np
a = np.array([3, 0, 7, 0, 2, 0])
print(np.count_nonzero(a)) # 3
print(np.count_nonzero(a > 2)) # 2 (elements 3 and 7)
m = np.array([[0, 1], [1, 1]])
print(np.count_nonzero(m, axis=0)) # [1 2]고유한 값을 위한 np.unique()
np.unique는 정렬된 고유값을 반환합니다. return_counts=True를 추가하면 각 값이 몇 번 나타나는지도 함께 반환하므로, 즉시 빈도표를 만들 수 있습니다.
import numpy as np
a = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3])
uniq, counts = np.unique(a, return_counts=True)
print(uniq) # [1 2 3 4 5 6 9]
print(counts) # [2 1 2 1 2 1 1]빠른 확인
이 수업에서 배운 NumPy 집계 함수에 대한 이해도를 확인해 보세요.
수업 요약
잘하셨습니다! NumPy 집계는 빠른 C 코드로 배열을 요약하고, axis 인수는 축소할 대상을 지정하며, NaN 안전 버전은 누락된 값을 건너뜁니다. 다음 주제는 브로드캐스팅입니다.
자주 묻는 질문
“집계 함수” 강의는 무료인가요?
네 — “집계 함수” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Pandas & NumPy Academy 강의 전체를 잠금 해제할 수 있습니다. Pandas & NumPy Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“집계 함수”에서 뭘 배우나요?
전체 배열 또는 특정 축을 따라 합, 평균, 최솟값, 최댓값, 표준 편차를 계산합니다. 브라우저에서 직접 실행하는 실습 코드로 Pandas & NumPy Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Pandas & NumPy Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Pandas & NumPy Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“집계 함수” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Pandas & NumPy Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Pandas & NumPy Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.