目前,网上已有成千上万个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
|