国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 生成正態(tài)分布數(shù)據(jù),并繪圖和解析

瀏覽:91日期:2022-07-01 15:22:04
1、生成正態(tài)分布數(shù)據(jù)并繪制概率分布圖

import pandas as pdimport numpy as npimport matplotlib.pyplot as plt# 根據(jù)均值、標(biāo)準(zhǔn)差,求指定范圍的正態(tài)分布概率值def normfun(x, mu, sigma): pdf = np.exp(-((x - mu)**2)/(2*sigma**2)) / (sigma * np.sqrt(2*np.pi)) return pdf# result = np.random.randint(-65, 80, size=100) # 最小值,最大值,數(shù)量result = np.random.normal(15, 44, 100) # 均值為0.5,方差為1print(result)x = np.arange(min(result), max(result), 0.1)# 設(shè)定 y 軸,載入剛才的正態(tài)分布函數(shù)print(result.mean(), result.std())y = normfun(x, result.mean(), result.std())plt.plot(x, y) # 這里畫出理論的正態(tài)分布概率曲線# 這里畫出實(shí)際的參數(shù)概率與取值關(guān)系plt.hist(result, bins=10, rwidth=0.8, density=True) # bins個(gè)柱狀圖,寬度是rwidth(0~1),=1沒(méi)有縫隙plt.title(’distribution’)plt.xlabel(’temperature’)plt.ylabel(’probability’)# 輸出plt.show() # 最后圖片的概率和不為1是因?yàn)檎龖B(tài)分布是從負(fù)無(wú)窮到正無(wú)窮,這里指截取了數(shù)據(jù)最小值到最大值的分布

python 生成正態(tài)分布數(shù)據(jù),并繪圖和解析

根據(jù)范圍生成正態(tài)分布:

result = np.random.randint(-65, 80, size=100) # 最小值,最大值,數(shù)量

根據(jù)均值、方差生成正態(tài)分布:

result = np.random.normal(15, 44, 100) # 均值為0.5,方差為12、判斷一個(gè)序列是否符合正態(tài)分布

import numpy as npfrom scipy import statspts = 1000np.random.seed(28041990)a = np.random.normal(0, 1, size=pts) # 生成1個(gè)正態(tài)分布,均值為0,標(biāo)準(zhǔn)差為1,100個(gè)點(diǎn)b = np.random.normal(2, 1, size=pts) # 生成1個(gè)正態(tài)分布,均值為2,標(biāo)準(zhǔn)差為1, 100個(gè)點(diǎn)x = np.concatenate((a, b)) # 把兩個(gè)正態(tài)分布連接起來(lái),所以理論上變成了非正態(tài)分布序列k2, p = stats.normaltest(x)alpha = 1e-3print('p = {:g}'.format(p))# 原假設(shè):x是一個(gè)正態(tài)分布if p < alpha: # null hypothesis: x comes from a normal distribution print('The null hypothesis can be rejected') # 原假設(shè)可被拒絕,即不是正態(tài)分布else: print('The null hypothesis cannot be rejected') # 原假設(shè)不可被拒絕,即使正態(tài)分布3、求置信區(qū)間、異常值

import numpy as npimport matplotlib.pyplot as pltfrom scipy import statsimport pandas as pd# 求列表數(shù)據(jù)的異常點(diǎn)def get_outer_data(data_list): df = pd.DataFrame(data_list, columns=[’value’]) df = df.iloc[:, 0] # 計(jì)算下四分位數(shù)和上四分位 Q1 = df.quantile(q=0.25) Q3 = df.quantile(q=0.75) # 基于1.5倍的四分位差計(jì)算上下須對(duì)應(yīng)的值 low_whisker = Q1 - 1.5 * (Q3 - Q1) up_whisker = Q3 + 1.5 * (Q3 - Q1) # 尋找異常點(diǎn) kk = df[(df > up_whisker) | (df < low_whisker)] data1 = pd.DataFrame({’id’: kk.index, ’異常值’: kk}) return data1N = 100result = np.random.normal(0, 1, N)# result = np.random.randint(-65, 80, size=N) # 最小值,最大值,數(shù)量mean, std = result.mean(), result.std(ddof=1) # 求均值和標(biāo)準(zhǔn)差# 計(jì)算置信區(qū)間,這里的0.9是置信水平conf_intveral = stats.norm.interval(0.9, loc=mean, scale=std) # 90%概率print(’置信區(qū)間:’, conf_intveral)x = np.arange(0, len(result), 1)# 求異常值outer = get_outer_data(result)print(outer, type(outer))x1 = outer.iloc[:, 0]y1 = outer.iloc[:, 1]plt.scatter(x1, y1, marker=’x’, color=’r’) # 所有離散點(diǎn)plt.scatter(x, result, marker=’.’, color=’g’) # 異常點(diǎn)plt.plot([0, len(result)], [conf_intveral[0], conf_intveral[0]])plt.plot([0, len(result)], [conf_intveral[1], conf_intveral[1]])plt.show()

python 生成正態(tài)分布數(shù)據(jù),并繪圖和解析

4、采樣點(diǎn)離散圖和概率圖

import numpy as npimport matplotlib.pyplot as pltfrom scipy import statsimport pandas as pdimport timeprint(time.strftime(’%Y-%m-%D %H:%M:%S’))# 根據(jù)均值、標(biāo)準(zhǔn)差,求指定范圍的正態(tài)分布概率值def _normfun(x, mu, sigma): pdf = np.exp(-((x - mu)**2)/(2*sigma**2)) / (sigma * np.sqrt(2*np.pi)) return pdf# 求列表數(shù)據(jù)的異常點(diǎn)def get_outer_data(data_list): df = pd.DataFrame(data_list, columns=[’value’]) df = df.iloc[:, 0] # 計(jì)算下四分位數(shù)和上四分位 Q1 = df.quantile(q=0.25) Q3 = df.quantile(q=0.75) # 基于1.5倍的四分位差計(jì)算上下須對(duì)應(yīng)的值 low_whisker = Q1 - 1.5 * (Q3 - Q1) up_whisker = Q3 + 1.5 * (Q3 - Q1) # 尋找異常點(diǎn) kk = df[(df > up_whisker) | (df < low_whisker)] data1 = pd.DataFrame({’id’: kk.index, ’異常值’: kk}) return data1N = 100result = np.random.normal(0, 1, N)# result = np.random.randint(-65, 80, size=N) # 最小值,最大值,數(shù)量# result = [100]*100 # 取值全相同# result = np.array(result)mean, std = result.mean(), result.std(ddof=1) # 求均值和標(biāo)準(zhǔn)差# 計(jì)算置信區(qū)間,這里的0.9是置信水平if std == 0: # 如果所有值都相同即標(biāo)準(zhǔn)差為0則無(wú)法計(jì)算置信區(qū)間 conf_intveral = [min(result)-1, max(result)+1]else: conf_intveral = stats.norm.interval(0.9, loc=mean, scale=std) # 90%概率# print(’置信區(qū)間:’, conf_intveral)# 求異常值outer = get_outer_data(result)# 繪制離散圖fig = plt.figure()fig.add_subplot(2, 1, 1)plt.subplots_adjust(hspace=0.3)x = np.arange(0, len(result), 1)plt.scatter(x, result, marker=’.’, color=’g’) # 畫所有離散點(diǎn)plt.scatter(outer.iloc[:, 0], outer.iloc[:, 1], marker=’x’, color=’r’) # 畫異常離散點(diǎn)plt.plot([0, len(result)], [conf_intveral[0], conf_intveral[0]]) # 置信區(qū)間線條plt.plot([0, len(result)], [conf_intveral[1], conf_intveral[1]]) # 置信區(qū)間線條plt.text(0, conf_intveral[0], ’{:.2f}’.format(conf_intveral[0])) # 置信區(qū)間數(shù)字顯示plt.text(0, conf_intveral[1], ’{:.2f}’.format(conf_intveral[1])) # 置信區(qū)間數(shù)字顯示info = ’outer count:{}’.format(len(outer.iloc[:, 0]))plt.text(min(x), max(result)-((max(result)-min(result)) / 2), info) # 異常點(diǎn)數(shù)顯示plt.xlabel(’sample count’)plt.ylabel(’value’)# 繪制概率圖if std != 0: # 如果所有取值都相同 fig.add_subplot(2, 1, 2) x = np.arange(min(result), max(result), 0.1) y = _normfun(x, result.mean(), result.std()) plt.plot(x, y) # 這里畫出理論的正態(tài)分布概率曲線 plt.hist(result, bins=10, rwidth=0.8, density=True) # bins個(gè)柱狀圖,寬度是rwidth(0~1),=1沒(méi)有縫隙 info = ’mean:{:.2f}nstd:{:.2f}nmode num:{:.2f}’.format(mean, std, np.median(result)) plt.text(min(x), max(y) / 2, info) plt.xlabel(’value’) plt.ylabel(’Probability’)else: fig.add_subplot(2, 1, 2) info = ’non-normal distribution!!nmean:{:.2f}nstd:{:.2f}nmode num:{:.2f}’.format(mean, std, np.median(result)) plt.text(0.5, 0.5, info) plt.xlabel(’value’) plt.ylabel(’Probability’)plt.savefig(’./distribution.jpg’)plt.show()print(time.strftime(’%Y-%m-%D %H:%M:%S’))

python 生成正態(tài)分布數(shù)據(jù),并繪圖和解析

以上就是python 生成正態(tài)分布數(shù)據(jù),并繪圖和解析的詳細(xì)內(nèi)容,更多關(guān)于python 正態(tài)分布的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
主站蜘蛛池模板: 新干县| 美姑县| 阿拉善左旗| 九江市| 安吉县| 民勤县| 民乐县| 旬邑县| 湘潭县| 犍为县| 柳江县| 黄山市| 鹰潭市| 新和县| 彰化市| 前郭尔| 霍山县| 平和县| 武义县| 中阳县| 栾城县| 安新县| 井冈山市| 喀喇沁旗| 伊宁市| 巴东县| 茂名市| 宜州市| 太仓市| 满洲里市| 江川县| 阜康市| 巴楚县| 高阳县| 会泽县| 禹州市| 措勤县| 安徽省| 西丰县| 佛学| 琼海市|