讓你事半功倍的小眾 Python 庫
程序君個人微信
和我聊聊編程和創業的事
加好友
作者丨
Parul Pandey
https://medium.com/analytics-vidhya/python-libraries-for-data-science-other-than-pandas-and-numpy-95da30568fad
Python 是世界上發展最快的編程語言之一。它一次又一次地證明了自己在開發人員和跨行業的數據科學中的實用性。Python 及其機器學習庫的整個生態系統使全世界的用戶(無論新手或老手)都願意選擇它。Python 成功和受歡迎的原因之一是存在強大的庫,這些庫使 Python 極具創造力且運行快速。然而,使用 Pandas、Scikit-learn、Matplotlib 等常見庫在解決一些特殊的數據問題時可能並不實用,本文介紹的這些非常見庫可能更有幫助。
WGET
提取數據,特別是從網路中提取數據是數據科學家的重要任務之一。Wget 是一個免費的工具,用於以非互動式方式從 Web 上下載文件。它支持 HTTP、HTTPS 和 FTP 協議,通過 HTTP 代理進行檢索。由於它是非互動式的,即使用戶沒有登錄,它也可以在後台工作。所以,如果你想下載一個網站或一個頁面上的所有圖片,wget 會幫助你。
安裝:
$ pip install wget
示例:
import wget
url = "http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3"
filename = wget.download(url)
100% [................................................] 3841532 / 3841532
filename
"razorback.mp3"
對於那些在 python 中被處理datetimes困擾的人來說,Pendulum 是個好選擇。它是一個 Python 包,用於簡化 datetimes 操作。它是 Python「本機」類(native class)的代替。更多內容,請參閱文檔:
https://um.eustace.io/docs/# installation。
安裝:
$ pip install pendulum
示例:
import wget
url = "http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3"
filename = wget.download(url)
100% [................................................] 3841532 / 3841532
filename
"razorback.mp3"
IMBALANCED-LEARN
可以看出,當每個類的樣本數量相等即平衡時,大多數分類演算法的工作效果最好。但現實生活中充滿了不平衡的數據集,這些數據集對機器學習的學習階段和後續預測都有影響。創建這個庫是為了解決這個問題。它與 scikit-learn 兼容,並且是 scikit-learn-contrib 項目的一部分。下次遇到不平衡的數據集時,可以嘗試一下。
安裝:
installpip
# or
conda
install
-c conda-forge imbalanced-learn示例:
有關用法和示例,請參考:
//imbalancedlearn.org/en/stable/api.html。
FLASHTEXT
在 NLP 任務中,清理文本數據通常需要替換句子中的關鍵詞或從句子中提取關鍵詞。通常,這樣的操作可以用正則表達式來完成,但是如果要搜索的辭彙量過大,操作就會變得麻煩。Python 中基於 FlashText 演算法的 FlashText 模塊,為這種情況提供了一個合適的替代方案。
FlashText 最大的優點是搜索詞數量不影響運行時長。更多相關信息請見:https://flashtext.readthedocs.io/en/latest/#。
安裝:
$ pip install flashtext
示例
提取關鍵詞:
from import # keyword_processor.add_keyword(<unclean name>, <standardised name>) "Big Apple" "New York" "Bay Area" "I love Big Apple and Bay Area." "New York" "Bay Area"
keyword_processor = KeywordProcessor()
keyword_processor.add_keyword(
keyword_processor.add_keyword(
keywords_found = keyword_processor.extract_keywords(
keywords_found
[
替換關鍵詞:
"New Delhi" "NCR region" "I love Big Apple and new delhi." "I love New York and NCR region."keyword_processor.add_keyword(
new_sentence = keyword_processor.replace_keywords(
new_sentence
更多使用示例,請參閱官方文檔。
FUZZYWUZZY
雖然名字聽起來很奇怪,但涉及到字元串匹配時,fuzzywuzzy 是一個非常有用的庫,可以很容易地實現諸如字元串比較比率、token 比率等操作。對於匹配不同資料庫中的記錄也很方便。
安裝:
$ pip install fuzzywuzzy
示例:
from import from import # Simple Ratio "this is a test" "this is a test!" 97 # Partial Ratio "this is a test" "this is a test!" 100
fuzz.ratio(
fuzz.partial_ratio(
更多有趣的例子可以在 GitHub 上找到:
https://github.com/seatgeek/fuzzywuzzy。
PYFLUX
時間序列分析是機器學習領域最常見的問題之一。PyFlux 是 Python 中為處理時間序列問題而創建的開源庫。該庫有一系列極好的時間序列模型,包括但不限於 ARIMA、 GARCH 和 VAR 模型。簡而言之,PyFlux 提供了一個時間序列建模的概率方法。值得嘗試。
安裝:
pip
示例:
有關用法和示例,請參考:
https://pyflux.readthedocs.io/en/latest/index.html。
IPYVOLUME
交流結果是數據科學的一個基本方面。能夠將結果可視化是一個很大的優勢。IPyvolume 是一個用於在 Jupyter notebook 中可視化 3d 體積和字形(如 3d 散點圖)的 Python 庫,只需少量配置即可。然而,它目前還處於前 1.0 版。IPyvolume 的 volshow 之於 3d 數組,就像 matplotlib 的 imshow 之於 2d 數組一樣。更多相關信息請見:https://ipyvolume.readthedocs.io/en/latest/?badge=latest。
安裝:
Using pip
$ pip install ipyvolume
Conda/Anaconda
$ conda install -c conda-forge ipyvolume
DASH
Dash 是一個用於構建 web 應用程序的高效 Python 框架。它寫在 Flask、Plotly.js 和 React.js 之上,將下拉列表、滑塊和圖形等 UI 元素與你的分析性 Python 代碼直接相連,無需 javascript。Dash 非常適合構建數據可視化應用程序。然後這些應用程序可以在 web 瀏覽器中進行渲染。用戶指南請見:https://dash.plot.ly/。
安裝:
install 0.29.0 # The core dash backendpip
pip
install
dash-html-components==0.13.2
# HTML components
pip
install
dash-core-components==0.36.0
# Supercharged components
pip
install
dash-table
==3.1.3
# Interactive DataTable component (new!)
示例:
下圖示例顯示了具有下拉功能的高度交互圖。當用戶在下拉列表中選擇一個值時,應用程序代碼會動態地將 Google Finance 的數據導出為 Pandas DataFrame。資源:
https://gist.github.com/chriddyp/3d2454905d8f01886d651f207e2419f0。
GYM
來自 OpenAI 的 Gym 是一個開發和對比強化學習演算法的工具包。它兼容於任何數值計算庫,如 TensorFlow 或 Theano。Gym 庫是一個測試問題的集合,也被稱為環境——可以用它來計算你的強化學習演算法。這些環境有一個共享的介面,允許你寫通用演算法。
安裝:
pip
示例:
運行環境 CartPole-v0 的 1000 個時間步驟實例,在每個步驟渲染環境。
閱讀其他環境請見:
https://gym.openai.com/。
結論
這些是作者為數據科學挑選的實用 python 庫,而非常見的 numpy、panda 等。值得一試
推薦↓↓↓
長
按
關
注
??
【
16個技術公眾號
】都在這裡!
涵蓋:程序員大咖、源碼共讀、程序員共讀、數據結構與演算法、黑客技術和網路安全、大數據科技、編程前端、Java、Python、Web編程開發、Android、iOS開發、Linux、資料庫研發、幽默程序員等。
※想喝口雞湯還是挺難的。。。
※一篇文章踩遍Python中的坑
TAG:Python開發 |