Python NumPy

NumPy를 활용한 통계 계산 mean, median, std, var

PyExplorer 2025. 1. 30. 10:43
728x90

NumPy를 활용한 통계 계산 mean, median, std, var 등

NumPy는 데이터 분석과 과학 계산에 필수적인 Python 라이브러리로, 특히 대규모 데이터 처리와 배열 기반의 계산에서 강력한 기능을 제공합니다. 오늘은 NumPy의 주요 통계 및 수학 함수인 mean, median, std, var 등을 중심으로 간단한 예제와 함께 알아보겠습니다.


1. NumPy 통계 함수 소개

NumPy는 다양한 통계 함수를 제공합니다. 이 함수들은 데이터의 중심 경향성과 변동성을 분석하는 데 유용합니다.

주요 함수 설명

  • mean: 데이터의 평균값을 계산합니다.
  • median: 데이터의 중앙값을 계산합니다.
  • std: 데이터의 표준 편차를 계산합니다.
  • var: 데이터의 분산을 계산합니다.

각 함수는 다차원 배열에 대해 축(axis)을 지정하여 연산을 수행할 수 있어, 데이터 분석에서 매우 유용합니다.


2. 주요 함수 예제

2.1 평균값 계산: mean

평균값은 데이터의 중심 경향성을 나타내는 가장 기본적인 척도입니다.

import numpy as np

# 데이터 배열 생성
data = np.array([1, 2, 3, 4, 5])

# 평균값 계산
mean_value = np.mean(data)
print(f"Mean: {mean_value}")

출력:

Mean: 3.0

mean 함수는 다차원 배열에도 적용 가능합니다.

# 2차원 배열에서 축별 평균값 계산
data_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 전체 평균
mean_all = np.mean(data_2d)

# 행(row) 기준 평균
mean_row = np.mean(data_2d, axis=1)

# 열(column) 기준 평균
mean_col = np.mean(data_2d, axis=0)

print(f"전체 평균: {mean_all}")
print(f"행 기준 평균: {mean_row}")
print(f"열 기준 평균: {mean_col}")

출력:

전체 평균: 3.5
행 기준 평균: [2. 5.]
열 기준 평균: [2.5 3.5 4.5]

2.2 중앙값 계산: median

중앙값은 데이터를 정렬했을 때 중앙에 위치한 값으로, 이상치(outlier)에 강건한 척도입니다.

# 중앙값 계산
data = np.array([1, 2, 3, 4, 5])
median_value = np.median(data)
print(f"Median: {median_value}")

출력:

Median: 3.0

짝수 개의 데이터에 대한 중앙값은 중앙에 위치한 두 값의 평균으로 계산됩니다.

# 짝수 개 데이터의 중앙값 계산
data_even = np.array([1, 2, 3, 4])
median_value_even = np.median(data_even)
print(f"Median (even): {median_value_even}")

출력:

Median (even): 2.5

2.3 표준 편차 계산: std

표준 편차는 데이터 값들이 평균에서 얼마나 흩어져 있는지를 나타냅니다.

# 표준 편차 계산
data = np.array([1, 2, 3, 4, 5])
std_value = np.std(data)
print(f"Standard Deviation: {std_value}")

출력:

Standard Deviation: 1.4142135623730951

2.4 분산 계산: var

분산은 표준 편차의 제곱으로, 데이터의 흩어진 정도를 측정합니다.

# 분산 계산
data = np.array([1, 2, 3, 4, 5])
var_value = np.var(data)
print(f"Variance: {var_value}")

출력:

Variance: 2.0

3. 실전 예제: 다차원 데이터 분석

다차원 배열에서 통계 계산은 데이터를 특정 축(axis)에 따라 요약하는 데 유용합니다.

# 3x3 행렬 생성
data_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 행 기준 통계 계산
mean_row = np.mean(data_2d, axis=1)
std_row = np.std(data_2d, axis=1)

# 열 기준 통계 계산
mean_col = np.mean(data_2d, axis=0)
std_col = np.std(data_2d, axis=0)

print(f"행 기준 평균: {mean_row}")
print(f"행 기준 표준 편차: {std_row}")
print(f"열 기준 평균: {mean_col}")
print(f"열 기준 표준 편차: {std_col}")

출력:

행 기준 평균: [2. 5. 8.]
행 기준 표준 편차: [0.81649658 0.81649658 0.81649658]
열 기준 평균: [4. 5. 6.]
열 기준 표준 편차: [2.44948974 2.44948974 2.44948974]

4. 요약

  • NumPy의 통계 함수는 데이터 분석에서 필수적입니다.
  • mean, median, std, var 등은 데이터의 중심 경향성과 변동성을 분석하는 데 유용합니다.
  • 축(axis)을 활용하면 다차원 데이터에서도 효율적으로 통계 연산을 수행할 수 있습니다.

실제 데이터 분석에서 이 함수들을 적절히 활용하면 데이터의 특성을 파악하고, 효과적으로 문제를 해결할 수 있습니다. NumPy의 강력한 통계 도구를 통해 데이터 분석에 한 단계 더 나아가 보세요!


참고 자료

728x90