11個你可能不知道的Python庫

現(xiàn)在有如此之多的Python包幻锁,幾乎沒有人能夠全盤掌握。 光是PyPI就可單獨列出47,000個包沸伏!

近日,聽到很多數(shù)據(jù)科學家切換到Python的消息动分,我不由地想到毅糟,雖然他們得到了pandas、scikit-learn和numpy的一些巨大好處澜公,但卻錯過了一些稍微老一點但同樣能提供幫助的Python庫姆另。

在這篇文章中,我將介紹一些鮮為人知的庫坟乾。即使你已經(jīng)是Python高手迹辐,也應(yīng)該看看,可能會有那么一兩個是你從來沒有見過的甚侣!

1)delorean

Delorean是一個非趁鞣裕酷的日期/時間庫。它是我在Python中使用過的感覺最自然的日期/時間munging庫之一殷费。有點像JavaScript中的moment印荔。文檔也不錯,除了在技術(shù)上有幫助详羡,還讓無數(shù)人情不自禁地回過頭來參考仍律。

?

from delorean import Delorean

EST = "US/Eastern"

d = Delorean(timezone=EST)

2)prettytable

歡迎加入我的QQ群`923414804`與我一起學習,群里有我學習過程中整理的大量學習資料实柠。加群即可免費獲取

很可能你還沒有聽說過prettytable水泉,因為它列在GoogleCode上面——基本上是被流放的編碼裝備。

盡管被流放到了西伯利亞主到,prettytable在終端或在瀏覽器中依然是強大又美觀的構(gòu)建輸出茶行。所以,如果你正在為IPython的筆記本電腦搞新插件的話登钥,那就使用prettytable為你的HTML __repr__吧。

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

我第一次安裝snowballstemmer的原因是因為我覺得這個名字很酷娶靡。但它實際上是一個非常漂亮的小型庫牧牢。 snowballstemmer能在15種不同的語言下工作,并自帶用于引導的porter stemmer姿锭。

from snowballstemmer import EnglishStemmer, SpanishStemmer

EnglishStemmer().stemWord("Gregory")

# Gregori

SpanishStemmer().stemWord("amarillo")

# amarill

4)wget

還記得你曾因為某種目的寫的網(wǎng)絡(luò)爬蟲(web crawler)嗎塔鳍?原來是它——wget創(chuàng)造的。遞歸地下載網(wǎng)站呻此?抓取每個頁面的每一張圖片轮纫?避開cookie 痕跡?統(tǒng)統(tǒng)只要wget焚鲜。

電影《馬克·扎克伯格》甚至這樣贊譽過它

首先是Kirkland掌唾,他們把一切都公開放前,并允許索引他們的Apache配置,所以只需要一點wget的魔術(shù)就能夠下載整個Kirkland的Facebook糯彬。太簡單了凭语!

Python的版本帶有幾乎所有你需要的功能,并且非常易于使用撩扒。

import wget

wget.download("http://www.cnn.com/")

# 100% [............................................................................] 280385 / 280385

需要注意的是Linux和OSX用戶可能會操作的另一種選擇是:from sh import wget似扔。不過,Python的wget模塊確實有一些有爭議的地方搓谆。

5)PyMC

我不知道PyMC怎么會經(jīng)常被排除在組合之外炒辉。scikit-learn似乎是大家的寵兒(不過它確實很棒),但在我看來泉手,PyMC沒有得到應(yīng)有的地位黔寇。

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

PyMC是一個做貝葉斯分析(Bayesian analysis)的庫。它被著重描述于Cam Davidson Pilon的《Bayesian Methods for Hackers》一文中螃诅,并已在很多流行的數(shù)據(jù)科學/ python的博客中亮過相啡氢,但一直未能得到類似于scikit-learn的推崇。

6)sh

sh允許你將shell命令作為函數(shù)導入到Python术裸。它在bash中做一些簡單的事情時特別有用倘是,但你可能已經(jīng)忘記怎么在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(如果你有時間的話搀崭,可以閱讀源碼)。fuzzywuzzy是SeatGeek中的一些人構(gòu)建的一個模糊字符串匹配庫猾编。

fuzzywuzzy可以實現(xiàn)如字符串比較比率瘤睹、令牌比率,以及許多其他匹配指標等工作答倡。這對于創(chuàng)造特征向量 (feature vectors)或匹配不同數(shù)據(jù)庫中的記錄特別有用轰传。

from fuzzywuzzy import fuzz

fuzz.ratio("Hit me with your best shot", "Hit me with your pet shark")

# 85

8)progressbar

你知道那些你在一堆爛攤子中調(diào)用__main__的for循環(huán)執(zhí)行print “still going…”腳本嗎?那么你為什么不步驟化你的游戲并使用progressbar呢瘪撇?

誠如其名获茬,progressbar確實就是進度條(progress bar)。雖然這不是一個完全的數(shù)據(jù)科學中的具體活動倔既,但它確實很好地改善了那些超長的運行腳本恕曲。

可惜的是,作為另一個GoogleCode的棄兒渤涌,它也沒有得到很多的關(guān)注(文檔有2個空格的縮進……2芭逡ァ!)实蓬。希望大家能對這個勤勞又能干的娃多一點憐憫茸俭,阿門吊履。

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

既然你為日志設(shè)置了很好的進度條,何不讓它們變得多彩起來瓣履!而且還可以當事情出現(xiàn)嚴重錯誤的時候還可以提醒自己率翅。

colorama超級易于使用。只要彈出到你的腳本袖迎,添加任何你想要變色的文本即可:

?

10)uuid

在我的想法中冕臭,我們在編程的時候其實真正只需要幾個工具就可以了:hashing、鍵/值存儲以及全局惟一標識符(universally unique ids燕锥,uuid)辜贵。 uuid內(nèi)置于Python的UUID庫。它實現(xiàn)了版本1归形、3托慨、4和5的UUID標準,對于比如說保證唯一性等工作暇榴,非常方便厚棵。

這聽起來很傻,但如果你要搞一個營銷活動或電子郵件投遞的記錄蔼紧,并且要確保每個人都有自己的促銷代碼或身份證號碼的時候呢婆硬?

如果你擔心用完id,哈哈奸例,那你完全多慮了彬犯!UUID可以生成的數(shù)量相當于宇宙中原子的數(shù)目。

import uuid

print uuid.uuid4()

# e7bafa3d-274e-4b0a-b9cc-d898957b4b61

?

滄海一粟的uuid

11)bashplotlib

最后這個就讓我厚著臉皮介紹吧——bashplotlib是我的作品之一查吊。它可以讓你繪制使用標準輸入的直方圖和散點圖谐区。因此,盡管你可能不會讓它取代ggplot或matplotlib作為日常的繪圖庫逻卖,但是它非常的新穎宋列。最起碼,可以把它作為美化日志的一個方式评也。

$ pip install bashplotlib

$ scatter --file data/texas.txt --pch x

希望這些Python庫能對你的開發(fā)有所幫助虚茶!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市仇参,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌婆殿,老刑警劉巖诈乒,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婆芦,居然都是意外死亡怕磨,警方通過查閱死者的電腦和手機喂饥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肠鲫,“玉大人员帮,你說我怎么就攤上這事〉妓牵” “怎么了捞高?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渣锦。 經(jīng)常有香客問我硝岗,道長,這世上最難降的妖魔是什么袋毙? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任型檀,我火速辦了婚禮,結(jié)果婚禮上听盖,老公的妹妹穿的比我還像新娘胀溺。我一直安慰自己,他們只是感情好皆看,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布仓坞。 她就那樣靜靜地躺著,像睡著了一般悬蔽。 火紅的嫁衣襯著肌膚如雪扯躺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天蝎困,我揣著相機與錄音录语,去河邊找鬼。 笑死禾乘,一個胖子當著我的面吹牛澎埠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播始藕,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼蒲稳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伍派?” 一聲冷哼從身側(cè)響起江耀,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诉植,沒想到半個月后祥国,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年舌稀,在試婚紗的時候發(fā)現(xiàn)自己被綠了啊犬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡壁查,死狀恐怖觉至,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情睡腿,我是刑警寧澤语御,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站嫉到,受9級特大地震影響沃暗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜何恶,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一孽锥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧细层,春花似錦惜辑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捧搞,卻和暖如春抵卫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胎撇。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工介粘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晚树。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓姻采,卻偏偏與公主長得像,于是被迫代替她去往敵國和親爵憎。 傳聞我的和親對象是個殘疾皇子慨亲,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容