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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.