不容错过的Python小贴士—技巧, 风格和最佳实践

— 改编自 Python: Tips, Tricks and Idioms

 

1. Dict的for循环中避免使用低效的iteritems() 和 keys()

In [1]:
a = {}
for i in xrange(0, 1000000):
    a[i] = i
print(type(a))
print(len(a))
<type 'dict'>
1000000
In [2]:
def for_func1():
    for x in a:
        pass

def for_func2():
    for x in a.keys():
        pass

def for_func3():
    for x,v in a.iteritems():
        pass
In [3]:
import timeit
print(timeit.timeit(for_func1, number=100))
print(timeit.timeit(for_func2, number=100))
print(timeit.timeit(for_func3, number=100))
1.22459793091
2.30621099472
2.17837190628

是不是快多了?

 

2. for循环中获得index神器: enumerate

In [4]:
students = ('James', 'Andrew', 'Mark')
In [5]:
for i, student in enumerate(students):
    print i, student
0 James
1 Andrew
2 Mark
In [6]:
students = {'James': 'male', 'Andrew':'male', 'Alice':'female'}
In [7]:
for i, student in enumerate(students):
    print i, student
0 James
1 Andrew
2 Alice

3. 想确定for循环完整结束, 用else吧…

In [8]:
for ele in ['a', 'b', 'c']:
    if ele == 'b':
        break
else: # no break
    print('for循环完整结束')
In [9]:
for ele in ['a', 'b', 'c']:
    if ele == 'd':
        break
else: # no break
    print('for循环完整结束')
for循环完整结束

4. 迭代工具之chain连接器

继续阅读不容错过的Python小贴士—技巧, 风格和最佳实践

[转] Ubuntu14.04LTS安装TensorFlow

1. Pip

如果已经安装过pip,可以跳过这里的安装步骤。

$ sudo apt-get install python-pip python-dev python-setuptools build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv

为了检测是否安装好,可以查看pip的版本:

$ pip --version
pip 8.1.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)

2. Tensorflow

接下来,就可以按照Tensorflow Download and Setup中的Pip Installation开始安装,命令如下:

# Ubuntu/Linux 64-bit, CPU only:
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
继续阅读[转] Ubuntu14.04LTS安装TensorFlow

六个鲜为人知的python数据分析库

Python 提供了高质量的环境和丰富的第三方库为开发者提供数据分析支持。不管是数据处理还是数据 可视化等等, 都有许多有用的库。一些库非常有名:PandasNumpyScikit-learn(我们有一期博客介绍过), NTLK 等等。另一些不是那么有名但是却在平时十分好用。这篇文章介绍6个这样的Python库, 希望对大家有帮助!

  • mrjob

mrjob是一个帮助你写用Python写MapReduce的库,可以让你写Mapper和Reducer程序,在本地,EMR(亚马逊弹性Map-Reduce),或者Hadoop集群上运行/测试。使用pip install mrjob就能快速安装。mrjob是Yelp开发并且每天有成千上万的下载量。Github地址项目地址有大量文档。

在python中使用datetime是件很痛苦的事。如果你用过python自带的datetime库去控制多时区,你一定会觉得不方便。delorean对datetime和pytz做了抽象使得操作更简单。它有很多好的功能使得切换多时区,标准化时区变得简单。

python自带的sorted()方法很高效。但是当你想排列[‘a2’, ‘a9’, ‘a1’, ‘a4’, ‘a10’]这样的数列,那就需要natsort这样的能同时排列字母和数字的库了。官网有更详细的文档。

应用中并不是总是需要多节点的大数据库。TinyDB是一个面向文件的小型数据库,可以在本地文件写入json来保存数据。它有1200行代码以及简洁清楚的API。可以用pip install tinydb来安装。更多详细文档请看这里继续阅读六个鲜为人知的python数据分析库