Python 은 numpy 를 사용 하여 정상 분포 난수 의 벡터 나 행렬 작업 예제 를 만 듭 니 다.

본 논문 의 사례 는 Python 이 numpy 를 사용 하여 정상 분포 랜 덤 수의 벡터 나 행렬 작업 을 하 는 것 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
쉽게 말 하면 정상 분포(Normal distribution)는 고 스 분포(Gaussian distribution)라 고도 부 르 는데 수학,물리 와 공정 등 분야 에서 매우 중요 한 확률 분포 로 통계학 의 여러 측면 에서 중대 한 영향력 을 가진다.일반적인 정상 분 포 는 표준 정상 분 포 를 통 해 수학 기대 벡터 와 협 방 차 행렬 에 맞 춰 얻 을 수 있다.다음 코드 는 1 차원 과 2 차원 정상 분 포 를 만족 시 키 는 샘플 을 얻 을 수 있다.
예제 1(1 차원 정상 분포):

# coding=utf-8
'''
  :   
  :  
'''
import numpy as np
from numpy.linalg import cholesky
import matplotlib.pyplot as plt
sampleNo = 1000;
#       
#           
mu = 3
sigma = 0.1
np.random.seed(0)
s = np.random.normal(mu, sigma, sampleNo )
plt.subplot(141)
plt.hist(s, 30, normed=True)
np.random.seed(0)
s = sigma * np.random.randn(sampleNo ) + mu
plt.subplot(142)
plt.hist(s, 30, normed=True)
np.random.seed(0)
s = sigma * np.random.standard_normal(sampleNo ) + mu
plt.subplot(143)
plt.hist(s, 30, normed=True)
#       
mu = np.array([[1, 5]])
Sigma = np.array([[1, 0.5], [1.5, 3]])
R = cholesky(Sigma)
s = np.dot(np.random.randn(sampleNo, 2), R) + mu
plt.subplot(144)
#          ,      
plt.plot(s[:,0],s[:,1],'+')
plt.show()

실행 결과:

예제 2(정상 분포):

#-*- coding:utf-8 -*-
# Python      
#             
import numpy as np
import matplotlib.pyplot as plt
import math
u = 0  #   μ
u01 = -2
sig = math.sqrt(0.2) #    δ
x = np.linspace(u - 3*sig, u + 3*sig, 50)
y_sig = np.exp(-(x - u) ** 2 /(2* sig **2))/(math.sqrt(2*math.pi)*sig)
print x
print "="*20
print y_sig
plt.plot(x, y_sig, "r-", linewidth=2)
plt.grid(True)
plt.show()

실행 결과:

Python 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기