11个并不被常用但对开发非常有帮助的Python库_python

近来,越来越多的数据科学家开始使用Python,我不由得想到,尽管他们从pandas、scikit-learn和numpy这些库中得到了不少好处,但是他们也许错过了一些也许较老但同样有帮助的Python库。

在这篇博文里,我将给大家推荐一些鲜为人知的库。即便你是Python高手,也应该看一看,其中的一到两个库可能是你从没见过的。
1)Delores

Dolorean是一个很酷的日期/时间库。除了名字好听之外,也是一个我曾用过的最舒心的日期/时间修改库。它有点像javascript的moment库,每次我导入它的时候都会想笑。文档也很棒,除了有技术指导外,他们还引用了《回到未来》的无数内容(来丰富文档)。
 

from delorean import Delorean
EST = "US/Eastern"
d = Delorean(timezone=EST)

2)prettytable

这个包被放到了GoogleCode上,所以你可能没听说过。GoogleCode现在就像西伯利亚一样荒凉。

尽管它被流放到了一个冰天雪地、荒无人烟的地方,prettytable仍旧是最棒的结构化输出的库,它能在终端或浏览器里构建良好的输出。因此,如果你正在用 IPython Notebook的新插件,建议你用prettytable来代替__repr__进行HTML输出。
 

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通过porter stemmer算法来提取15种语言的单词词干。
 
from snowballstemmer import EnglishStemmer, SpanishStemmer
EnglishStemmer().stemWord("Gregory")
# Gregori
SpanishStemmer().stemWord("amarillo")
# amarill
4)wget

还记得你每次都为特定的目标写web爬虫么?以后我们可以用其他办法来完成了,那就是wget.想要以递归的方式下载所有页面?想要抓取页面上的每张图?想要避免cookie追踪?wget可以给你想要的一切。

马克·扎格伯格的电影里它自己都说

    从柯克兰(寝室名)开始,这里的一切公共目录都是公开的,还允许在Apache系统里插入目录。所以用个wget就能下载柯克兰全部的照片库里的图片了。易如反掌!

    这个页面有你想问的关于这个库的一切问题,而且它很易用。
 

import wget
wget.download("<a href="http://www.cnn.com/">http://www.cnn.com/</a>")
# 100% [............................................................................] 280385 / 280385

linux和osx的用户还会用到另一个选项:from sh import wget。不过Python wget模块还有更好的参数处理。
5)PyMC

我不记得是怎么得到PyMC包的了。scikit-learn似乎是所有人的宠儿(它应得的,它太出色了),但是依我看来,PyMC更有魅力。
 

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主要用来做贝叶斯定理分析。它的特点在Cam Davidson-Pilon的Bayesian Methods for Hackers里着重介绍过,它在许多流行的数据科学/python博客上也是一颗闪耀的钻石,但是它从来没得到过像它的同类scikit-learn一样的狂热追捧。
6)sh

我不能在你还不知道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.json

7)fuzzywuzzy

这是我用过的能排在前十里的最简单的库。(如果你有2、3分钟,你可以读一下这个资源),fuzzywuzzy 是一个字符串模糊匹配的库,它由SeatGeek上的开发者建立。

fuzzywuzzy实现了字符串的相似率,令牌比和许多其他的匹配模式。它也可以用来创建特征向量或者匹配不同数据库的记录。
 

from fuzzywuzzy import fuzz
fuzz.ratio("Hit me with your best shot", "Hit me with your pet shark")
# 85

8)progressbar

在你调用__main__循环的时候,你用过print "still going...” 这样的提示么?你知道么,这样会感觉特别low。想要找东西替代它么?为什么不用progressbar来提升你游戏的档次呢?

如你所想,progressbar在针对精确数据的时候效果很好,它提供了一个文本模式的progressbar。但即便是一个变动的不精确数据,使用它也比用那些很长的脚本好。

唉,这又是一个GoogleCode的牺牲品,它没有受到太多关注(文档有两个空格的缩进)。用pip install可以安装它。
 

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

在你用progressbar打印日志时,为什么不给它们加上颜色呢!实际上,当出现重大错误时,它能很快的给你提醒。

colorama很容易使用。只要把它写进你的脚本,添加到想要打印的文本之前:

colorama-red
10)uuid

对于我来说,编程中真正需要的工具只有那么几个:哈希,键值对存储,和通用唯一标识符。uuid就是Python的一个UUID包。它实现了UUID standards标准的1,3,4,5版本。在确保唯一性上真的很方便。

这听起来可能会有点傻,但你有多少次想要给市场营销的(销售货物)加上唯一的促销代码?或着给e-mail收件人加上唯一的id号?

如果你担心耗尽ids,完全不用!UUID的可以生成原子数据。
 

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

python常用开发工具、python3.4 常用开发包、常用的python开发工具、python 帮助命令、python 帮助文档,以便于您获取更多的相关知识。

时间: 2024-09-09 20:34:34

11个并不被常用但对开发非常有帮助的Python库_python的相关文章

推荐11个实用Python库_python

1) delorean 非常酷的日期/时间库 复制代码 代码如下: from delorean import Delorean EST = "US/Eastern" d = Delorean(timezone=EST) 2) prettytable 可以在浏览器或终端构建很不错的输出 复制代码 代码如下: from prettytable import PrettyTable table = PrettyTable(["animal", "ferocity

快速掌握ASP连接11种数据库的常用语法

本文主要介绍了ASP连接11种数据库的常用语法,详细内容请参考下文: 1.Access数据库的DSN-less连接方法: 以下为引用的内容:set adocon=Server.Createobject("adodb.connection")adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _Server.MapPath("数据库所在路径") 2.Access OLE D

11个设计师最常用的PHOTOSHOP快捷键

  掌握Photoshop快捷键是很重要的,在实际应用中可以减少多余的操作步骤,提高作业效率,这里@设计达人网 为大家指出11个设计师最常用的Photoshop快捷键,绝对用得上. 备注:这里我们按Windows键盘讲述,如果是MAC用户,请看下面对应键位: Ctrl = Command Alt = Option Delete = Backspace 1.CTRL+SHIFT+单击 (选择多个对象) [选择工具]非"自动选择"状态下: 1. 按 CTRL + 左键可以选择对象 2. 按

利用常用的集成开发环境(IDE)和中间件设计轻量型ESB

本文介绍了实现一个自产的轻量型http://www.aliyun.com/zixun/aggregation/7921.html">企业服务总线 (ESB) 的设计蓝图,该企业服务总线利用了常用的集成开发环境 (IDE) 和中间件.本文中的场景使用了 IBM® WebSphere® Application Server V8(一个用于 Java EE 应用程序的强健的部署环境)和 IBM Rational® Software Architect(提供了工具来设计.开发.测试和打包要部署到应

苹果公司11月18日正式发布了WatchKit开发工具

摘要: 苹果公司11月18日正式发布了WatchKit开发工具,揭开了Apple Watch交互逻辑和诸多UI元素细节.虽然目前Apple Watch真机尚未发布,但凭借官方的材料,我们已经能够更具体地感受和想象Apple 苹果公司11月18日正式发布了WatchKit开发工具,揭开了Apple Watch交互逻辑和诸多UI元素细节.虽然目前Apple Watch真机尚未发布,但凭借官方的材料,我们已经能够更具体地感受和想象Apple Watch的用户体验了.和已经开售的安卓智能手表操作系统An

IOS开发:CocoaPods一个Objective-C第三方库的管理利器

  1.CocoaPods是跑在Ruby的软件,安装可能需要几分钟,安装命名: sudo gem install cocoapods 2.如果想为每个第三方库生成文档,那运行 brew install appledoc 这步是可选的. 安装完成后提示: 开发:CocoaPods一个Objective-C第三方库的管理利器-"> 如果你的Ruby环境不够新的话,可能要更新一下: gem update --system 现在pod安装好了,怎么使用呢? 搜索 先试试搜索功能,你需要什么库,可以

把常用的文件夹固定在任务栏的库里面

在使用电脑工作的时候,我们通常有一些文件夹,不能直接放在桌面,而是放到分区里面,而且具有一定的深度,可能每天都要用到,或者有时候要用到,但是挺深的每次点击都要点击很多下,而怎么样才能在任务栏里面快速找到我们想要的文件. 1 把文件固定在任务栏的库里面 资源管理器中进入到该文件夹目录,然后选中它用鼠标将其拖放到Windows 7的任务栏上后释放,你就将其固定到库程序组中了,右击任务栏上的"库"然后在弹出菜单中你就会发现该文件夹了.也就是说以后你要打开该文件夹直接右击"库&quo

activex-C#开发ActiveX控件调用动态库DLL

问题描述 C#开发ActiveX控件调用动态库DLL 我想开发一个C# ActiveX控件调用动态库DLL,能够在网页中使用,创建ActiveX控件我已经完成了,但调用DLL动态库没有相应的反馈给我,就像没有做任何操作一样,网上说把动态库DLL放到windows/System32下面,可以调用成功,但我照做了,还是没有反应,我的系统是WIN732位,动态库DLL在C/S程序下调用是没有问题,希望高人帮忙解答下,如果对问题有什么不明白之处,可以留言,谢谢 解决方案 ActiveX控件需要注册(命令

android 开发 java写的 tcp 通信库,注册选择器时异常!跪求java高手指点!!!

问题描述 android 开发 java写的 tcp 通信库,注册选择器时异常!跪求java高手指点!!! public void initialize() throws IOException { boolean done = false; try { Log.e(TAG,"SocketChannel.open:IP:["+hostIp+"Port:"+hostListenningPort+"]."); // 打开监听信道并设置为非阻塞模式 s