數(shù)據(jù)科學(xué)中一些不常用但很有用的Python庫(kù)
2020-04-20 來(lái)源:raincent

提到數(shù)據(jù)科學(xué)的python包,大家想到的估計(jì)是numpy,pandas,scikit-learn之類的,這里給大家介紹一些不常用,但是非常有用的python包,就像是癢癢撓,雖然大部分時(shí)間用不上,但是真要用起來(lái),還是挺爽的。

作者:AI公園
Python是個(gè)了不起的語(yǔ)言。事實(shí)上,這是世界上發(fā)展最快的語(yǔ)言之一(感覺(jué)沒(méi)有之一,就是最快的)。在數(shù)據(jù)科學(xué)領(lǐng)域和開(kāi)發(fā)領(lǐng)域,一次又一次的為我們提供便利。整個(gè)Python的生態(tài)和庫(kù)使之成為所有用戶都適用(初學(xué)者和高級(jí)用戶)。Python之所以這么成功,原因之一就在于它的庫(kù),讓Python變得靈活快速。
這篇文章中,我們會(huì)看一些不太常用的數(shù)據(jù)科學(xué)的庫(kù),除了pandas,scikit-learn,matplotlib等。盡管說(shuō)到數(shù)據(jù)科學(xué),我們想到的就是pandas和scikit-learn,了解一下其他的python的庫(kù)也沒(méi)什么壞處。下面就是另外一些數(shù)據(jù)科學(xué)中可能會(huì)用到的Python庫(kù)。
Wget
從網(wǎng)絡(luò)獲取數(shù)據(jù)是Python科學(xué)家非常重要的任務(wù)。Wget是一個(gè)免費(fèi)的工具,可以從Web上非交互式的下載文件,支持HTTP, HTTPS, 和 FTP協(xié)議,同樣支持HTTP代理。由于是非交互式的,所以可以后臺(tái)運(yùn)行,用戶沒(méi)有登錄也可以。所以下次你需要從網(wǎng)上下載圖片的時(shí)候,可以試試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'
Pendulum
這個(gè)是干啥的呢,你在處理日期時(shí)間的時(shí)候搞得頭大的時(shí)候,Pendulum就很適合你,這包是用來(lái)簡(jiǎn)化日期時(shí)間的操作的,具體使用可以看 這里 。
安裝:
- $ 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
imbalanced-learn
大多數(shù)的分類問(wèn)題中,當(dāng)所有的類別中的樣本的數(shù)量大致相同時(shí),效果是最好的,也就是樣本均衡。但是在實(shí)際情況中,往往都是非均衡的數(shù)據(jù),這往往會(huì)影響訓(xùn)練的過(guò)程以及后面的預(yù)測(cè)。幸好,這個(gè)庫(kù)可以幫我們解決這個(gè)問(wèn)題。這個(gè)和scikit-learn兼容,是scikit-learn-contrib的一部分。下次可以試試。
安裝:
- pip install -U imbalanced-learn
- # or
- conda install -c conda-forge imbalanced-learn
例子:
請(qǐng)參考文檔。
FlashText
在清洗NLP相關(guān)的數(shù)據(jù)的時(shí)候,往往需要替換一些關(guān)鍵詞或者提取一些關(guān)鍵詞。通常,可以用正則表達(dá)式來(lái)干這個(gè)活,不過(guò)正則條件的數(shù)量上千的時(shí)候,就會(huì)很頭大。FlashText是基于FlashText算法的一個(gè)模塊,提供了這種情況下的一個(gè)替代工具,F(xiàn)lashText最好的地方在于運(yùn)行時(shí)間是和搜索的條件的數(shù)量不相關(guān)的。更多的信息可以看這里。
安裝:
- $ pip install flashtext
例子:
提取關(guān)鍵詞
- from flashtext import KeywordProcessor
- keyword_processor = KeywordProcessor()
- # keyword_processor.add_keyword(
name >,name>) - 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']
替換關(guān)鍵詞
- 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.'
Fuzzywuzzy
名字聽(tīng)起來(lái)怪怪的,不過(guò)在字符匹配的時(shí)候,用起來(lái)還是爽爽的?梢暂p松的實(shí)現(xiàn)字符比例,token比例等。還可以在不同的數(shù)據(jù)集中進(jìn)行匹配。
安裝:
- $ 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
PyFlux
時(shí)間序列的處理是機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)常遇到的問(wèn)題。PyFlux就是專門用來(lái)處理時(shí)間序列問(wèn)題的開(kāi)源Python庫(kù)。這個(gè)庫(kù)里有一系列的時(shí)間序列模型如ARIMA, GARCH 和VAR 等。簡(jiǎn)單來(lái)說(shuō),PyFlux提供了時(shí)間序列到概率的建模,值的一試。
安裝
- pip install pyflux
例子
參考這里 。
Ipyvolume
交流結(jié)果是數(shù)據(jù)科學(xué)的非常重要的方面。結(jié)果可視化是個(gè)非常重要的優(yōu)勢(shì)。IPyvolume是個(gè)3D可視化庫(kù),不過(guò)這還是在pre-1.0的階段,可以這樣類別一下, IPyvolume是對(duì)3維數(shù)據(jù)的可視化,matplotlib是對(duì)二維數(shù)據(jù)的可視化。具體可以看 這里。
安裝
- Using pip
- $ pip install ipyvolume
- Conda/Anaconda
- $ conda install -c conda-forge ipyvolume
例子
標(biāo)記

渲染

Dash
這是個(gè)創(chuàng)建web應(yīng)用的用戶生產(chǎn)的Python框架。基于Flask寫的,可以用來(lái)構(gòu)建數(shù)據(jù)可視化的app,這些app可以在網(wǎng)絡(luò)瀏覽器上渲染。用戶手冊(cè)可見(jiàn) 這里.
安裝
- 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!)
例子

Gym
Gym來(lái)自O(shè)penAI,用來(lái)做強(qiáng)化學(xué)習(xí)。兼容所有的數(shù)值計(jì)算庫(kù),如TensorFlow,Theano等。這個(gè)庫(kù)提供了一個(gè)問(wèn)題測(cè)試的環(huán)境,你可以用這個(gè)環(huán)境來(lái)實(shí)驗(yàn)?zāi)愕膹?qiáng)化學(xué)習(xí)算法。這些環(huán)境共享界面,使你可以寫通用的算法。
安裝
- pip install gym
例子

結(jié)論
這是我選的一些有用但是不常用的python庫(kù),如果你知道其他的話,可以繼續(xù)添加,別忘了先試試。
標(biāo)簽: 數(shù)據(jù) 蒲
版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。