一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Python腳本的R語(yǔ)言的函數(shù)

454398 ? 來(lái)源:機(jī)器之心 ? 作者: THU數(shù)據(jù)派 ? 2020-10-12 09:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹了采用創(chuàng)建一個(gè)Python腳本,用該腳本模仿R風(fēng)格的函數(shù)的方法來(lái)方便地進(jìn)行統(tǒng)計(jì)。

是用R語(yǔ)言還是用Python語(yǔ)言?這是一個(gè)曠日持久的爭(zhēng)論。在此,我們可以嘗試采用折中路線:創(chuàng)建一個(gè)Python腳本,用該腳本模仿R風(fēng)格的函數(shù),來(lái)方便地進(jìn)行統(tǒng)計(jì)!

簡(jiǎn)介
用R語(yǔ)言還是用Python語(yǔ)言?這是數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的一場(chǎng)大的爭(zhēng)論。毫無(wú)疑問(wèn),這兩種語(yǔ)言在最近幾年都取得了巨大的進(jìn)展,成為數(shù)據(jù)科學(xué)、預(yù)測(cè)分析和機(jī)器學(xué)習(xí)的首選編程語(yǔ)言。事實(shí)上,在IEEE新近的一篇文章中,Python取代C++成為2018年的頂級(jí)編程語(yǔ)言,R已經(jīng)牢牢地保住了它在前10名中的位置。

然而,這兩種編程語(yǔ)言之間存在著一些本質(zhì)的差異。R主要是為數(shù)據(jù)分析問(wèn)題的統(tǒng)計(jì)分析和快速原型化而開發(fā)的工具。另一方面,Python作為一種通用的現(xiàn)代面向?qū)ο笳Z(yǔ)言,與C或Java相似,它具有更簡(jiǎn)單的學(xué)習(xí)曲線和更為靈活的行為方式。因此,R在統(tǒng)計(jì)學(xué)家、定量生物學(xué)家、物理學(xué)家和經(jīng)濟(jì)學(xué)家中仍然非常受歡迎,而Python逐漸成為日常腳本、自動(dòng)化、后端web開發(fā)、分析和通用機(jī)器學(xué)習(xí)框架的首選語(yǔ)言,Python語(yǔ)言的技術(shù)支持基礎(chǔ)比較廣泛,同時(shí)還有許多開源社區(qū)。

如何在Python環(huán)境中模仿函數(shù)式編程?
R語(yǔ)言的函數(shù)編程特性為用戶提供了非常簡(jiǎn)單有效地界面,用于快速計(jì)算概率,并為數(shù)據(jù)分析問(wèn)題提供必要的描述性/推理統(tǒng)計(jì)。例如,僅僅使用一個(gè)緊致函數(shù)調(diào)用就能回答下面的問(wèn)題,這是不是很神奇?

  • 如何計(jì)算數(shù)據(jù)向量的平均/中值/模型?
  • 如何計(jì)算服從正態(tài)分布的某一事件的累積概率?如果該分布是泊松分布,則如何計(jì)算?
  • 如何計(jì)算一系列數(shù)據(jù)點(diǎn)的四分位數(shù)間距?
  • 如何根據(jù)學(xué)生的t分布生成少量隨機(jī)數(shù)?

在R語(yǔ)言編程環(huán)境中,這些您都能實(shí)現(xiàn)。

另一方面,Python腳本編寫能使分析人員在各種分析管線中創(chuàng)造性地使用這些統(tǒng)計(jì)數(shù)據(jù)。

為了結(jié)合這兩種語(yǔ)言的優(yōu)勢(shì),需要設(shè)計(jì)一個(gè)簡(jiǎn)單的基于Python的包裝類庫(kù),它包含最常用的函數(shù),這些函數(shù)涉及以R風(fēng)格定義的概率分布和描述性統(tǒng)計(jì)信息,用戶可以快速地調(diào)用這些函數(shù),而無(wú)需調(diào)用Python統(tǒng)計(jì)庫(kù),并弄明白所有方法和參數(shù)。

最為便捷的R-函數(shù)的Python包裝類腳本
我用Python編寫了一個(gè)腳本,用來(lái)定義在簡(jiǎn)單統(tǒng)計(jì)分析中最為便捷和最被廣泛使用的R函數(shù)。導(dǎo)入這個(gè)腳本之后,您將能夠像在R編程環(huán)境中一樣自然地使用那些R-函數(shù)。

這個(gè)腳本的目標(biāo)是利用簡(jiǎn)單的Python子程序,來(lái)模仿R風(fēng)格的統(tǒng)計(jì)函數(shù),從而快速計(jì)算密度/點(diǎn)估計(jì)、累積分布、分位數(shù),并為各種重要的概率分布生成隨機(jī)變量。為了保持R的風(fēng)格,沒(méi)有使用類分層結(jié)構(gòu),只在該文件中定義了一些原始函數(shù),這樣用戶便可以方便地導(dǎo)入這個(gè)Python腳本,并在需要時(shí)使用所有函數(shù),而僅僅只需做一個(gè)名稱的調(diào)用。

注意,在此使用了“模仿”這個(gè)詞。我并沒(méi)有聲稱要模仿R真正的功能編程范式:那些由深層次的環(huán)境設(shè)置和這些環(huán)境與對(duì)象之間組成的復(fù)雜的相互關(guān)系。這個(gè)腳本只允許我(同時(shí)也希望有無(wú)數(shù)其他Python用戶)能夠快速啟動(dòng)Python程序或Jupyter筆記本(一種交互式筆記本,支持運(yùn)行 40 多種編程語(yǔ)言)導(dǎo)入腳本,并在短時(shí)間內(nèi)開始進(jìn)行簡(jiǎn)單的描述性統(tǒng)計(jì)。這就是目標(biāo),僅此而已。

或者,你可能已經(jīng)會(huì)用R語(yǔ)言編碼,剛開始學(xué)習(xí)和使用Python進(jìn)行數(shù)據(jù)分析。你可以高興地看到和使用Jupyter筆記本里的一些眾所周知的函數(shù),這些都和你使用的R語(yǔ)言環(huán)境中的方法類似。

簡(jiǎn)單實(shí)例
例如,如果需要計(jì)算數(shù)據(jù)點(diǎn)向量的TuKEY五數(shù)綜合。你只需調(diào)用一個(gè)簡(jiǎn)單函數(shù)FiVunm并傳遞給向量,它便在一個(gè)Numpy數(shù)組中返回五數(shù)綜合(最小值;第1四分位數(shù)(Q1);中位數(shù)(Q2);第3四分位數(shù)(Q3);最大值。)。
lst=[20,12,16,32,27,65,44,45,22,18]
fivenum(lst)
> array([12. , 18.5, 24.5, 41. , 65. ])

或者,你想知道以下問(wèn)題的答案:
假設(shè)一臺(tái)機(jī)器平均每小時(shí)輸出10件成品,標(biāo)準(zhǔn)差為2,輸出模式服從近似正態(tài)分布。在接下來(lái)的一小時(shí)內(nèi),機(jī)器輸出至少7臺(tái)但不超過(guò)12臺(tái)的概率是多少?

答案基本上是這樣,

利用pNorm…,只需要一行代碼就可以得到答案。
pnorm(12,10,2)-pnorm(7,10,2)
> 0.7745375447996848

或者,對(duì)于如下問(wèn)題:
假設(shè)你有一枚硬幣,每次拋硬幣的時(shí)候,都有60%的轉(zhuǎn)動(dòng)概率,玩的是10次拋擲的游戲。如何用這枚硬幣計(jì)算出所有可能的贏球數(shù)(從0到10)?

只需使用一個(gè)dbinom…函數(shù)和幾行代碼就可以獲得一個(gè)很好的條形圖。
probs=[]
import matplotlib.pyplot as plt
for i in range(11):
probs.append(dbinom(i,10,0.6))
plt.bar(range(11),height=probs)
plt.grid(True)
plt.show()

目前已經(jīng)實(shí)現(xiàn)的函數(shù)
目前,已經(jīng)實(shí)現(xiàn)了的、可以用于快速調(diào)用的R風(fēng)格函數(shù)在以下腳本中實(shí)現(xiàn)。

  • 均值、中值、方差、標(biāo)準(zhǔn)差
  • TuKEY五數(shù)綜合、矩陣的IQR
  • 矩陣的協(xié)方差或兩個(gè)向量之間的協(xié)方差
  • 密度、累積概率、分位函數(shù)和隨機(jī)變量生成,用于下列分布:正態(tài)分布,均勻分布,二項(xiàng)分布,泊松分布,F(xiàn)分布,Student’s-t分布,卡方分布,Beta分布,和Gamma分布

后續(xù)工作
這項(xiàng)工作還正在進(jìn)行之中,我計(jì)劃在腳本中添加一些更為便捷的R-函數(shù)。例如,在R單行命令中,lm可以得到一個(gè)最小二乘擬合模型,該模型具有所有必要的推斷統(tǒng)計(jì)量(P值、標(biāo)準(zhǔn)誤差等)。這將是多么的簡(jiǎn)短和緊湊!另一方面,Python中的標(biāo)準(zhǔn)線性回歸問(wèn)題通常是使用Scikit-Learning來(lái)解決,需要用到更多的腳本來(lái)實(shí)現(xiàn)它。我計(jì)劃使用Python的statsmodel后端結(jié)合這個(gè)單一函數(shù)線性模型來(lái)實(shí)現(xiàn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4379

    瀏覽量

    64749
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86629
  • r語(yǔ)言
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    6503
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    是一種非常有用的編程語(yǔ)言,其語(yǔ)法易于閱讀,允許程序員使用比匯編、C或Java等語(yǔ)言更少的代碼行。Python編程語(yǔ)言最初實(shí)際上是作為L(zhǎng)inux的腳本
    的頭像 發(fā)表于 03-25 09:27 ?686次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    創(chuàng)建OpenVINO? Python腳本,運(yùn)行可執(zhí)行文件時(shí)遇到的報(bào)錯(cuò)怎么解決?

    創(chuàng)建OpenVINO? Python 腳本: from openvino.inference_engine import IECore ie = IECore() print(\"
    發(fā)表于 03-05 10:20

    Linux從零到精通:最簡(jiǎn)單的Shell腳本入門教程

    通過(guò)簡(jiǎn)單的命令和腳本,實(shí)現(xiàn)對(duì)系統(tǒng)的靈活控制和自動(dòng)化管理。 shell腳本前言 shell腳本入門 shell變量基礎(chǔ) shell變量子串 shell數(shù)值運(yùn)算 條件表達(dá)式 流程控制語(yǔ)句 shell
    的頭像 發(fā)表于 12-05 09:56 ?1518次閱讀
    Linux從零到精通:最簡(jiǎn)單的Shell<b class='flag-5'>腳本</b>入門教程

    對(duì)比Python與Java編程語(yǔ)言

    Python與Java都是目前非常流行的編程語(yǔ)言,它們各有其獨(dú)特的優(yōu)勢(shì)和適用場(chǎng)景。以下是對(duì)這兩種編程語(yǔ)言的對(duì)比: 一、語(yǔ)法和易用性 Python 語(yǔ)法簡(jiǎn)潔,代碼更易讀,非常適合初學(xué)者。
    的頭像 發(fā)表于 11-15 09:31 ?1036次閱讀

    使用C語(yǔ)言實(shí)現(xiàn)函數(shù)模板

      用C語(yǔ)言能不能實(shí)現(xiàn)一個(gè)通用的函數(shù),既能完成整數(shù)的相加,又能完成浮點(diǎn)數(shù)的相加?
    的頭像 發(fā)表于 11-09 11:38 ?936次閱讀

    微軟生成式AI腳本GenAIScript的安裝與配置

    GenAIScript 是一種結(jié)合了生成式人工智能(Generative AI,簡(jiǎn)稱 GenAI)和腳本編寫能力的新型腳本語(yǔ)言
    的頭像 發(fā)表于 11-07 09:13 ?745次閱讀
    微軟生成式AI<b class='flag-5'>腳本</b>GenAIScript的安裝與配置

    Python常用函數(shù)大全

    Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認(rèn)識(shí)這些神器,讓你的開發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?888次閱讀

    利用Python腳本登錄到交換機(jī)并創(chuàng)建VLAN

    本文將詳細(xì)介紹如何利用Python腳本登錄到交換機(jī)并創(chuàng)建VLAN。
    的頭像 發(fā)表于 08-12 17:59 ?943次閱讀

    使用Python腳本備份華為交換機(jī)的配置信息

    在現(xiàn)代網(wǎng)絡(luò)管理中,備份交換機(jī)的配置信息是一項(xiàng)至關(guān)重要的任務(wù)。備份可以確保在交換機(jī)發(fā)生故障或配置錯(cuò)誤時(shí),能夠迅速恢復(fù)到之前的工作狀態(tài)。本文將詳細(xì)介紹如何使用Python腳本備份華為交換機(jī)的配置信息。
    的頭像 發(fā)表于 08-12 17:50 ?1289次閱讀
    使用<b class='flag-5'>Python</b><b class='flag-5'>腳本</b>備份華為交換機(jī)的配置信息

    使用Python批量連接華為網(wǎng)絡(luò)設(shè)備

    隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大和設(shè)備數(shù)量的增加,手動(dòng)配置和管理每臺(tái)網(wǎng)絡(luò)設(shè)備變得越來(lái)越不現(xiàn)實(shí)。因此,自動(dòng)化工具和腳本變得尤為重要。Python語(yǔ)言以其簡(jiǎn)潔性和強(qiáng)大的第三方庫(kù)支持,成為了網(wǎng)絡(luò)自動(dòng)化領(lǐng)域的首選。本篇文章將詳細(xì)介紹如何使用
    的頭像 發(fā)表于 08-12 17:48 ?904次閱讀

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語(yǔ)言之一。Python的易學(xué)易用、豐富的庫(kù)和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語(yǔ)言。而
    的頭像 發(fā)表于 08-01 15:27 ?3256次閱讀

    Python建模算法與應(yīng)用

    上成為理想的腳本語(yǔ)言,特別適用于快速的應(yīng)用程序開發(fā)。本文將詳細(xì)介紹Python在建模算法中的應(yīng)用,包括常見的建模算法、Python在建模中的優(yōu)勢(shì)、常用庫(kù)以及實(shí)際案例。
    的頭像 發(fā)表于 07-24 10:41 ?1221次閱讀

    python寫驗(yàn)證環(huán)境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、用xrun仿真cocotb的腳本等,我們來(lái)看看體驗(yàn)如何。
    的頭像 發(fā)表于 07-24 09:38 ?1035次閱讀
    用<b class='flag-5'>python</b>寫驗(yàn)證環(huán)境cocotb

    Python語(yǔ)言基礎(chǔ)2

    電子發(fā)燒友網(wǎng)站提供《Python語(yǔ)言基礎(chǔ)2.rar》資料免費(fèi)下載
    發(fā)表于 07-17 17:23 ?1次下載

    opencv-python和opencv一樣嗎

    是OpenCV的一個(gè)Python語(yǔ)言接口,它允許開發(fā)者使用Python語(yǔ)言來(lái)調(diào)用OpenCV庫(kù)的功能。 雖然OpenCV和OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?2059次閱讀