收藏!盤點(diǎn)實(shí)用的數(shù)據(jù)科學(xué)Python庫
數(shù)據(jù)科學(xué)是一門研究數(shù)據(jù)并從中挖掘信息的學(xué)科。它不要求自創(chuàng)或?qū)W習(xí)新的算法,只需要知道怎么樣研究數(shù)據(jù)并解決問題。這一過程的關(guān)鍵點(diǎn)之一就在于使用合適的庫。本文概述了數(shù)據(jù)科學(xué)中常用的、并且有一定重要性的庫。在進(jìn)入正題之前,本文先介紹了解決數(shù)據(jù)科學(xué)問題的5個(gè)基本步驟。這些步驟是筆者自己總結(jié)撰寫的,并無對錯(cuò)之分。步驟的正確與否取決于數(shù)據(jù)的研究方法。
數(shù)據(jù)科學(xué)的五個(gè)重要步驟包括:
- 獲取數(shù)據(jù)
- 清理數(shù)據(jù)
- 探索數(shù)據(jù)
- 構(gòu)建數(shù)據(jù)
- 呈現(xiàn)數(shù)據(jù)
這五個(gè)步驟只是經(jīng)驗(yàn)之談,并不是什么標(biāo)準(zhǔn)答案。但是如果仔細(xì)思考,就會(huì)發(fā)現(xiàn)這五個(gè)步驟是非常合理的。
1. 獲取數(shù)據(jù)
獲取數(shù)據(jù)是解決數(shù)據(jù)科學(xué)問題的關(guān)鍵一步。你需要提出一個(gè)問題并最終解決它。這取決于你是如何以及從何處獲取數(shù)據(jù)的。獲取數(shù)據(jù)最好的方法就是從Kaggle上下載或從網(wǎng)絡(luò)上抓取。
當(dāng)然,你也可以采用適當(dāng)?shù)姆椒ê凸ぞ邚木W(wǎng)絡(luò)上抓取數(shù)據(jù)。
網(wǎng)絡(luò)數(shù)據(jù)抓取最重要、最常用的庫包括:
- Beautiful Soup
- Requests
- Pandas
Beautiful Soup是一個(gè)可從HTML和XML文件中提取數(shù)據(jù)的Python庫。推薦讀者閱讀Beautiful Soup庫官方文檔。
如果已經(jīng)安裝Python,只需輸入以下命令,即可安裝Beautiful Soup。文中所涉及的庫全部給出了安裝方法。但是我更推薦讀者使用Google Colab,便于練習(xí)代碼。在Google Colab中,無需手動(dòng)安裝,只需要輸入“importlibrary_name”,Colab就會(huì)自動(dòng)安裝。
- pip install beautifulsoup4
導(dǎo)入Beautiful Soup庫:
- from bs4 import BeautifulSoupBeautifulSoupSoup = BeautifulSoup(page_name.text, ‘html.parser’)
Python的Requests庫采用更加簡單易用的方式發(fā)送HTTP請求。Requests庫中有很多種方法,其中最常用的是request.get()。在URL轉(zhuǎn)發(fā)成功或失敗的情況下,request.get()都能夠返回URL轉(zhuǎn)發(fā)狀態(tài)。推薦讀者閱讀Requests庫官方文檔了解更多信息
(https://realpython.com/python-requests/?source=post_page-----a58e90f1b4ba----------------------)。
安裝Requets:
- pip install requests
導(dǎo)入Requests庫:
- import requestsrequestspaga_name = requests.get('url_name')
Pandas是一種方便易用的高性能數(shù)據(jù)結(jié)構(gòu),同時(shí)也是Python編程語言分析工具。Pandas提供了一種能夠清晰、簡潔地存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)框架。Pandas庫官方文檔如下:
https://pandas.pydata.org/pandas-docs/stable/?source=post_page-----a58e90f1b4ba----------------------
安裝Pandas:
- pip install pandas
導(dǎo)入Pandas庫:
- import pandas as pd
2. 清理數(shù)據(jù)
清理數(shù)據(jù)有許多重要的步驟,往往包括清除重復(fù)行、清除異常值、查找缺失值和空值,以及將對象值轉(zhuǎn)換成空值并繪制成圖表等。
數(shù)據(jù)清理常用的庫包括:
- Pandas
- NumPy
Pandas可以說是數(shù)據(jù)科學(xué)中的“萬金油”——到處都可用。關(guān)于Pandas的介紹詳見上文,此處不再贅述。
NumPy即Numeric Python,是一個(gè)支持科學(xué)計(jì)算的Python庫。眾所周知,Python本身并不支持矩陣數(shù)據(jù)結(jié)構(gòu),而Python中的NumPy庫則支持創(chuàng)建和運(yùn)行矩陣計(jì)算。NumPy庫官方文檔如下:
https://numpy.org/devdocs/?source=post_page-----a58e90f1b4ba----------------------
運(yùn)行以下命令下載NumPy(確保已經(jīng)安裝了Python):
- python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
導(dǎo)入NumPy庫:
- import numpy as np
3. 探索數(shù)據(jù)
探索性數(shù)據(jù)分析(Exploratory Data Analysis, EDA)是用于增強(qiáng)信息索引理解的工具,通過有規(guī)律地刪減和用圖表繪制索引基本特征實(shí)現(xiàn)。使用EDA能夠幫助用戶更加深入、清晰地探索數(shù)據(jù),展現(xiàn)重要信息采集的發(fā)布或情況。
運(yùn)行EDA常用的庫包括:
- Pandas
- Seaborn
- Matplotlib.pyplot
Pandas:詳見上文。
Seaborn是一個(gè)Python數(shù)據(jù)可視化庫,為繪制數(shù)據(jù)圖表提供了一個(gè)高級接口。安裝最新版本的Seaborn:
- pip install seaborn
推薦讀者閱讀Seaborn官方文檔:
https://seaborn.pydata.org/examples/index.html?source=post_page-----a58e90f1b4ba----------------------#example-gallery
使用Seaborn,可以輕松繪制條形圖、散點(diǎn)圖、熱力圖等圖表。導(dǎo)入Seaborn:
- import seaborn as sns
Matplotlib是一個(gè)Python 2D圖形繪圖庫,能夠在多種環(huán)境中繪制圖表,可替代Seaborn。事實(shí)上,Seaborn是基于Matplotlib開發(fā)的。
安裝Matplotlib:
- python -m pip install -U matplotlib
推薦閱讀Matplotlib官方文檔:
https://matplotlib.org/users/index.html?source=post_page-----a58e90f1b4ba----------------------
導(dǎo)入Matplotlib.pyplot庫:
- import matplotlib.pyplot as plt
4. 構(gòu)建模型
構(gòu)建模型是數(shù)據(jù)科學(xué)中的關(guān)鍵一步。由于這一步要求根據(jù)要解決的問題和所獲取的數(shù)據(jù)來構(gòu)建機(jī)器學(xué)習(xí)模型,所以和其他步驟相比難度更大。在這一步中,問題陳述是至關(guān)重要的一點(diǎn),因?yàn)樗鼤?huì)影響對問題的定義和提出的解決方法。網(wǎng)絡(luò)上大部分公開的數(shù)據(jù)集都是基于某一個(gè)問題收集的,因此解決問題的能力就尤為重要。而且,由于沒有某個(gè)特定的算法最適合自己,你需要在多種算法中進(jìn)行選擇,考慮數(shù)據(jù)適合用回歸、分類、聚類還是降維算法。
選擇算法經(jīng)常是一件讓人頭疼的事。讀者可以使用SciKit learn算法選擇路徑圖來記錄追蹤哪個(gè)算法的性能最優(yōu)。下圖展示了一張SciKit learn的路徑圖:
來源:scikit learn
不難猜出,建模時(shí)最常用的庫是:
(1) SciKit learn
SciKit learn是Python中一個(gè)便于使用的構(gòu)建機(jī)器學(xué)習(xí)模型的庫。它是基于NumPy、SciPy和Matplotlib開發(fā)的。SciKit learn庫官方文檔如下:
https://scikit-learn.org/stable/?source=post_page-----a58e90f1b4ba----------------------
導(dǎo)入scikit learn:
- import sklearn
安裝scikit learn:
- pip install -U scikit-learn
5. 呈現(xiàn)數(shù)據(jù)
這是數(shù)據(jù)科學(xué)的最后一步,也是很多人不想做的一步——畢竟沒有人想要公開發(fā)表他們的數(shù)據(jù)發(fā)現(xiàn)。呈現(xiàn)數(shù)據(jù)也是有法可循的,并且這個(gè)方法極為重要,因?yàn)闊o論如何,成果最終還是要向人們展示的。而且由于人們并不關(guān)心所使用的的算法,他們只關(guān)心結(jié)果,所以展示還要做到簡潔明了。為了展現(xiàn)數(shù)據(jù)成果,推薦讀者安裝Jupyter notebook:
https://jupyter.org/install.html?source=post_page-----a58e90f1b4ba----------------------
同時(shí),安裝如下指令給notebook配備展示選項(xiàng):
- pip install RISE
閱讀文章:
http://www.blog.pythonlibrary.org/2018/09/25/creating-presentations-with-jupyter-notebook/,了解更多如何使用notebook做出精彩展示的教程。務(wù)必遵循教程的步驟。讀者還可以觀看Youtube的視頻進(jìn)行學(xué)習(xí):
https://mp.weixin.qq.com/s?__biz=MzI2NjkyNDQ3Mw==&mid=2247491724&idx=2&sn=84ec47e8fa0cb390f8031225317fa1c5&chksm=ea84185addf3914c71e5c3bcc83e7bcf7655c57a1a125c87961cf0f9eba9f1f4c68f2a72e5d4&mpshare=1&scene=23&srcid=&sharer_sharetime=1572619264987&sharer_shareid=9603544ecd5d7f3dc66603ae089636f4#rd
來源:LiveLessons
以上就是本文全部內(nèi)容。本文從最基礎(chǔ)的內(nèi)容開始介紹,讀完全文,讀者已經(jīng)知道了在數(shù)據(jù)科學(xué)中如何、在何時(shí)、以及在哪一步使用Python庫。