2019-10-21

matplotlib.mlab.normpdf --> scipy.stats.norm

0. matplotlib의 버전이 3.1.1이 되어가는 무렵... 해당 패키지를 이용해

histogram을 작성하기 위해 example들을 찾아보던 중이었다.

그러다 발견한 이 부분이 내 발목을 잡았다.

(코드)

위의 코드는 아래의 그래프를 그리는 코드이다.

(Histogram)

문제는 바로 이 부분.

# add a 'best fit' liney = mlab.normpdf(bins, mu, sigma)

뭐지 이게...



1. 구글에서 검색 * n회

일단 matplotlib.mlab은 매트랩(MATLAB)의 명령어와 호환되게끔

(같은 이름으로) 파이썬 함수를 작성해놓은 것들이다.

그래서 매트랩에 익숙한 사람들은 쉽게 사용할 수 있을 것이다.

많은 파이썬 함수들은 numpy와 scipy 라이브러리에서 찾을 수 있고

matplotlib에 남은 것은 스펙트럼 계산을 위한 것들 뿐이다.



그래서 matplotlib.mlab.normpdf같은 것들은 matplotlib 2까지는 있었지만

3에서는 사라진 듯하다.

정확하게는 사라질 예정이고, 아직 기능을 쓸 수는 있는 모양이다.

(대충 조만간 해당 기능이 scipy.stats.norm.pdf로 대체된다는 내용)

그래서 matplotlib 2.1.0까진 살아있었던 것이 흔적으로 남아있다.



2. 해당 함수는 x에 대한 정규 pdf를 리턴합니다.

Return the normal pdf evaluated at x; args provides mu, sigma.

pdf??

()

논문 볼 때마다 보이는 그 PDF?

가 아니라 다른 의미를 찾아보고 싶을 땐 항상 위키피디아를 먼저 뒤져본다.

또한 DeprecatedWarning을 던지던 위의 경고문에서도

scipy.stats.norm.pdf에서 관련 내용을 찾을 수 있으니

어서 달려가 읽어보았다.

matplotlib에서 PDF란 probability density function의 줄임말이다.



3. 그래서 이걸 왜 썼지.

아마도 best fit을 그린다는 의미가 '추세선'을 의미하는게 아니라

해당 랜덤 함수에 의해 생성된 수의 배열이 확률밀도함수와 동일하게 나와야

가장 이상적이기 때문일 것이다.

즉, histogram에서 데이터들의 추세선을 그린 것이 아니란 말씀.

댓글 없음:

댓글 쓰기