日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

14個(gè)Q&A,講述python與數(shù)據(jù)科學(xué)的“曖昧情事”

系統(tǒng) 2270 0

全文共3733字,預(yù)計(jì)學(xué)習(xí)時(shí)長(zhǎng)7分鐘

Python最近火了,大紅大紫那種。PYPL(編程語(yǔ)言受歡迎程度) 四月官方榜單宣布,Python榮獲NO.1,竟然連朋友圈里的文科生都開(kāi)始轉(zhuǎn)發(fā)Python課程打卡的鏈接了……這是怎樣一個(gè)令全民瘋狂的語(yǔ)言?

作為編程界的“頭牌”名媛,Python平易近人的態(tài)度和精明婉約的靈動(dòng)深得各個(gè)大佬歡心。比如:人工智能、web開(kāi)發(fā)、爬蟲(chóng)、系統(tǒng)運(yùn)維、數(shù)據(jù)分析與計(jì)算等等。這幾位風(fēng)流多金的行業(yè)精英隨便哪個(gè)都能“逆轉(zhuǎn)未來(lái)”。

【python開(kāi)發(fā)學(xué)習(xí)資料領(lǐng)取方式】:加入python技術(shù)學(xué)習(xí)交流群250933691,點(diǎn)擊加入群聊,私信管理員即可免費(fèi)領(lǐng)取

本文為你精心準(zhǔn)備了一段Python與數(shù)據(jù)科學(xué)的“曖昧史”——用Python進(jìn)行數(shù)據(jù)科學(xué)概述,包括Numpy,Scipy,pandas,Scikit-Learn,XGBoost,TensorFlow和Keras等模塊、包、庫(kù)的用法。

14個(gè)Q&A,講述python與數(shù)據(jù)科學(xué)的“曖昧情事”_第1張圖片

目錄

1. 為何選擇Python?

2. 安裝Python

3. 使用Python進(jìn)行數(shù)據(jù)科學(xué)研究

4. Python中的數(shù)值計(jì)算

5. Python中的統(tǒng)計(jì)分析

6. Python中的數(shù)據(jù)操作

7. 在Python中使用數(shù)據(jù)庫(kù)

8. Python中的數(shù)據(jù)工程

9. Python中的大數(shù)據(jù)工程

10. Python中的進(jìn)一步統(tǒng)計(jì)

11. Python中的機(jī)器學(xué)習(xí)

12. Python的深度學(xué)習(xí)

13. Python中的數(shù)據(jù)科學(xué)API

14. Python中的應(yīng)用程序

1. 為何選擇Python?

Python作為一種語(yǔ)言,十項(xiàng)全能,易于學(xué)習(xí),安裝簡(jiǎn)單。同時(shí)有很多擴(kuò)展,非常適合進(jìn)行數(shù)據(jù)科學(xué)研究。像Google、Instagram、Youtube、Reddit等明星網(wǎng)站都在用Python搭建核心業(yè)務(wù)。

Python不僅僅用于數(shù)據(jù)科學(xué),還使用Python來(lái)做更多的工作——如編寫(xiě)腳本、構(gòu)建API、構(gòu)建網(wǎng)站等等。

關(guān)于Python的幾點(diǎn)重要事項(xiàng)需要注意。

· 目前,有兩種常用的Python版本。它們是版本2和3。大多數(shù)教程和本文將默認(rèn)使用的是Python的最新版本Python 3。但有時(shí)會(huì)遇到使用Python 2的書(shū)籍或文章。版本之間的差異并不大,但有時(shí)在運(yùn)行版本3時(shí)復(fù)制和粘貼版本2代碼將無(wú)法正常工作,因此需要進(jìn)行一些輕微的編輯。

· 要注意Python十分介意空白的地方(即空格和返回字符)。如果把空格放在錯(cuò)誤的地方,程序很可能會(huì)產(chǎn)生錯(cuò)誤。

· 與其他語(yǔ)言相比,Python不需要管理內(nèi)存,也有良好的社區(qū)支持。

2. 安裝Python

安裝用于數(shù)據(jù)科學(xué)的Python的最佳方法是使用Anaconda發(fā)行版。

Anacoda有你使用Python進(jìn)行數(shù)據(jù)科學(xué)研究所需的資料,包括將在本文中介紹的許多軟件包。

單擊Products - > Distribution并向下滾動(dòng),可以看到適用于Mac,Windows和Linux的安裝程序。即使Mac上已經(jīng)有Python,也應(yīng)該考慮安裝Anaconda發(fā)行版,因?yàn)橛欣诎惭b其他軟件包。

此外,還可以去官方Python網(wǎng)站下載安裝程序。

包管理器

包是一段Python代碼,而不是語(yǔ)言的一部分,包對(duì)于執(zhí)行某些任務(wù)非常有幫助。通過(guò)包,我們可以復(fù)制并粘貼代碼,然后將其放在Python解釋器(用于運(yùn)行代碼)可以找到的地方。

但這很麻煩,每次啟動(dòng)新項(xiàng)目或更新包時(shí)都必須進(jìn)行內(nèi)容的復(fù)制和粘貼操作。因此,我們可以使用包管理器。Anaconda發(fā)行版中自帶包管理器。如果沒(méi)有,建議安裝pip。

無(wú)論選擇哪一個(gè),都可以在終端(或命令提示符)上使用命令輕松安裝和更新軟件包。

3. 使用Python進(jìn)行數(shù)據(jù)科學(xué)研究

Python迎合許多不同開(kāi)發(fā)人員的技術(shù)要求(Web開(kāi)發(fā)人員,數(shù)據(jù)分析師,數(shù)據(jù)科學(xué)家),因此使用該語(yǔ)言具有很多不同的編程方法。

Python是一種解釋型語(yǔ)言,不必將代碼編譯成可執(zhí)行文件,只需將包含代碼的文本文檔傳遞給解釋器即可。

快速瀏覽一下與Python解釋器交互的不同方法吧。

在終端

如果打開(kāi)終端(或命令提示符)并鍵入單詞'Python',將啟動(dòng)一個(gè)shell會(huì)話(huà)。可以在對(duì)話(huà)中輸入有效的Python命令,以實(shí)現(xiàn)相應(yīng)的程序操作。

這可以是快速調(diào)試某些東西的好方法,但即使是一個(gè)小項(xiàng)目,在終端中調(diào)試也很困難。

使用文本編輯器

如果你在文本文件中編寫(xiě)一系列Python命令并使用.py擴(kuò)展名保存它,則可以使用終端導(dǎo)航到該文件,并通過(guò)輸入python YOUR_FILE_NAME.py來(lái)運(yùn)行該程序。

這與在終端中逐個(gè)輸入命令基本相同,只是更容易修復(fù)錯(cuò)誤并更改程序的功能。

在IDE中

IDE是一種專(zhuān)業(yè)級(jí)軟件,可以進(jìn)行軟件項(xiàng)目管理。

IDE的一個(gè)好處是,使用調(diào)試功能可以告訴你在嘗試運(yùn)行程序之前出錯(cuò)的位置。

某些IDE附帶了項(xiàng)目模板(用于特定任務(wù)),你可以使用這些模板根據(jù)最佳實(shí)踐設(shè)置項(xiàng)目。

Jupyter Notebooks

這些方法都不是用python進(jìn)行數(shù)據(jù)科學(xué)的最佳方式,最好是使用Jupyter Notebooks。

Jupyter Notebooks使你能夠一次運(yùn)行一“塊”代碼,這意味著你可以在決定下一步做什么之前看到輸出信息-這在數(shù)據(jù)科學(xué)項(xiàng)目中非常重要,我們經(jīng)常需要在獲取輸出之前查看圖表。

如果你正在使用Anaconda,且已經(jīng)安裝了Jupyter lab。要啟動(dòng)它,只需要在終端中輸入'jupyter lab'即可。

如果正在使用pip,則必須使用命令'python pip install jupyter'安裝Jupyter lab。

4. Python中的數(shù)字計(jì)算

NumPy軟件包中包含許多有用的函數(shù),用于執(zhí)行數(shù)據(jù)科學(xué)工作所需的數(shù)學(xué)運(yùn)算。

它作為Anaconda發(fā)行版的一部分安裝,并且使用pip安裝,就像安裝Jupyter Notbooks一樣簡(jiǎn)單('pip install numpy')。

我們?cè)跀?shù)據(jù)科學(xué)中需要做的最常見(jiàn)的數(shù)學(xué)運(yùn)算是矩陣乘法,計(jì)算向量的點(diǎn)積,改變數(shù)組的數(shù)據(jù)類(lèi)型以及創(chuàng)建數(shù)組!

以下是如何將列表編入NumPy數(shù)組的方法:

以下是如何在NumPy中進(jìn)行數(shù)組乘法和計(jì)算點(diǎn)積的方法:

以下是如何在NumPy中進(jìn)行矩陣乘法:

5. Python中的統(tǒng)計(jì)分析

Scipy包中包含專(zhuān)門(mén)用于統(tǒng)計(jì)的模塊(包的代碼的子部分)。

你可以使用'from scipy import stats'命令將其導(dǎo)入(在程序中使其功能可用)到你的筆記本中。該軟件包包含計(jì)算數(shù)據(jù)統(tǒng)計(jì)測(cè)量、執(zhí)行統(tǒng)計(jì)測(cè)試、計(jì)算相關(guān)性、匯總數(shù)據(jù)和研究各種概率分布所需的一切。

以下是使用Scipy快速訪問(wèn)數(shù)組的匯總統(tǒng)計(jì)信息(最小值,最大值,均值,方差,偏斜和峰度)的方法:

6. Python中的數(shù)據(jù)操作

數(shù)據(jù)科學(xué)家必須花費(fèi)大量的時(shí)間來(lái)清理和整理數(shù)據(jù)。幸運(yùn)的是,Pandas軟件包可以幫助我們用代碼而不是手工來(lái)完成這項(xiàng)工作。

使用Pandas執(zhí)行的最常見(jiàn)任務(wù)是從CSV文件和數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)。

它還具有強(qiáng)大的語(yǔ)法,可以將不同的數(shù)據(jù)集組合在一起(數(shù)據(jù)集在Pandas中稱(chēng)為DataFrame)并執(zhí)行數(shù)據(jù)操作。

使用.head方法查看DataFrame的前幾行:

使用方括號(hào)選擇一列:

通過(guò)組合其他列來(lái)創(chuàng)建新列:

7.在Python中使用數(shù)據(jù)庫(kù)

為了使用pandas read_sql方法,必須提前建立與數(shù)據(jù)庫(kù)的連接。

連接數(shù)據(jù)庫(kù)最安全的方法是使用Python的SQLAlchemy包。

SQL本身就是一種語(yǔ)言,并且連接到數(shù)據(jù)庫(kù)的方式取決于你正在使用的數(shù)據(jù)庫(kù)。

8.Python中的數(shù)據(jù)工程

14個(gè)Q&A,講述python與數(shù)據(jù)科學(xué)的“曖昧情事”_第2張圖片

有時(shí)我們傾向于在數(shù)據(jù)作為Pandas DataFrame形式到達(dá)我們的項(xiàng)目之前,對(duì)其進(jìn)行一些計(jì)算。

如果你正在使用數(shù)據(jù)庫(kù)或從Web上抓取數(shù)據(jù)(并將其存儲(chǔ)在某處),那么移動(dòng)數(shù)據(jù)并對(duì)其進(jìn)行轉(zhuǎn)換的過(guò)程稱(chēng)為ETL(提取,轉(zhuǎn)換,加載)。

你從一個(gè)地方提取數(shù)據(jù),對(duì)其進(jìn)行一些轉(zhuǎn)換(通過(guò)添加數(shù)據(jù)來(lái)總結(jié)數(shù)據(jù),查找均值,更改數(shù)據(jù)類(lèi)型等),然后將其加載到可以訪問(wèn)的位置。

有一個(gè)非常酷的工具叫做Airflow,它非常善于幫助管理ETL工作流程。更好的是,它是用Python編寫(xiě)的,由Airbnb開(kāi)發(fā)。

9. Python中的大數(shù)據(jù)工程

有時(shí)ETL過(guò)程可能非常慢。如果你有數(shù)十億行數(shù)據(jù)(或者如果它們是一種奇怪的數(shù)據(jù)類(lèi)型,如文本),可以使用許多不同的計(jì)算機(jī)分別進(jìn)行處理轉(zhuǎn)換,并在最后一秒將所有數(shù)據(jù)整合到一起。

這種架構(gòu)模式稱(chēng)為MapReduce,它很受Hadoop的歡迎。

如今,很多人使用Spark來(lái)做這種數(shù)據(jù)轉(zhuǎn)換/檢索工作,并且有一個(gè)Spark的Python接口叫做PySpark。

MapReduce架構(gòu)和Spark都是非常復(fù)雜的工具,這里我不詳細(xì)介紹。只要知道它們的存在,如果你發(fā)現(xiàn)自己正在處理非常緩慢的ETL過(guò)程,PySpark可能會(huì)有所幫助。

10. Python中的進(jìn)一步統(tǒng)計(jì)

我們已經(jīng)知道可以使用Scipy的統(tǒng)計(jì)模塊運(yùn)行統(tǒng)計(jì)測(cè)試、計(jì)算描述性統(tǒng)計(jì)、p值以及偏斜和峰度等事情,但Python還能做些什么呢?

你應(yīng)該知道的一個(gè)特殊包是Lifelines包。

使用Lifelines包,你可以從稱(chēng)為生存分析的統(tǒng)計(jì)子字段計(jì)算各種函數(shù)。

生存分析有很多應(yīng)用。我們可以用它來(lái)預(yù)測(cè)客戶(hù)流失(當(dāng)客戶(hù)取消訂閱時(shí))以及零售商店何時(shí)可能會(huì)被盜竊。

這些與包的創(chuàng)造者想象它將被用于完全不同(生存分析傳統(tǒng)上是醫(yī)學(xué)統(tǒng)計(jì)工具)的領(lǐng)域。但這只是展示了構(gòu)建數(shù)據(jù)科學(xué)問(wèn)題的不同方式!

11. Python中的機(jī)器學(xué)習(xí)

這是一個(gè)重要的主題,機(jī)器學(xué)習(xí)正在風(fēng)靡世界,是數(shù)據(jù)科學(xué)家工作的重要組成部分。

簡(jiǎn)而言之,機(jī)器學(xué)習(xí)是一組允許計(jì)算機(jī)將輸入數(shù)據(jù)映射到輸出數(shù)據(jù)的技術(shù)。有一些情況并非如此,但它們屬于少數(shù),以這種方式考慮ML通常很有幫助。

Python有兩個(gè)非常好的機(jī)器學(xué)習(xí)包。

Scikit-Learn

在使用Python進(jìn)行機(jī)器學(xué)習(xí)的時(shí)候都會(huì)花大部分時(shí)間用于使用Scikit-Learn包(有時(shí)縮寫(xiě)為sklearn)。

這個(gè)包實(shí)現(xiàn)了一大堆機(jī)器學(xué)習(xí)算法,并通過(guò)一致的語(yǔ)法公開(kāi)它們。這使得數(shù)據(jù)科學(xué)家很容易充分利用每種算法。

使用Scikit-Learn的一般框架是這樣的——將數(shù)據(jù)集拆分為訓(xùn)練和測(cè)試數(shù)據(jù)集:

實(shí)例化并訓(xùn)練一個(gè)模型:

使用metrics模塊測(cè)試模型的工作情況:

XGBoost

在Python中常用于機(jī)器學(xué)習(xí)的第二個(gè)包是XGBoost。

Scikit-Learn實(shí)現(xiàn)了一系列算法,XGBoost只實(shí)現(xiàn)了一個(gè)梯度提升的決策樹(shù)。

最近這個(gè)包(和算法)因其在Kaggle比賽(任何人都可以參加的在線數(shù)據(jù)科學(xué)比賽)上被使用而取得成功,變得非常受歡迎。

訓(xùn)練模型的工作方式與Scikit-Learn算法的工作方式大致相同。

12. Python中的深度學(xué)習(xí)

Scikit-Learn中提供的機(jī)器學(xué)習(xí)算法幾乎可以滿(mǎn)足任何問(wèn)題。話(huà)雖這么說(shuō),但有時(shí)你需要使用最先進(jìn)的算法。

由于使用它們的系統(tǒng)幾乎優(yōu)于其他所有類(lèi)算法,因此深度神經(jīng)網(wǎng)絡(luò)的普及率急劇上升。

但是很難說(shuō)神經(jīng)網(wǎng)絡(luò)正在做什么以及它為什么這樣做。因此,它們?cè)诮鹑凇⑨t(yī)學(xué)、法律和相關(guān)專(zhuān)業(yè)中的使用并未得到廣泛認(rèn)可。

神經(jīng)網(wǎng)絡(luò)的兩大類(lèi)是卷積神經(jīng)網(wǎng)絡(luò)(用于對(duì)圖像進(jìn)行分類(lèi)并完成計(jì)算機(jī)視覺(jué)中的許多其他任務(wù))和循環(huán)神經(jīng)網(wǎng)絡(luò)(用于理解和生成文本)。

探索神經(jīng)網(wǎng)工作時(shí)超出了本文的范圍的機(jī)理,如果你想做這類(lèi)工作,只要知道你需要尋找的包是TensorFlow(Google contibution!)還是Keras。

Keras本質(zhì)上是TensorFlow的包裝器,使其更易于使用。

13. Python中的數(shù)據(jù)科學(xué)API

一旦訓(xùn)練了模型,就可以在其他軟件中訪問(wèn)它的預(yù)測(cè),方法是創(chuàng)建一個(gè)API。

API允許模型從外部源一次一行地接收數(shù)據(jù)并返回預(yù)測(cè)。因?yàn)镻ython是一種通用的編程語(yǔ)言,也可用于創(chuàng)建Web服務(wù),所以很容易使用Python通過(guò)API為模型提供服務(wù)。

如果需要構(gòu)建API,應(yīng)該查看pickle和Flask。Pickle允許訓(xùn)練有素的模型被保存在硬盤(pán)驅(qū)動(dòng)器上,以便以后使用。而Flask是創(chuàng)建Web服務(wù)的最簡(jiǎn)單方法。

14. Python中的Web應(yīng)用程序

最后,如果你想圍繞數(shù)據(jù)科學(xué)項(xiàng)目構(gòu)建功能齊全的Web應(yīng)用程序,則應(yīng)使用Django框架。

Django在Web開(kāi)發(fā)社區(qū)非常受歡迎,并且用于構(gòu)建Instagram和Pinterest的第一個(gè)版本(以及許多其他版本)。

【python開(kāi)發(fā)學(xué)習(xí)資料領(lǐng)取方式】:加入python技術(shù)學(xué)習(xí)交流群250933691,點(diǎn)擊加入群聊,私信管理員即可免費(fèi)領(lǐng)取


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 穆棱市| 宜春市| 郎溪县| 弋阳县| 大厂| 龙井市| 南漳县| 镇平县| 孙吴县| 本溪市| 富蕴县| 内乡县| 商都县| 博罗县| 嵊泗县| 桓仁| 吴川市| 花莲市| 上饶县| 肃北| 平阳县| 安岳县| 克山县| 淮安市| 巴南区| 类乌齐县| 巴彦淖尔市| 丹巴县| 商洛市| 曲沃县| 石阡县| 若尔盖县| 泸州市| 仁布县| 自贡市| 南雄市| 长宁区| 镇康县| 邹平县| 鸡东县| 长沙市|