你可能没听过的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 |
英文原文: 11 Python Libraries You Might Not Know
你可能没听过的11个Python库的更多相关文章
- 11个并不广为人知,但值得了解的Python库
这是一篇译文,文中提及了一些不常见但是有用的Python库 原文地址:http://blog.yhathq.com/posts/11-python-libraries-you-might-not-kn ...
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- 推荐11个实用Python库
1.delorea 非常酷的日期/时间库 from delorean import Delorean EST = "US/Eastern"d = Delorean(timezone ...
- 《python解释器源码剖析》第11章--python虚拟机中的控制流
11.0 序 在上一章中,我们剖析了python虚拟机中的一般表达式的实现.在剖析一遍表达式是我们的流程都是从上往下顺序执行的,在执行的过程中没有任何变化.但是显然这是不够的,因为怎么能没有流程控制呢 ...
- c++11 Chrono时间库
c++11 Chrono时间库 http://en.cppreference.com/mwiki/index.php?title=Special%3ASearch&search=chrono ...
- 比特币源码分析--C++11和boost库的应用
比特币源码分析--C++11和boost库的应用 我们先停下探索比特币源码的步伐,来分析一下C++11和boost库在比特币源码中的应用.比特币是一个纯C++编写的项目,用到了C++11和bo ...
- 你可能没听过的 Java 8 中的 10 个特性
你以前听到的谈论关于Java8的所有都是围绕lambda表达式. 但它仅仅是Java8的一部分. Java 8 有许多新特性—一些强大的新类和语法, 还有其他的从一开始就应该具有的东西. 我将要介绍我 ...
- Android EventBus实战 没听过你就out了
转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/40794879,本文出自:[张鸿洋的博客] 1.概述 最近大家面试说经常被问到Ev ...
- Windows平台Go调用DLL的坑(居然有这么多没听过的名词)
最近的项目中,使用了GO来开发一些服务中转程序.业务比较简单,但是有一些业务需要复用原有C++开发的代码.而在WINDOWS,用CGO方式来集成C/C++代码并不是太方便.所以用DLL把C++的代码封 ...
随机推荐
- intent和手势探测
一.三种启动方法 setComponent ComponentName comp = new ComponentName( this, SecondActivity.class); Intent in ...
- 缓存为王-varnish
2.varnish的软件清单 [root@centos69 ~]# rpm -ql varnish /etc/logrotate.d/varnish /etc/rc.d/init.d/varnish ...
- Codeforces Round #485 (Div. 2) F. AND Graph
Codeforces Round #485 (Div. 2) F. AND Graph 题目连接: http://codeforces.com/contest/987/problem/F Descri ...
- java面试一、1.3线程与进程
免责声明: 本文内容多来自网络文章,转载为个人收藏,分享知识,如有侵权,请联系博主进行删除. 1.3.进程和线程 线程和进程的概念.并行和并发的概念 线程和进程: 线程:是程序执行流的最小单元 ...
- 【repost】CSS3弹性布局
本文导读:在CSS 3中,CSS Flexible Box模块为一个非常重要的模块,该模块用于以非常灵活的方式实现页面布局处理.使用CSS Flexible Box模块中定义的弹性盒布局技术,可以根据 ...
- arp脚本
1.什么是arp?arp可以解决什么问题? ARP:是地址解析协议 arp解决我们知道一个机器(主机或者路由器)的IP地址,需要找出其相应的硬件地址 2.编写ARP脚本,抓取对应主机的mac地址 1 ...
- 背水一战 Windows 10 (115) - 后台任务: 通过 toast 激活后台任务, 定时激活后台任务
[源码下载] 背水一战 Windows 10 (115) - 后台任务: 通过 toast 激活后台任务, 定时激活后台任务 作者:webabcd 介绍背水一战 Windows 10 之 后台任务 通 ...
- Linux基本命令-ls
ls 作用:显示目标列表,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 参数: -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影 ...
- Java开发面试题,3年工作经验的Java程序员面试经
一.Java基础部分 1.使用length属性获取数组长度,public.private.protected.friendly区别 2.Collection和Collections区别 3.Strin ...
- genymotion常见问题解答
[转]常见问题解答 很多人喜欢使用Genymotion这款安卓模拟器,但是虽然Genymotion很好用,可是却有各种问题存在哦,下面潇潇就一些常见的Genymotion问题来说下解决方法吧. 为什么 ...