电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

使用python繪制cdf的多種實(shí)現(xiàn)方法

瀏覽:7日期:2022-08-06 13:21:15

首先我們先用隨機(jī)函數(shù)編造一個(gè)包含1000個(gè)數(shù)值的一維numpy數(shù)組,如下:

// An highlighted blockrng = np.random.RandomState(seed=12345)samples = stats.norm.rvs(size=1000, random_state=rng)

接下來(lái)我們將使用各種方法畫出以上數(shù)據(jù)的累積分布圖

1、matplotlib.pyplot.hist()

def hist(self, x, bins=None, range=None, density=None, weights=None, cumulative=False, bottom=None, histtype=’bar’, align=’mid’, orientation=’vertical’, rwidth=None, log=False, color=None, label=None, stacked=False, normed=None, **kwargs):

第一種方法,我們使用matplotlib圖形庫(kù)中的hist函數(shù),熟悉該庫(kù)的人應(yīng)該知道這是一個(gè)直方圖繪制函數(shù),以上是從API中找到的hist函數(shù)的所有參數(shù),我們給出一維數(shù)組或者列表x,使用hist畫出該數(shù)據(jù)的直方圖。

直方圖有兩種形式,分別是概率分布直方圖和累積分布直方圖(可能說(shuō)的不準(zhǔn)確- -!),可以通過(guò)參數(shù)cucumulative來(lái)調(diào)節(jié),默認(rèn)為False,畫出的是PDF,那么True畫出的便是CDF直方圖。

PDF(figure1)可以觀察到整個(gè)數(shù)據(jù)在橫軸范圍內(nèi)的分布,CDF(figure2)則可以看出不同的數(shù)據(jù)分布間的差異性,也可以觀察到整個(gè)數(shù)據(jù)的增長(zhǎng)趨勢(shì)和波動(dòng)情況。

使用python繪制cdf的多種實(shí)現(xiàn)方法

上圖是概率分布直方圖,縱軸代表概率,如果置參數(shù)normed=False,縱軸代表頻數(shù)

使用python繪制cdf的多種實(shí)現(xiàn)方法

如果我們要觀察兩種數(shù)據(jù)分布的差異,可能使用直方圖就不是很直觀,各種直方柱會(huì)相互重疊,我們只需更改直方圖的圖像類型,令histtype=‘step’,就會(huì)畫出一條曲線來(lái)(Figure3,實(shí)際上就是將直方柱并在一起,除邊界外顏色透明),類似于累積分布曲線。這時(shí),我們就能很好地觀察到不同數(shù)據(jù)分布曲線間的差異。

使用python繪制cdf的多種實(shí)現(xiàn)方法

2、numpy.histogram

def histogram(a, bins=10, range=None, normed=False, weights=None, density=None)

第二種方法我們使用numpy中畫直方圖的函數(shù)histogram,該函數(shù)不是一個(gè)直接的繪圖函數(shù)(廢話- -!過(guò)渡句,哈哈),給定一組數(shù)據(jù)a,它會(huì)返回兩個(gè)數(shù)組hist和bin_edges,默認(rèn)情況下hist是數(shù)據(jù)在各個(gè)區(qū)間上的頻率,bin_edges是劃分的各個(gè)區(qū)間的邊界,說(shuō)到這我們大概可以想到其實(shí)該函數(shù)算是上一個(gè)函數(shù)的底層函數(shù),我們可以依據(jù)得到的這兩個(gè)數(shù)組來(lái)畫直方圖,我們也可以用頻率數(shù)組來(lái)直接畫分布曲線(Figure4)

使用python繪制cdf的多種實(shí)現(xiàn)方法

這里我只給出了一個(gè)最原始的圖像,直接用hist數(shù)組畫的,如果想要變成合格的累積分布曲線圖,縱軸為概率(頻率乘區(qū)間長(zhǎng)度),橫軸為區(qū)間(從bin_edges數(shù)組中取n-1個(gè))就可以了

3、stats.relfreq

def relfreq(a, numbins=10, defaultreallimits=None, weights=None)Returns-------frequency : ndarray Binned values of relative frequency.lowerlimit : float Lower real limitbinsize : float Width of each bin.extrapoints : int Extra points.

第三種方法我們使用stats中的relfreq函數(shù),該函數(shù)和第二種的方法類似,也并非是直接畫圖,而是返回關(guān)于直方圖的一些數(shù)據(jù),這里的frequency直接是概率而非頻率,可以直接作為CDF圖的縱軸,但是橫軸需要自己計(jì)算,計(jì)算公式:

res.lowerlimit + np.linspace(0,res.binsize*res.frequency.size, res.frequency.size)

這個(gè)公式應(yīng)該很好理解,我就不多說(shuō)了,當(dāng)然這些返回值都要依賴我們所給出的bins的數(shù)目。下面我給出一段代碼,便是使用stats.relfreq畫出概率分布直方圖和累積分布曲線圖。

rng = np.random.RandomState(seed=12345)samples = stats.norm.rvs(size=1000, random_state=rng)res = stats.relfreq(samples, numbins=25)x = res.lowerlimit + np.linspace(0, res.binsize*res.frequency.size,res.frequency.size)fig = plt.figure(figsize=(5, 4))ax = fig.add_subplot(1, 1, 1)ax.bar(x, res.frequency, width=res.binsize)ax.set_title(’Relative frequency histogram’)ax.set_xlim([x.min(), x.max()])plt.show()

使用python繪制cdf的多種實(shí)現(xiàn)方法

rng = np.random.RandomState(seed=12345)samples = stats.norm.rvs(size=1000, random_state=rng)res = stats.relfreq(samples, numbins=25)x = res.lowerlimit + np.linspace(0, res.binsize*res.frequency.size,res.frequency.size)y=np.cumsum(res.frequency)plt.plot(x,y)plt.title(’Figure6 累積分布直方圖’)plt.show()

使用python繪制cdf的多種實(shí)現(xiàn)方法

以上就是本人整理出來(lái)的關(guān)于畫cdf直方圖和曲線的三種方法,整理這方面東西的初忠是在發(fā)現(xiàn)在進(jìn)行數(shù)據(jù)分析的時(shí)候,概率分布直方圖只能觀察到數(shù)據(jù)大概的分布情況,而在不同的數(shù)據(jù)樣本進(jìn)行比較時(shí)卻很難直觀滴反映其差異性,通過(guò)看論文發(fā)現(xiàn)cdf可以做到這一點(diǎn)。

本人并不是數(shù)學(xué)專業(yè)出身,想要表達(dá)其意義,但有些描述和用詞不當(dāng),大家借鑒就好。希望大家多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 宏源科技-房地产售楼系统|线上开盘系统|售楼管理系统|线上开盘软件 | 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 上海律师事务所_上海刑事律师免费咨询平台-煊宏律师事务所 | 中式装修设计_室内中式装修_【云臻轩】中式设计机构 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 民用音响-拉杆音响-家用音响-ktv专用音响-万昌科技 | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 家庭教育吧-在线家庭教育平台,专注青少年家庭教育 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 上海阳光泵业制造有限公司 -【官方网站】 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 中央空调温控器_风机盘管温控器_智能_液晶_三速开关面板-中央空调温控器厂家 | 膜片万向弹性联轴器-冲压铸造模具「沧州昌运模具」 | 2025福建平潭岛旅游攻略|蓝眼泪,景点,住宿攻略-趣平潭网 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 广西教师资格网-广西教师资格证考试网| 中式装修设计_室内中式装修_【云臻轩】中式设计机构 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 升降炉_真空气氛炉_管式电阻炉厂家-山东中辰电炉有限公司 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 翅片管换热器「型号全」_厂家-淄博鑫科环保| 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 广州工业氧气-工业氩气-工业氮气-二氧化碳-广州市番禺区得力气体经营部 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 韦伯电梯有限公司| 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 |