亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統(tǒng) 2352 0

全文共3733字,預計學習時長7分鐘

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

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

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

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

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

目錄

1. 為何選擇Python?

2. 安裝Python

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

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

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

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

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

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

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

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

11. Python中的機器學習

12. Python的深度學習

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

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

1. 為何選擇Python?

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

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

關(guān)于Python的幾點重要事項需要注意。

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

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

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

2. 安裝Python

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

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

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

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

包管理器

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

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

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

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

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

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

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

在終端

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

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

使用文本編輯器

如果你在文本文件中編寫一系列Python命令并使用.py擴展名保存它,則可以使用終端導航到該文件,并通過輸入python YOUR_FILE_NAME.py來運行該程序。

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

在IDE中

IDE是一種專業(yè)級軟件,可以進行軟件項目管理。

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

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

Jupyter Notebooks

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

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

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

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

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

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

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

我們在數(shù)據(jù)科學中需要做的最常見的數(shù)學運算是矩陣乘法,計算向量的點積,改變數(shù)組的數(shù)據(jù)類型以及創(chuàng)建數(shù)組!

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

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

以下是如何在NumPy中進行矩陣乘法:

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

Scipy包中包含專門用于統(tǒng)計的模塊(包的代碼的子部分)。

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

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

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

數(shù)據(jù)科學家必須花費大量的時間來清理和整理數(shù)據(jù)。幸運的是,Pandas軟件包可以幫助我們用代碼而不是手工來完成這項工作。

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

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

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

使用方括號選擇一列:

通過組合其他列來創(chuàng)建新列:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

生存分析有很多應(yīng)用。我們可以用它來預測客戶流失(當客戶取消訂閱時)以及零售商店何時可能會被盜竊。

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

11. Python中的機器學習

這是一個重要的主題,機器學習正在風靡世界,是數(shù)據(jù)科學家工作的重要組成部分。

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

Python有兩個非常好的機器學習包。

Scikit-Learn

在使用Python進行機器學習的時候都會花大部分時間用于使用Scikit-Learn包(有時縮寫為sklearn)。

這個包實現(xiàn)了一大堆機器學習算法,并通過一致的語法公開它們。這使得數(shù)據(jù)科學家很容易充分利用每種算法。

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

實例化并訓練一個模型:

使用metrics模塊測試模型的工作情況:

XGBoost

在Python中常用于機器學習的第二個包是XGBoost。

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

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

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

12. Python中的深度學習

Scikit-Learn中提供的機器學習算法幾乎可以滿足任何問題。話雖這么說,但有時你需要使用最先進的算法。

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

但是很難說神經(jīng)網(wǎng)絡(luò)正在做什么以及它為什么這樣做。因此,它們在金融、醫(yī)學、法律和相關(guān)專業(yè)中的使用并未得到廣泛認可。

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

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

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

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

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

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

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

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

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

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

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


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕一区二区区免 | 国产高清自拍视频 | 欧美一区二区三区香蕉视 | 国产精品一区二区在线播放 | 操视频网站 | 亚洲色视频 | 亚洲韩国日本一级二级r级 亚洲韩精品欧美一区二区三区 | 麻豆国产精品免费视频 | 国产精品欧美久久久久天天影视 | 国产福利视频一区二区三区 | 奇米色视频 | 亚洲国产综合网 | 97久久人人爽人人爽人人 | 青青热在线观看视频精品 | 久久免费精品国产视频 | 国产精品成人一区二区三区 | 五月天婷婷视频 | 操你妹影院 | 久久中文字幕久久久久 | 国产福利精品在线 | 中文字幕精品一区二区精品 | 一级特黄性色生活片一区二区 | 欧洲成人全免费视频网站 | 国产天堂视频 | 中文字幕一区二区三区四区五区人 | 午夜影院一级片 | 欧美seav在线 | 五月天婷婷视频 | 91在线看片 | ass最极品女人下部pic | 精品无人乱码一区二区三区 | aⅴ在线免费观看 | 99国产精品久久 | 欧美一级在线看 | 国产精品国内免费一区二区三区 | 久久久久久91 | 天天草天天草 | 最新国产在线精品91尤物 | 国产一级片子 | 波多野结衣一区二区三区四区 | 成人免费视频一区二区 |