現(xiàn)在笼踩,越來越多的數(shù)據(jù)科學家開始使用Python崔挖,雖然他們從pandas礁竞,scikit-learn,numpy中獲得了不少好處嘶朱,但我仍想向他們介紹一些年長且非常實用的Python庫特愿。在本文中仲墨,我將列一些不太知名的庫,即使你是經(jīng)驗豐富的Python的開發(fā)者揍障,也值得過來一看目养。
1) delorean
Dolorean是一個非常酷的日期/時間庫毒嫡。類似JavaScript的moment癌蚁,擁有非常完善的技術文檔。
from delorean import Delorean
EST = "US/Eastern"
d = Delorean(timezone=EST)
2) prettytable
你可能從未聽過該庫,因為它托管在GoogleCode努释。prettytable主要用于在終端或瀏覽器端構建很好的輸出碘梢。
from prettytable import PrettyTable
table = PrettyTable(["animal", "ferocity"])
table.add_row(["wolverine", 100])
table.add_row(["grizzly", 87])
table.add_row(["Rabbit of Caerbannog", 110])
table.add_row(["cat", -1])
table.add_row(["platypus", 23])
table.add_row(["dolphin", 63])
table.add_row(["albatross", 44])
table.sort_key("ferocity")
table.reversesort = True
+----------------------+----------+
|? ? ? ? animal? ? ? ? | ferocity |
+----------------------+----------+
| Rabbit of Caerbannog |? 110? ? |
|? ? ? wolverine? ? ? |? 100? ? |
|? ? ? grizzly? ? ? ? |? ? 87? ? |
|? ? ? dolphin? ? ? ? |? ? 63? ? |
|? ? ? albatross? ? ? |? ? 44? ? |
|? ? ? platypus? ? ? |? ? 23? ? |
|? ? ? ? cat? ? ? ? ? |? ? -1? ? |
+----------------------+----------+
3.snowballstemmer
好吧,我也是首次安裝該庫伐蒂。這是一款非常瘦小的語言轉換庫煞躬,支持15種語言。
from snowballstemmer import EnglishStemmer, SpanishStemmer
EnglishStemmer().stemWord("Gregory")
# Gregori
SpanishStemmer().stemWord("amarillo")
# amarill
4.wget
你是否還記得逸邦,每一次都會因為某個目的而編寫網(wǎng)絡爬蟲工具恩沛,以后再也不用了,因為wget就足夠你使用了昭雌。wget是Python版的網(wǎng)絡爬蟲庫复唤,簡單好用健田。
import wget
wget.download("http://www.cnn.com/")
# 100% [............................................................................] 280385 / 280385
備注:linux和osx用戶這樣用:from
sh import wget烛卧。但是,wget模塊還有一個更好的argument handline妓局。
5.PyMC
scikit-learn似乎是所有人的寵兒总放,但在我看來,PyMC更有魅力好爬。PyMC主要用來做Bayesian分析局雄。
from pymc.examples import disaster_model
from pymc import MCMC
M = MCMC(disaster_model)
M.sample(iter=10000, burn=1000, thin=10)
[-----------------100%-----------------] 10000 of 10000 complete in 1.4 sec
6.sh
sh庫用來將shell命令作為函數(shù)導入到Python中。在bash中使用是非常實用的存炮,但是在Python中不容易記住怎么使用(即遞歸搜索文件)炬搭。
from sh import find
find("/tmp")
/tmp/foo
/tmp/foo/file1.json
/tmp/foo/file2.json
/tmp/foo/file3.json
/tmp/foo/bar/file3.json
7.fuzzywuzzy
Fuzzywuzzy是一個可以對字符串進行模糊匹配的庫,大家有空可以去查看源碼穆桂。
from fuzzywuzzy import fuzz
fuzz.ratio("Hit me with your best shot", "Hit me with your pet shark")
# 85
8.progressbar
progressbar是一個進度條庫宫盔,該庫提供了一個文本模式的progressbar。
from progressbar import ProgressBar
import time
pbar = ProgressBar(maxval=10)
for i in range(1, 11):
? ? pbar.update(i)
? ? time.sleep(1)
pbar.finish()
# 60% |########################################################? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
9.colorama
colorama主要用來給文本添加各種顏色享完,并且非常簡單易用灼芭。
10.uuid
uuid是基于Python實現(xiàn)的UUID庫,它實現(xiàn)了UUID標注的1般又,3,4和5版本彼绷,在確保唯一性上真的非常方便。
import uuid
print uuid.uuid4()
# e7bafa3d-274e-4b0a-b9cc-d898957b4b61
11.bashplotlib
bashplotlib是一個繪圖庫茴迁,它允許你使用stdin繪制柱狀圖和散點圖等寄悯。
$ pip install bashplotlib
$ scatter --file data/texas.txt --pch x