一、stats.norm.pdf(a)
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
# 設(shè)定均值和標(biāo)準(zhǔn)差
mu = 0
sigma = 1
# 生成從-5到5的等差數(shù)列作為x軸值
x = np.linspace(-5, 5, num=1000)
# 接收x軸和均值、標(biāo)準(zhǔn)差,輸出y軸值
y = norm.pdf(x, mu, sigma)
# 繪制概率密度函數(shù)曲線
plt.plot(x, y)
# 添加x軸和y軸描述
plt.xlabel('x')
plt.ylabel('pdf(x)')
# 添加標(biāo)題
plt.title('Normal PDF')
# 顯示圖像
plt.show()
stats.norm.pdf(a)是scipy庫(kù)中給定一組參數(shù)的情況下,計(jì)算正態(tài)分布函數(shù)的概率密度函數(shù)的函數(shù)。其中,a表示x軸的取值范圍,也可以通過(guò)numpy生成等差數(shù)列來(lái)實(shí)現(xiàn)。
在以上代碼中,我們?cè)O(shè)定均值為0、標(biāo)準(zhǔn)差為1,將x軸的取值范圍設(shè)定在-5到5之間,生成num個(gè)等差數(shù)列作為x軸的取值。同時(shí),將x軸的取值、均值、標(biāo)準(zhǔn)差作為參數(shù)傳入stats.norm.pdf函數(shù)中,得到模擬數(shù)據(jù)的y軸值,繪制出正常分布概率密度函數(shù)的曲線。通過(guò)plt.show()方法,將圖像顯示出來(lái)。
二、stats.norm.pdf python
import numpy as np
from scipy.stats import norm
# 設(shè)定均值和標(biāo)準(zhǔn)差
mu = 0
sigma = 1
# 生成從-5到5的等差數(shù)列作為x軸值
x = np.linspace(-5, 5, num=1000)
# 接收x軸和均值、標(biāo)準(zhǔn)差,輸出y軸值
y = norm.pdf(x, mu, sigma)
# 將x軸和y軸的值打印出來(lái)
print("x軸的取值:\n", x)
print("y軸的取值:\n", y)
stats.norm.pdf也可以用來(lái)計(jì)算某個(gè)數(shù)值點(diǎn)上正態(tài)分布的概率密度函數(shù)值。通過(guò)將此方法應(yīng)用于給定的x軸點(diǎn),我們可以計(jì)算出每個(gè)點(diǎn)的y值,從而得到正態(tài)分布概率密度函數(shù)的曲線。
以上代碼中,我們同樣設(shè)定均值為0、標(biāo)準(zhǔn)差為1,再生成等差數(shù)列作為x軸的取值范圍。將x軸每個(gè)點(diǎn)的取值、均值、標(biāo)準(zhǔn)差作為參數(shù),得到模擬數(shù)據(jù)的y軸值。同時(shí),我們使用print()函數(shù)將模擬數(shù)據(jù)打印出來(lái)。
三、stats.norm.pdf的參數(shù)選取
在stats.norm.pdf中,除了x軸的取值范圍、均值、標(biāo)準(zhǔn)差之外,還有許多其他參數(shù)可以選擇。下面列舉常見(jiàn)的參數(shù):
1. loc:均值參數(shù),即正態(tài)分布的中心
2. scale:標(biāo)準(zhǔn)差參數(shù)
3. size:隨機(jī)變量數(shù)量,可以用于模擬樣本分布
4. random_state:確定隨機(jī)數(shù)生成器的種子
以下是一個(gè)綜合使用以上參數(shù)的示例代碼:
import numpy as np
from scipy.stats import norm
# 設(shè)定均值和標(biāo)準(zhǔn)差
mu = 0
sigma = 1
# 生成100個(gè)符合正態(tài)分布的隨機(jī)數(shù)
samples = norm.rvs(loc=mu, scale=sigma, size=100, random_state=42)
# 計(jì)算概率密度函數(shù)曲線
x = np.linspace(-5, 5, num=1000)
pdf = norm.pdf(x)
# 繪制概率密度函數(shù)曲線和樣本分布圖
import seaborn as sns
sns.distplot(samples, bins=10, kde=False, norm_hist=True)
plt.plot(x, pdf)
# 添加x軸和y軸描述
plt.xlabel('x')
plt.ylabel('pdf(x)')
# 添加標(biāo)題
plt.title('Normal PDF and Samples')
# 顯示圖像
plt.show()
以上代碼中,首先使用norm.rvs()方法生成100個(gè)符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù),并將均值、標(biāo)準(zhǔn)差、隨機(jī)數(shù)數(shù)量、隨機(jī)數(shù)種子作為參數(shù)傳入方法中。然后,使用np.linspace()方法生成x軸的等差數(shù)列,將這些數(shù)傳入stats.norm.pdf()方法中,得到模擬數(shù)據(jù)的y軸值。
接下來(lái),我們使用seaborn庫(kù)的distplot()方法來(lái)繪制樣本的實(shí)際分布情況,同時(shí)使用plot()方法將正態(tài)分布概率密度函數(shù)的曲線繪制在上面。注意,在繪制樣本分布圖時(shí),我們將kde參數(shù)設(shè)為False,norm_hist參數(shù)設(shè)為T(mén)rue,這是為了將樣本分布顯示為直方圖,并將概率密度標(biāo)準(zhǔn)化為1。
最后,添加軸標(biāo)簽和標(biāo)題,使用plt.show()方法顯示圖像。