python的 argparse 库
argparse是python的一个命令行解析包
使用步骤:
(1)import argparse 首先导入模块
(2)parser = argparse.ArgumentParser() 创建一个解析对象
(3)parser.add_argument() 向该对象中添加你要关注的命令行参数和选项
(4)parser.parse_args() 进行解析
Python collections.Counter()用法
什么是collections
collections在python官方文档中的解释是High-performance container datatypes,直接的中文翻译解释高性能容量数据类型。
它总共包含五种数据类型:其中Counter中文意思是计数器,也就是我们常用于统计的一种数据类型,在使用Counter之后可以让我们的代码更加简单易读。
Counter
先看一个简单的例子:
#统计词频 colors = ['red', 'blue', 'red', 'green', 'blue', 'blue'] result = {} for color in colors: if result.get(color)==None: result[color]=1 else: result[color]+=1 print (result) #{'red': 2, 'blue': 3, 'green': 1}
下面我们看用Counter怎么实现:
from collections import Counter colors = ['red', 'blue', 'red', 'green', 'blue', 'blue'] c = Counter(colors) print (dict(c))
显然代码更加简单了,也更容易读和维护了。
Counter操作
可以创建一个空的Counter:
cnt = Counter()
之后在空的Counter上进行一些操作。
也可以创建的时候传进去一个迭代器(数组,字符串,字典等):c = Counter('gallahad') # 传进字符串 c = Counter({'red': 4, 'blue': 2}) # 传进字典 c = Counter(cats=4, dogs=8) # 传进元组
more....
Python的enumerate()函数
对于一个可迭代/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
enumerate多用于在for循环中得到计数
如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
list1 = ["这", "是", "一个", "测试"] for i in range (len(list1)): print i ,list1[i]
上述方法有些累赘,利用enumerate()会更加直接和优美:
list1 = ["这", "是", "一个", "测试"] for index, item in enumerate(list1): print index, item >>> 0 这 1 是 2 一个 3 测试
python的排序函数sorted()
此外,sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:
还可以
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
lamdba表达式
lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。
lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数。如下所示:
add = lambda x, y : x+y add(1,2) # 结果为3
numpy库
arange()函数:用于生成一维数组
np.arange(头,尾,步长)
注意头尾是左闭右开的
zeros()函数:用于生成全0矩阵
np.zeros(n)
np.zeros((n,n)) 注意2层括号不能省
默认填充类型为float64
np.zeros((3,2), dtype=int)
numpy数据类型转换astype
python的shuffle()函数
shuffle() 方法将序列的所有元素随机排序