點擊上方“ Datawhal e ”,選擇“星標 ” 公眾號
第一時間獲取價值內容
概述
-
這篇文章中,我們挑選了24個用于數據科學的Python庫。
-
這些庫有著不同的數據科學功能,例如數據收集,數據清理,數據探索,建模等,接下來我們會分類介紹。
-
您覺得我們還應該包含哪些Python庫?讓我們知道!
介紹
我是Python語言的忠實粉絲,它是我在數據科學方面學到的第一門編程語言。Python有三個特點:
-
它的易用性和靈活性
-
全行業的接受度:它是業內最流行的數據科學語言
-
用于數據科學的龐大數量的Python庫
事實上,有如此多的Python庫,要跟上它們的發展速度可能會變得非常困難。這就是為什么我決定消除這種痛苦,并編輯這24個Python庫。換句話說,在數據科學領域,你掌握這個24個python庫就夠了!
那是對的 - 我根據各自在數據科學中的角色對這些庫進行了分類。所以我提到了用于數據清理,數據操作,可視化,構建模型甚至模型部署(以及其他)的庫。這是一個非常全面的列表,可幫助您開始使用Python進行數據科學之旅。
用于不同數據科學任務的Python庫:
用于數據收集的Python庫:
-
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庫
您是否遇到過一種情況,即您沒有足夠的數據來解決您想要解決的問題?這是數據科學中一個永恒的問題。這就是為什么學習如何提取和收集數據對數據科學家來說是一項非常關鍵的技能。它開辟了以前無法實現的途徑。
所以這里有三個有用的Python庫,用于提取和收集數據。
/* Beautiful?Soup */ 收集數據的最佳方法之一是抓取網站(當然是道德和合法的!)。手動完成需要花費太多的手動工作和時間。美麗的湯是你的救星。
Beautiful Soup是一個HTML和XML解析器,它為解析的頁面創建解析樹,用于從網頁中提取數據。從網頁中提取數據的過程稱為網絡抓取。
使用以下代碼安裝BeautifulSoup:
pip?install?beautifulsoup4
這是一個實現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
它是大規模網絡抓取的框架。它為您提供了有效提取網站數據,根據需要處理數據并將其存儲在首選結構和格式中所需的所有工具。
這是一個實現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 ?*/
我們可以輕松地編寫Python腳本以使用Selenium自動化Web瀏覽器。它為我們有效地提取數據并以我們喜歡的格式存儲數據,以供將來使用。
我最近寫了一篇關于使用Python和Selenium抓取YouTube視頻數據的文章:
-
數據科學項目:使用Python和Selenium對YouTube數據進行刮擦以對視頻進行分類
(https://www.analyticsvidhya.com/blog/2019/05/scraping-classifying-youtube-video-data-python-selenium/)
用于數據清理和操作的Python庫
好吧 - 所以你已經收集了你的數據并準備好潛入。現在是時候清理我們可能面臨的任何混亂數據并學習如何操作它,以便我們的數據可以用于建模。
這里有四個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庫在Python中學習異常檢測的一個很棒的教程
(https://www.analyticsvidhya.com/blog/2019/02/outlier-detection-python-pyod/)
/* NumPy */
NumPy是一個開源庫,有多個貢獻者。它預先安裝了Anaconda和Python,這里是安裝它的代碼:
pip?install?numpy
# 創建數組
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 */ 到目前為止,我們已經討論了如何清理和操作數值數據。但是,如果你正在處理文本數據呢?
spaCy是一個超級有用且靈活的自然語言處理(NLP)庫和框架,用于清理文本文檔以進行模型創建。與用于類似任務的其他庫相比,SpaCy更快。
在Linux中安裝Spacy的代碼:
pip install -U spacy
python?-m?spacy download?en
要在其他操作系統上安裝它,請參考此鏈接(https://spacy.io/usage/)。
-
自然語言處理變得輕松 - 使用SpaCy(在Python中)
用于數據可視化的Python庫
下一個是什么?我在整個數據科學最喜歡的方面 - 數據可視化!數據可視化后,我們的假設將得到直觀的驗證!
這里有三個用于數據可視化的很棒的Python庫。
/* Matplotlib */ Matplotlib是Python中最流行的數據可視化庫。它允許我們生成和構建各種圖表。它可以與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()
既然我們已經介紹了Pandas,NumPy和現在的matplotlib,請查看下面的教程,將這三個Python庫網格化:
-
使用NumPy,Matplotlib和Pandas在Python中進行數據探索的終極指南
/* 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", , 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
-
使用Bokeh進行交互式數據可視化(在Python中)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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