點擊上方“ Datawhal e ”,選擇“星標 ” 公眾號
第一時間獲取價值內(nèi)容
概述
-
這篇文章中,我們挑選了24個用于數(shù)據(jù)科學的Python庫。
-
這些庫有著不同的數(shù)據(jù)科學功能,例如數(shù)據(jù)收集,數(shù)據(jù)清理,數(shù)據(jù)探索,建模等,接下來我們會分類介紹。
-
您覺得我們還應該包含哪些Python庫?讓我們知道!
介紹
我是Python語言的忠實粉絲,它是我在數(shù)據(jù)科學方面學到的第一門編程語言。Python有三個特點:
-
它的易用性和靈活性
-
全行業(yè)的接受度:它是業(yè)內(nèi)最流行的數(shù)據(jù)科學語言
-
用于數(shù)據(jù)科學的龐大數(shù)量的Python庫
事實上,有如此多的Python庫,要跟上它們的發(fā)展速度可能會變得非常困難。這就是為什么我決定消除這種痛苦,并編輯這24個Python庫。換句話說,在數(shù)據(jù)科學領域,你掌握這個24個python庫就夠了!
那是對的 - 我根據(jù)各自在數(shù)據(jù)科學中的角色對這些庫進行了分類。所以我提到了用于數(shù)據(jù)清理,數(shù)據(jù)操作,可視化,構建模型甚至模型部署(以及其他)的庫。這是一個非常全面的列表,可幫助您開始使用Python進行數(shù)據(jù)科學之旅。
用于不同數(shù)據(jù)科學任務的Python庫:
用于數(shù)據(jù)收集的Python庫:
-
Beautiful Soup
-
Scrapy
-
Selenium
用于數(shù)據(jù)清理和操作的Python庫:
-
Pandas
-
PyOD
-
NumPy
-
Spacy
用于數(shù)據(jù)可視化的Python庫:
-
Matplotlib
-
Seaborn
-
Bokeh
用于建模的Python庫:
-
Scikit-learn
-
TensorFlow
-
PyTorch
用于模型可解釋性的Python庫:
-
Lime
-
H2O
用于音頻處理的Python庫:
-
Librosa
-
Madmom
-
pyAudioAnalysis
用于圖像處理的Python庫:
-
OpenCV-Python
-
Scikit-image
-
Pillow
用于數(shù)據(jù)庫的Python庫:
-
Psycopg
-
SQLAlchemy
用于部署的Python庫:
-
Flask
用于數(shù)據(jù)收集的Python庫
您是否遇到過一種情況,即您沒有足夠的數(shù)據(jù)來解決您想要解決的問題?這是數(shù)據(jù)科學中一個永恒的問題。這就是為什么學習如何提取和收集數(shù)據(jù)對數(shù)據(jù)科學家來說是一項非常關鍵的技能。它開辟了以前無法實現(xiàn)的途徑。
所以這里有三個有用的Python庫,用于提取和收集數(shù)據(jù)。
/* Beautiful?Soup */ 收集數(shù)據(jù)的最佳方法之一是抓取網(wǎng)站(當然是道德和合法的!)。手動完成需要花費太多的手動工作和時間。美麗的湯是你的救星。
Beautiful Soup是一個HTML和XML解析器,它為解析的頁面創(chuàng)建解析樹,用于從網(wǎng)頁中提取數(shù)據(jù)。從網(wǎng)頁中提取數(shù)據(jù)的過程稱為網(wǎng)絡抓取。
使用以下代碼安裝BeautifulSoup:
pip?install?beautifulsoup4
這是一個實現(xiàn)Beautiful Soup的簡單代碼,用于從HTML中提取所有anchor標記:
#!/usr/bin/python3
# Anchor extraction from html document
from?bs4?import?BeautifulSoup
from?urllib.request?import?urlopen
with?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的代碼:
pip?install?scrapy
它是大規(guī)模網(wǎng)絡抓取的框架。它為您提供了有效提取網(wǎng)站數(shù)據(jù),根據(jù)需要處理數(shù)據(jù)并將其存儲在首選結構和格式中所需的所有工具。
這是一個實現(xiàn)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中實現(xiàn)它的完美教程:
-
使用Scrapy在Python中進行Web Scraping(有多個示例)
(https://www.analyticsvidhya.com/blog/2017/07/web-scraping-in-python-using-scrapy/)
/*? Selenium ?*/
我們可以輕松地編寫Python腳本以使用Selenium自動化Web瀏覽器。它為我們有效地提取數(shù)據(jù)并以我們喜歡的格式存儲數(shù)據(jù),以供將來使用。
我最近寫了一篇關于使用Python和Selenium抓取YouTube視頻數(shù)據(jù)的文章:
-
數(shù)據(jù)科學項目:使用Python和Selenium對YouTube數(shù)據(jù)進行刮擦以對視頻進行分類
(https://www.analyticsvidhya.com/blog/2019/05/scraping-classifying-youtube-video-data-python-selenium/)
用于數(shù)據(jù)清理和操作的Python庫
好吧 - 所以你已經(jīng)收集了你的數(shù)據(jù)并準備好潛入。現(xiàn)在是時候清理我們可能面臨的任何混亂數(shù)據(jù)并學習如何操作它,以便我們的數(shù)據(jù)可以用于建模。
這里有四個Python庫可以幫助您實現(xiàn)這一目標。請記住,我們將處理現(xiàn)實世界中的結構化(數(shù)字)和文本數(shù)據(jù)(非結構化) - 這個庫列表涵蓋了所有這些。
/* Pandas */ 在數(shù)據(jù)處理和分析方面,沒有什么能比pandas更勝一籌。它是現(xiàn)階段最流行的Python庫。Pandas是用Python語言編寫的,特別適用于操作和分析任務。
Pandas需要預先安裝Python或Anaconda,這里是需要的代碼:
pip?install?pandas
Pandas提供的功能如下:
-
數(shù)據(jù)集加入和合并
-
數(shù)據(jù)結構列刪除和插入
-
數(shù)據(jù)過濾
-
重塑數(shù)據(jù)集
-
DataFrame對象操縱數(shù)據(jù)等等!
這是一篇文章和一個很棒的備忘單,讓你的pandas技能達到最佳狀態(tài):
-
12用于數(shù)據(jù)操作的Python中有用的熊貓技術
(https://www.analyticsvidhya.com/blog/2016/01/12-pandas-techniques-python-data-manipulation/)
-
CheatSheet:使用Python中的Pandas進行數(shù)據(jù)探索
(https://www.analyticsvidhya.com/blog/2015/07/11-steps-perform-data-analysis-pandas-python/)
/* PyOD */
別擔心,PyOD庫可以幫到您。
PyOD是一個全面且可擴展的Python工具包,用于檢測外圍對象。異常檢測基本上是識別與大多數(shù)數(shù)據(jù)顯著不同的稀有項目或觀察。
您可以使用以下代碼下載pyOD:
pip?install?pyod
-
使用PyOD庫在Python中學習異常檢測的一個很棒的教程
(https://www.analyticsvidhya.com/blog/2019/02/outlier-detection-python-pyod/)
/* NumPy */
NumPy是一個開源庫,有多個貢獻者。它預先安裝了Anaconda和Python,這里是安裝它的代碼:
pip?install?numpy
# 創(chuàng)建數(shù)組
import numpy?as?np
x = 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 - b
print(c)
print(a**2)
#output - [1. 1.33333333 1.66666667 4. ]
# [ 1 4 9 36]
還有更多!
/* SpaCy */ 到目前為止,我們已經(jīng)討論了如何清理和操作數(shù)值數(shù)據(jù)。但是,如果你正在處理文本數(shù)據(jù)呢?
spaCy是一個超級有用且靈活的自然語言處理(NLP)庫和框架,用于清理文本文檔以進行模型創(chuàng)建。與用于類似任務的其他庫相比,SpaCy更快。
在Linux中安裝Spacy的代碼:
pip install -U spacy
python?-m?spacy download?en
要在其他操作系統(tǒng)上安裝它,請參考此鏈接(https://spacy.io/usage/)。
-
自然語言處理變得輕松 - 使用SpaCy(在Python中)
用于數(shù)據(jù)可視化的Python庫
下一個是什么?我在整個數(shù)據(jù)科學最喜歡的方面 - 數(shù)據(jù)可視化!數(shù)據(jù)可視化后,我們的假設將得到直觀的驗證!
這里有三個用于數(shù)據(jù)可視化的很棒的Python庫。
/* Matplotlib */ Matplotlib是Python中最流行的數(shù)據(jù)可視化庫。它允許我們生成和構建各種圖表。它可以與Seaborn一起使用。
您可以通過以下代碼安裝matplotlib:
pip?install?matplotlib
以下是我們可以使用matplotlib構建的不同類型的圖表的幾個示例:
# 直方圖
%matplotlib inline
import?matplotlib.pyplot?as?plt
from?numpy.random?import?normal
x = normal(size=100)
plt.hist(x, bins=20)
plt.show()
# 3D圖
from?matplotlib?import?cm
from?mpl_toolkits.mplot3d?import?Axes3D
import?matplotlib.pyplot?as?plt
import?numpy?as?np
fig = 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()
既然我們已經(jīng)介紹了Pandas,NumPy和現(xiàn)在的matplotlib,請查看下面的教程,將這三個Python庫網(wǎng)格化:
-
使用NumPy,Matplotlib和Pandas在Python中進行數(shù)據(jù)探索的終極指南
/* Seaborn */ Seaborn是另一個基于matplotlib的繪圖庫。它是一個python庫,提供高級界面來繪制有吸引力的圖形。matplotlib可以做什么,Seaborn只是以更具視覺吸引力的方式做到這一點。
Seaborn的一些功能是:
-
面向數(shù)據(jù)集的API,用于檢查多個變量之間的關系
-
方便地查看復雜數(shù)據(jù)集的整體結構
-
用于選擇顯示數(shù)據(jù)中圖案的調(diào)色板的工具
您只需使用一行代碼即可安裝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", , 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是一個交互式可視化庫,面向現(xiàn)代Web瀏覽器進行演示。它為大量數(shù)據(jù)集提供了多種圖形的優(yōu)雅構造。
Bokeh可用于創(chuàng)建交互式圖表,儀表板和數(shù)據(jù)應用程序。安裝代碼:
pip?install?bokeh
-
使用Bokeh進行交互式數(shù)據(jù)可視化(在Python中)
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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