python에서는 numpy의 var() 함수와 std() 함수를 통해 분산과 표준편차를 각각 구할 수 있다.
[In]
# 분산과 표준편차
import numpy as np
# 분산을 취하는 데이터
x_1 = np.array([55, 45, 60, 40])
x_2 = np.array([51, 49, 52, 48])
## 계산 1 (직접 구하기) ##
# 평균 구하기
x_1_avg = x_1.sum() / len(x_1)
x_2_avg = x_2.sum() / len(x_2)
# 편차 구하기
x_1_dev = x_1 - x_1_avg
x_2_dev = x_2 - x_2_avg
# 분산 구하기
x_1_var = (x_1_dev ** 2).sum() / len(x_1_dev)
x_2_var = (x_2_dev ** 2).sum() / len(x_2_dev)
# 표준편차 구하기
x_1_std = np.sqrt(x_1_var)
x_2_std = np.sqrt(x_2_var)
print(" 방법 1 ".center(30, '-'))
print()
print(" 평균 ".center(20, '*'))
print('x_1_avg :', x_1_avg)
print('x_2_avg :', x_2_avg)
print()
print(" 편차 ".center(20, '*'))
print('x_1_dev :', x_1_dev)
print('x_2_dev :', x_2_dev)
print()
print(" 분산 ".center(20, '*'))
print('x_1_var :', x_1_var)
print('x_2_var :', x_2_var)
print()
print(" 표준편차 ".center(20, '*'))
print("x_1_std :", x_1_std)
print("x_2_std :", x_2_std)
print()
print("".center(32, '-'))
print()
print()
print()
## 계산 2 (numpy의 var() 함수 이용) ##
# 분산
x_1_var = np.var(x_1)
x_2_var = np.var(x_2)
# 표준편차
x_1_std = np.std(x_1)
x_2_std = np.std(x_2)
print(" 방법 2 ".center(30, '-'))
print()
print(" 분산 ".center(20, '*'))
print('x_1_var :', x_1_var)
print('x_2_var :', x_2_var)
print()
print(" 표준편차 ".center(20, '*'))
print("x_1_std :", x_1_std)
print("x_2_std :", x_2_std)
print("".center(32, '-'))
print()
[Out]
------------ 방법 1 ------------
******** 평균 ********
x_1_avg : 50.0
x_2_avg : 50.0
******** 편차 ********
x_1_dev : [ 5. -5. 10. -10.]
x_2_dev : [ 1. -1. 2. -2.]
******** 분산 ********
x_1_var : 62.5
x_2_var : 2.5
******* 표준편차 *******
x_1_std : 7.905694150420948
x_2_std : 1.5811388300841898
--------------------------------
------------ 방법 2 ------------
******** 분산 ********
x_1_var : 62.5
x_2_var : 2.5
******* 표준편차 *******
x_1_std : 7.905694150420948
x_2_std : 1.5811388300841898
--------------------------------