目前,网上已有成千上万个Python包,但几乎没有人能够全部知道它们。单单 PyPi 上就有超过47000个包列表。
现在,越来越多的数据科学家开始使用Python,虽然他们从 pandas , scikit-learn , numpy 中获得了不少好处,但我仍想向他们介绍一些年长且非常实用的Python库。在本文中,我将列一些不太知名的库,即使你是经验丰富的Python的开发者,也值得过来一看。
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
你是否还记得,每一次都会因为某个目的而编写网络爬虫工具,以后再也不用了,因为wget就足够你使用了。wget是Python版的网络爬虫库,简单好用。
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命令作为函数导入到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.json7. fuzzywuzzy
Fuzzywuzzy是一个可以对字符串进行模糊匹配的库,大家有空可以去 查看源码 。
from fuzzywuzzy import fuzz fuzz.ratio("Hit me with your best shot", "Hit me with your pet shark") # 858. 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实现的UUID库,它实现了UUID标注的1,3,4和5版本,在确保唯一性上真的非常方便。
import uuid print uuid.uuid4() # e7bafa3d-274e-4b0a-b9cc-d898957b4b6111. bashplotlib
bashplotlib是一个绘图库,它允许你使用stdin绘制柱状图和散点图等。
$ pip install bashplotlib $ scatter --file data/texas.txt --pch x
英文原文: 11 Python Libraries You Might Not Know