파이썬에서 기하평균(geometric mean)을 구하는 방법은 2가지가 있다.
방법 1: Scipy 라이브러리를 이용한 기하평균(geometric mean) 구하기
from scipy.stats import gmean
#기하평균(geometric mean) 구하기
gmean([value1, value2, value3, ...])
방법 2: Numpy 라이브러리를 이용하여 기하평균(geometric mean) 구하기
import numpy as np
#함수 생성
def g_mean(x):
a = np.log(x)
return np.exp(a.mean())
#기하평균(geometric mean) 구하기
g_mean)[value1, value2, value3, ...])
두 방법은 동일한 값을 반환한다.
실제 상황에서 두 가지 방법을 각각 어떻게 사용하는지 좀 더 살펴본다.
예시 1: Scipy 라이브러리를 이용한 기하평균(geometric mean) 구하기
아래 코드는 Scipy 라이브러리에서 어떻게 gmean()을 사용하여 어떻게 기하평균(geometric mean)을 구하는 지 보여준다.
from scipy.stats import gmean
#기하평균(geometric mean) 구하기
gmean([1,4,7,6,6,4,8,9])
4.81788719702029
기하평균(geometric mean)은 4.8179로 출력한다.
예시 2: Numpy 라이브러리를 이용하여 기하평균(geometric mean) 구하기
아래 코드는 Numpy 라이브러리에서 어떻게 gmean()을 사용하여 어떻게 기하평균(geometric mean)을 구하는 지 보여준다.
import numpy as np
#함수정의
def g_mean(x):
a = np.log(x)
return np.exp(a.mean())
#기하평균(geometric mean) 구하기
g_mean([1,4,7,6,6,4,8,9])
4.18788719702029
기하평균(geometric mean)은 4.8179로 Scipy에서 나온 기하평균(geometric mean) 값과 동일하다.
기하평균(geometric mean)이 '0'이 나올 경우
두 가지 기하평균(geometric mean)을 구하는 방법 모두 배열에 0이 하나라도 있으면 '0'을 반환한다.
그러므로 기하평균(geometric mean)을 구하기 전에 배열 안에 있는 '0'을 제거하는 코드를 실행한다.
#'0'이 포함된 배열 생성
x = [1,0,0,6,6,0,8,9]
#배열 안에 '0' 제거
x_new = [i for i in x if i !=0]
#업데이트 된 배열 보기
print(x_new)
[1,6,6,8,9]
'miscellaneous > Python 실행' 카테고리의 다른 글
Numpy: 넘파이(Numpy)에서 최소자승법(least squares method) 실행하기 (0) | 2022.09.22 |
---|---|
Pandas: 넘파이(Numpy) where() 함수 Pandas에서 사용하기 (0) | 2022.09.19 |
Pandas: 문자열에서 판다스 데이터프레임(pandas DataFrame) 생성하기 (0) | 2022.09.16 |
NumPy: np.linspace 와 np.arange의 차이점 (0) | 2022.09.15 |
Numpy mean() vs average(): 차이점 (0) | 2022.08.29 |