0Pricing
Pandas & NumPy Academy · 강의

집계 함수

전체 배열 또는 특정 축을 따라 합, 평균, 최솟값, 최댓값, 표준 편차를 계산합니다.

집계 함수은(는) 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())     # 9

sum()과 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.0

np.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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 범용 함수(ufunc)
  2. 집계 함수
  3. 브로드캐스팅 규칙
  4. 불리언 마스킹과 고급 인덱싱
← Pandas & NumPy Academy(으)로 돌아가기