你可能没听过的11个Python库
目前,网上已有成千上万个Python包,但几乎没有人能够全部知道它们。单单 PyPi上就有超过47000个包列表。
现在,越来越多的数据科学家开始使用Python,虽然他们从 pandas, scikit-learn, numpy中获得了不少好处,但我仍想向他们介绍一些年长且非常实用的Python库。在本文中,我将列一些不太知名的库,即使你是经验丰富的Python的开发者,也值得过来一看。
1) delorean
Dolorean是一个非常酷的日期/时间库。类似JavaScript的moment,拥有非常完善的技术文档。
1
2
3
|
from delorean import Delorean EST = "US/Eastern" d = Delorean(timezone = EST) |
2) prettytable
你可能从未听过该库,因为它托管在GoogleCode。prettytable主要用于在终端或浏览器端构建很好的输出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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 | + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + |
好吧,我也是首次安装该库。这是一款非常瘦小的语言转换库,支持15种语言。
1
2
3
4
5
|
from snowballstemmer import EnglishStemmer, SpanishStemmer EnglishStemmer().stemWord( "Gregory" ) # Gregori SpanishStemmer().stemWord( "amarillo" ) # amarill |
4.wget
你是否还记得,每一次都会因为某个目的而编写网络爬虫工具,以后再也不用了,因为wget就足够你使用了。wget是Python版的网络爬虫库,简单好用。
1
2
3
|
import wget # 100% [............................................................................] 280385 / 280385 |
备注:linux和osx用户这样用:from sh import wget。但是,wget模块还有一个更好的argument handline。
5.PyMC
scikit-learn似乎是所有人的宠儿,但在我看来,PyMC更有魅力。PyMC主要用来做Bayesian分析。
1
2
3
4
5
|
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中不容易记住怎么使用(即递归搜索文件)。
1
2
3
4
5
6
7
|
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 |
Fuzzywuzzy是一个可以对字符串进行模糊匹配的库,大家有空可以去 查看源码。
1
2
3
|
from fuzzywuzzy import fuzz fuzz.ratio( "Hit me with your best shot" , "Hit me with your pet shark" ) # 85 |
progressbar是一个进度条库,该库提供了一个文本模式的progressbar。
1
2
3
4
5
6
7
8
|
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版本,在确保唯一性上真的非常方便。
1
2
3
|
import uuid print uuid.uuid4() # e7bafa3d-274e-4b0a-b9cc-d898957b4b61 |
11.bashplotlib
bashplotlib是一个绘图库,它允许你使用stdin绘制柱状图和散点图等。
1
2
|
$ pip install bashplotlib $ scatter - - file <span id = "0_nwp" style = "width: auto; height: auto; float: none;" ><a id = "0_nwl" href = "http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=18&is_app=0&jk=c83d3b1ac10215a4&k=data&k0=data&kdi0=0&luki=4&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a41502c11a3b3dc8&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F5893%2Ehtml&urlid=0" target = "_blank" mpid = "0" style = "text-decoration: none;" ><span style = "color:#0000ff;font-size:14px;width:auto;height:auto;float:none;" >data< / span>< / a>< / span> / texas.txt - - pch x |