1.三个读read(),readline()和readlines()
- .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。
2. line.readline() 和 .readlines()之间的差异是后者一次读取整个文件,象 .read()一样。.readlines()自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for… in … 结构进行处理。另一方面,.readline()每次只读取一行,通常比 .readlines()慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用.readline()。
2.Python的数组分三种类型:
(1) list 普通的链表,初始化后可以通过特定方法动态增加元素。
定义方式:arr = [元素]
(2) Tuple 固定的数组,一旦定义后,其元素个数是不能再改变的。
定义方式:arr = (元素)
(3) Dictionary 词典类型, 即是Hash数组。
定义方式:arr = {元素k:v}
http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html
3.Python中元组,列表,字典的区别
http://blog.csdn.net/yasi_xi/article/details/38384047
http://liuzhichao.com/p/1645.html
4.python表示矩阵
在c语言中,表示个“整型3行4列”的矩阵,可以这样声明:int a[3][4];在python中一不能声明变量int,二不能列出维数。可以利用列表中夹带列表形式表示。
矩阵和数组是不同类型,详情见 机器学习实战P12
5.extend()与append()的区别
a=[1,2,3]
b=[4,5,6]
a.append(b)=[1,2,3,[4,5,6]]
a.extend(b)=[1,2,3,4,5,6]
6.python中pyc和pyo的作用
pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,经过python解释器,会生成机器码运行(这也是为什么pyc文件可以跨平台部署,类似于java的跨平台,java中JVM运行的字节码文件)。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,如果py更新,那么就生成新的pyc。
pyo文件,是python编译优化后的字节码文件。pyo文件在大小上,一般小于等于pyc文件。
http://blog.csdn.net/chenggong2dm/article/details/11606405
7.绘图软件Matplotlib 的使用
http://matplotlib.org/api/axes_api.html?highlight=annotate
8.python数据持久存储:pickle模块的基本使用
python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
基本接口:
pickle.dump(obj, file, [,protocol])
注解:将对象obj保存到文件file中去。
protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。protocol默认值为0。
file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以’w’方式打开的文件或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。
pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象。
file:类文件对象,有read()和readline()接口。
9.python:open/文件操作
http://www.cnblogs.com/dkblog/archive/2011/02/24/1980651.
10.Python之re模块 —— 正则表达式操作[原创]
re.split(pattern, string, maxsplit=0)
通过正则表达式将字符串分离。如果用括号将正则表达式括起来,那么匹配的字符串也会被列入到list中返回。maxsplit是分离的次数,maxsplit=1分离一次,默认为0,不限制次数。
re.split(‘\W+’, ‘Words, words, words.’)
[‘Words’, ‘words’, ‘words’, ”]
re.split(‘(\W+)’, ‘Words, words, words.’)
[‘Words’, ‘, ‘, ‘words’, ‘, ‘, ‘words’, ‘.’, ”]
re.split(‘\W+’, ‘Words, words, words.’, 1)
[‘Words’, ‘words, words.’]
re.split(‘[a-f]+’, ‘0a3B9’, flags=re.IGNORECASE)
http://www.cnblogs.com/PythonHome/archive/2011/11/19/2255459.html
11.Python中的random模块
random.uniform
random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a
http://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html
12.ndarray.tolist()¶
a = np.array([1, 2])
a.tolist()
[1, 2]
a = np.array([[1, 2], [3, 4]])
list(a)
[array([1, 2]), array([3, 4])]
a.tolist()
[[1, 2], [3, 4]]
13. sign()
sign(dp 或者 numeric) (和输入相同) 参数的符号(-1, 0, +1) sign(-8.4) -1
14.map()
1、对可迭代函数’iterable’中的每一个元素应用‘function’方法,将结果作为list返回。
来个例子:
def add100(x): …
return x+100… >>> hh = [11,22,33] >>> map(add100,hh) [111, 122, 133]
就像文档中说的:对hh中的元素做了add100,返回了结果的list。
2、如果给出了额外的可迭代参数,则对每个可迭代参数中的元素‘并行’的应用‘function’。(翻译的不好,这里的关键是‘并行’)
?12345678 >>> def abc(a, b, c): … return a*10000 + b*100 + c … >>> list1 = [11,22,33] >>> list2 = [44,55,66] >>> list3 = [77,88,99] >>> map(abc,list1,list2,list3) [114477, 225588, 336699]
看到并行的效果了吧!在每个list中,取出了下标相同的元素,执行了abc()。 http://my.oschina.net/zyzzy/blog/115096