這些Python庫雖然冷門,但功能真的很強大!
鏈接:
https://opensource.com/article/18/11/python-libraries-data-science
在本文中,我們將介紹一些用于數(shù)據(jù)科學方面的Python庫,它們并不像pandas、scikit-learn 和 matplotlib那么知名,但一樣非常實用的庫。歡迎大家評論區(qū)補充~
1. Wget
提取數(shù)據(jù),尤其是從網(wǎng)絡上提取數(shù)據(jù),是數(shù)據(jù)科學家的主要任務之一。Wget是一個免費的實用程序,用于從Web上進行非交互式文件下載。它支持HTTP,HTTPS和FTP協(xié)議,以及通過HTTP代理進行檢索。由于它是非交互式的,即使用戶沒有登錄也可以在后臺運行。因此,如果你需要下載一個網(wǎng)站或頁面中的所有圖片時,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
2、Pendulum
如果你還在苦惱Python中時間日期的處理,那么你需要Pendulum。它是一個Python包,用于簡化datetime操作。它是Python原生類的一個臨時替代。
安裝:
$?pip?install?pendulum
例子:
import?pendulum
dt_toronto?=?pendulum.datetime(2012,?1,?1,?tz=?America/Toronto?)
dt_vancouver?=?pendulum.datetime(2012,?1,?1,?tz=?America/Vancouver?)
print(dt_vancouver.diff(dt_toronto).in_hours())
3
3、Imbalanced-learn
大多數(shù)分類算法在每個類的樣本數(shù)量幾乎都是一樣的情況下是最有效的,但實際工作中大多數(shù)是不平衡的數(shù)據(jù)集,這些數(shù)據(jù)集對機器學習算法的學習階段和后續(xù)預測都可能有影響。幸運的是,創(chuàng)imbalance -learn庫可以解決這個問題。它與scikit-learn兼容,是scikit- learning -contrib項目的一部分。下次遇到不平衡的數(shù)據(jù)集的情況,請別忘了它。
安裝:
pip?install?-U?imbalanced-learn
#?or
conda?install?-c?conda-forge?imbalanced-learn
4、FlashText
在自然語言處理(NLP)任務中清理文本數(shù)據(jù)通常需要替換關鍵字或從句子中提取關鍵字。通常,這樣的操作可以用正則表達式來完成,但是如果要搜索的詞匯量達到數(shù)千,那么這些操作就會變得很繁瑣。
Python的FlashText模塊基于FlashText算法,為這種情況提供了合適的替代方案。FlashText最棒的地方是,它的運行與你的搜索量無關。
安裝:
$?pip?install?flashtext
例子:
1)提取關鍵詞
from?flashtext?import?KeywordProcessor
keyword_processor?=?KeywordProcessor()
#?keyword_processor.add_keyword(,?)
keyword_processor.add_keyword(?Big?Apple?,??New?York?)
keyword_processor.add_keyword(?Bay?Area?)
keywords_found?=?keyword_processor.extract_keywords(?I?love?Big?Apple?and?Bay?Area.?)
keywords_found
[?New?York?,??Bay?Area?]
2)替代關鍵詞
keyword_processor.add_keyword(?New?Delhi?,??NCR?region?)
new_sentence?=?keyword_processor.replace_keywords(?I?love?Big?Apple?and?new?delhi.?)
new_sentence
?I?love?New?York?and?NCR?region.
5、FuzzyWuzzy
這個名稱聽起來很奇怪,但是在字符串匹配方面,F(xiàn)uzzyWuzzy是一個非常有用的庫。它可以方便地實現(xiàn)字符串匹配率等操作。它還可以方便地匹配保存在不同數(shù)據(jù)庫中的記錄。
安裝:
$?pip?install?fuzzywuzzy
例子:
from?fuzzywuzzy?import?fuzz
from?fuzzywuzzy?import?process
#?Simple?Ratio
fuzz.ratio("this?is?a?test",?"this?is?a?test!")
97
#?Partial?Ratio
fuzz.partial_ratio("this?is?a?test",?"this?is?a?test!")
?100
6、PyFlux
時間序列分析是機器學習中最常見的問題之一。PyFlux是Python中的一個開源庫,它是為處理時間序列問題而構建的。該庫擁有一系列很優(yōu)秀的現(xiàn)代時間序列模型,諸如ARIMA、GARCH和VAR模型等。簡而言之,PyFlux提供了一種時間序列建模的概率方法。
安裝:
pip?install?pyflux
7、IPyvolume
數(shù)據(jù)科學很重要的一部分就是交流結果,可視化結果顯示可以給你提供一個巨大的優(yōu)勢。IPyvolume是一個Python庫,用于可視化Jupyter筆記本中的3D容量和符號(例如3D散點圖),只需少量的配置。
安裝 :
Using?pip
$?pip?install?ipyvolume
Conda/Anaconda
$?conda?install?-c?conda-forge?ipyvolume
例子:

繪制

8、Dash
Dash是一個用于構建web應用程序的高效Python框架。它基于FlaskPlotty.js 和 Response.js 之上。將下拉菜單和圖形等UI元素與Python分析代碼捆綁在一起,而不需要使用JavaScript。Dash非常適合構建可以在web瀏覽器中呈現(xiàn)的數(shù)據(jù)可視化應用程序。
安裝:
pip?install?dash==0.29.0??#?The?core?dash?backend
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!)
例子:
下面的示例顯示了具有下拉功能的高度交互式圖。當用戶在下拉菜單中選擇一個值時,應用程序代碼將動態(tài)地將數(shù)據(jù)從Google Finance 導出到panda DataFrame。

9、Gym
Gym是開發(fā)和對比強化學習算法的工具,它兼容任何數(shù)據(jù)科學庫,如TensorFlow或Theano。是一個測試問題的集合,也叫環(huán)境,你可以用它來計算強化學習算法。這些環(huán)境有一個共享接口,允許用戶編寫通用算法。
安裝:
pip?install?gym
例子:
以下示例將在 CartPole-v0環(huán)境中,運行 1000 次,在每一步渲染環(huán)境。

