我是Python語言的忠實粉絲,它是我在數據科學方面學到的第一門編程語言。Python有三個特色:css
它的易用性和靈活性 html
全行業的接受度:它是業內最流行的數據科學語言 python
用於數據科學的龐大數量的Python庫 web
事實上,有如此多的Python庫,要跟上它們的發展速度可能會變得很是困難。這就是爲何我決定消除這種痛苦,並編輯這24個Python庫。換句話說,在數據科學領域,你掌握這個24個python庫就夠了!數據庫
那是對的 - 我根據各自在數據科學中的角色對這些庫進行了分類。因此我提到了用於數據清理,數據操做,可視化,構建模型甚至模型部署(以及其餘)的庫。這是一個很是全面的列表,可幫助您開始使用Python進行數據科學之旅。編程
用於數據收集的Python庫:api
Beautiful Soup 數組
Scrapy 瀏覽器
Selenium 網絡
用於數據清理和操做的Python庫:
Pandas
PyOD
NumPy
Spacy
用於數據可視化的Python庫:
Matplotlib
Seaborn
Bokeh
用於建模的Python庫:
Scikit-learn
TensorFlow
PyTorch
用於模型可解釋性的Python庫:
Lime
H2O
用於音頻處理的Python庫:
Librosa
Madmom
pyAudioAnalysis
用於圖像處理的Python庫:
OpenCV-Python
Scikit-image
Pillow
用於數據庫的Python庫:
Psycopg
SQLAlchemy
用於部署的Python庫:
Flask
您是否遇到過一種狀況,即您沒有足夠的數據來解決您想要解決的問題?這是數據科學中一個永恆的問題。這就是爲何學習如何提取和收集數據對數據科學家來講是一項很是關鍵的技能。它開闢了之前沒法實現的途徑。
因此這裏有三個有用的Python庫,用於提取和收集數據。
/* Beautiful Soup */
收集數據的最佳方法之一是抓取網站(固然是道德和合法的!)。手動完成須要花費太多的手動工做和時間。美麗的湯是你的救星。
Beautiful Soup是一個HTML和XML解析器,它爲解析的頁面建立解析樹,用於從網頁中提取數據。從網頁中提取數據的過程稱爲網絡抓取。
使用如下代碼安裝BeautifulSoup:
pip install beautifulsoup4
這是一個實現Beautiful Soup的簡單代碼,用於從HTML中提取全部anchor標記:
#!/usr/bin/python3
# Anchor extraction from html documentfrom bs4 import BeautifulSoupfrom urllib.request import urlopenwith urlopen('LINK') as response:soup = BeautifulSoup(response, 'html.parser')for anchor in soup.find_all('a'):print(anchor.get('href', '/'))
我建議經過如下文章來學習如何在Python中使用BeautifulSoup:
使用BeautifulSoup在Python中進行Web Scraping的初學者指南
(https://www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python/)
/* Scrapy */
Scrapy是另外一個用於Web抓取的超級有用的Python庫。它是一個開源和協做框架,用於從網站中提取您須要的數據。它使用起來快速而簡單。
這是安裝Scrapy的代碼:
pip install scrapy
它是大規模網絡抓取的框架。它爲您提供了有效提取網站數據,根據須要處理數據並將其存儲在首選結構和格式中所需的全部工具。
這是一個實現Scrapy的簡單代碼:
import scrapy
class Spider(scrapy.Spider):name = 'NAME'start_urls = ['LINK']def parse(self, response):for title in response.css('.post-header>h2'):yield {'title': title.css('a ::text').get()}for next_page in response.css('a.next-posts-link'):yield response.follow(next_page, self.parse)
這是學習Scrapy並在Python中實現它的完美教程:
使用Scrapy在Python中進行Web Scraping(有多個示例)
(https://www.analyticsvidhya.com/blog/2017/07/web-scraping-in-python-using-scrapy/)
/* Selenium */
Selenium是一種用於自動化瀏覽器的流行工具。它主要用於行業測試,但對於網絡抓取也很是方便。實際上,Selenium在IT領域變得很是受歡迎,因此我相信不少人至少會據說過它。
咱們能夠輕鬆地編寫Python腳本以使用Selenium自動化Web瀏覽器。它爲咱們有效地提取數據並以咱們喜歡的格式存儲數據,以供未來使用。
我最近寫了一篇關於使用Python和Selenium抓取YouTube視頻數據的文章:
數據科學項目:使用Python和Selenium對YouTube數據進行刮擦以對視頻進行分類
(https://www.analyticsvidhya.com/blog/2019/05/scraping-classifying-youtube-video-data-python-selenium/)
好吧 - 因此你已經收集了你的數據並準備好潛入。如今是時候清理咱們可能面臨的任何混亂數據並學習如何操做它,以便咱們的數據能夠用於建模。
這裏有四個Python庫能夠幫助您實現這一目標。請記住,咱們將處理現實世界中的結構化(數字)和文本數據(非結構化) - 這個庫列表涵蓋了全部這些。
/* Pandas */
在數據處理和分析方面,沒有什麼能比pandas更勝一籌。它是現階段最流行的Python庫。Pandas是用Python語言編寫的,特別適用於操做和分析任務。
Pandas須要預先安裝Python或Anaconda,這裏是須要的代碼:
pip install pandas
Pandas提供的功能以下:
數據集加入和合並
數據結構列刪除和插入
數據過濾
重塑數據集
DataFrame對象操縱數據等等!
這是一篇文章和一個很棒的備忘單,讓你的pandas技能達到最佳狀態:
12用於數據操做的Python中有用的熊貓技術
(https://www.analyticsvidhya.com/blog/2016/01/12-pandas-techniques-python-data-manipulation/)
CheatSheet:使用Python中的Pandas進行數據探索
(https://www.analyticsvidhya.com/blog/2015/07/11-steps-perform-data-analysis-pandas-python/)
/* PyOD */
在檢測異常值時苦苦掙扎?你不是一我的。這是有抱負(甚至已創建)數據科學家的常見問題。你如何定義異常值?
別擔憂,PyOD庫能夠幫到您。
PyOD是一個全面且可擴展的Python工具包,用於檢測外圍對象。異常檢測基本上是識別與大多數數據顯着不一樣的稀有項目或觀察。
您可使用如下代碼下載pyOD:
pip install pyod
想了解PyOD如何工做以及如何本身實現?那麼,下面的指南將回答你全部的PyOD問題:
使用PyOD庫在Python中學習異常檢測的一個很棒的教程
(https://www.analyticsvidhya.com/blog/2019/02/outlier-detection-python-pyod/)
/* NumPy */
像Pandas同樣,NumPy是一個很是受歡迎的Python庫。NumPy引入了支持大型多維數組和矩陣的函數。它還引入了高級數學函數來處理這些數組和矩陣。
NumPy是一個開源庫,有多個貢獻者。它預先安裝了Anaconda和Python,這裏是安裝它的代碼:
pip install numpy
# 建立數組
import numpy as npx = np.array([1, 2, 3])print(x)y = np.arange(10)print(y)# output - [1 2 3]# [0 1 2 3 4 5 6 7 8 9]# 基本操做a = np.array([1, 2, 3, 6])b = np.linspace(0, 2, 4)c = a - bprint(c)print(a**2)#output - [1. 1.33333333 1.66666667 4. ]# [ 1 4 9 36]
還有更多!
/* SpaCy */
到目前爲止,咱們已經討論瞭如何清理和操做數值數據。可是,若是你正在處理文本數據呢?
spaCy是一個超級有用且靈活的天然語言處理(NLP)庫和框架,用於清理文本文檔以進行模型建立。與用於相似任務的其餘庫相比,SpaCy更快。
在Linux中安裝Spacy的代碼:
pip install -U spacy
python -m spacy download en
要在其餘操做系統上安裝它,請參考此連接(https://spacy.io/usage/)。
固然,咱們爲您學習spaCy提供了保障:
天然語言處理變得輕鬆 - 使用SpaCy(在Python中)
(https://www.analyticsvidhya.com/blog/2017/04/natural-language-processing-made-easy-using-spacy-%e2%80%8bin-python/)下一個是什麼?我在整個數據科學最喜歡的方面 - 數據可視化!數據可視化後,咱們的假設將獲得直觀的驗證!
這裏有三個用於數據可視化的很棒的Python庫。
/* Matplotlib */
Matplotlib是Python中最流行的數據可視化庫。它容許咱們生成和構建各類圖表。它能夠與Seaborn一塊兒使用。
您能夠經過如下代碼安裝matplotlib:
pip install matplotlib
如下是咱們可使用matplotlib構建的不一樣類型的圖表的幾個示例:
# 直方圖
%matplotlib inlineimport matplotlib.pyplot as pltfrom numpy.random import normalx = normal(size=100)plt.hist(x, bins=20)plt.show()
# 3D圖
from matplotlib import cmfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as pltimport numpy as npfig = plt.figure()ax = fig.gca(projection='3d')X = np.arange(-10, 10, 0.1)Y = np.arange(-10, 10, 0.1)X, Y = np.meshgrid(X, Y)R = np.sqrt(X**2 + Y**2)Z = np.sin(R)surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm)plt.show()
既然咱們已經介紹了Pandas,NumPy和如今的matplotlib,請查看下面的教程,將這三個Python庫網格化:
使用NumPy,Matplotlib和Pandas在Python中進行數據探索的終極指南
(https://www.analyticsvidhya.com/blog/2015/04/comprehensive-guide-data-exploration-sas-using-python-numpy-scipy-matplotlib-pandas/)/* Seaborn */
Seaborn是另外一個基於matplotlib的繪圖庫。它是一個python庫,提供高級界面來繪製有吸引力的圖形。matplotlib能夠作什麼,Seaborn只是以更具視覺吸引力的方式作到這一點。
Seaborn的一些功能是:
面向數據集的API,用於檢查多個變量之間的關係
方便地查看複雜數據集的總體結構
用於選擇顯示數據中圖案的調色板的工具
您只需使用一行代碼便可安裝Seaborn:
pip install seaborn
讓咱們經過一些很酷的圖表來看看seaborn能作什麼:
import seaborn as sns
sns.set()tips = sns.load_dataset("tips")sns.relplot(x="total_bill", y="tip", col="time",hue="smoker", style="smoker", size="size",data=tips);
這是另外一個例子:
import seaborn as sns
sns.catplot(x="day", y="total_bill", hue="smoker",kind="violin", split=True, data=tips);
/* Bokeh */
Bokeh是一個交互式可視化庫,面向現代Web瀏覽器進行演示。它爲大量數據集提供了多種圖形的優雅構造。
Bokeh可用於建立交互式圖表,儀表板和數據應用程序。安裝代碼:
pip install bokeh