python基本语法和注意事项
1.几个常用的网站
Python IDE下载:
(3) Anaconda下载地址(推荐下载此IDE,网站稳定,使用方式与Python(x,y)基本一样)
2.Python参考教程和网站
(1)Magnus Lie Hetland, Beginning Python: from Novice to Professional, 2ndedition, Apress.(第二版中译版名为《Python基础教程》)
(2) WesleyChun, Core Python Applications Programming, Prentice Hall.(第二版中译版名为《Python核心编程》)
(3) SciPy科学计算:http://www.scipy.org/
(4) WesMcKinney, Python for Data Analysis.东南大学出版社.(英文影印本,中译版名为《利用Python进行数据分析》
3.pylab 与matplotlib.pyplot的区别
前者包含后者的功能,并且包含以下numpy等的函数
Pandas作图优点在于支持series和DataFrame数据类型
关于基本语法问题:
1,变量作用域问题:
Def f(x)
print a
a=1
print a+x
a=2
f(3)
关于会不会报错,全看a=1那一行有没有:
若有,则程序认为a是局部变量,所以第一行print a 在变量申明前就调用,会报错。
若没有,则程序认为a是全局变量,不会报错。
若需要在函数里改变全局变量的值,则需要声明a为global a
2,打开文件的路径前面有r,如r'd:\\infile.txt':
r表示路径中的字符不需要转义,即\\不会转义成\
3,关于列表a与元组b:
列表元组中的元素可以是不同类型的
sorted(a)与a.sort() 不同,函数返回的值都一样,但是前者不会改变列表a本身的元素顺序,后者会改变
sorted(b)与b.sort() 与上面类似,由于元祖不能改变,执行b.sort()会出错
其次,函数读取的多个参数以及返回的多个参数,默认是tuple类型的
集合set的主要作用是去重
4,python中is与==的区别:
Python中的对象包含三要素:id、type、value其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值is判断的是a对象是否就是b对象,是通过id来判断的==判断的是a对象的值是否和b对象的值相等,是通过value来判断的,如:
>>> a = 1
>>> b = 1.0
>>> a is b
False
>>> a == b
True
5,list tuple以及dict均是可以迭代的对象,都可以写成 for info in xxx的形式
6,函数传入的参数如果是可变参数用(*args,**kw),但是如果传入的是一个确定list,该参数并不是可变的,不需要用*args
7,关于什么时候需要进行转义,对于原始字符串一般需要输入是什么就是什么,但是对于特定输入才需要转义,如正则表达式,由于[ ]有特殊含义,才需要将[ ]进行转义\[ \]
8.矩阵相乘的区别:
ndarray的形式,两个矩阵用*不是线性代数中的乘法,而是元素对应相乘,需要使用np.dot才行。
np.mat()生成的矩阵形式数据可以直接用*相当于线代中的乘法。
9. dataframe间的表之间的值传递可以直接按照对应的index传递,不需要专门整理表中数据,如:
df1=
df2=
df3=
df1['d']=df3['d']
df2['d']=df3['d']
由此可以将对应的'd'的值赋值给df1和df2
10. 注意df2['a']与df[['a']]的区别,前者是series,没有column了,后者还是DataFrame,列是['a']
11.关于pandas.merge的相关说明,(参数分别指明左右表要用作连接键的列,不是以前理解的一定要是相同的列名才能连接)
12.注意sklearn中的几个功能:
StratifiedKFold与KFold的区别:前者分层采样,能确保各类样本的比例
RandomTreesEmbedding:利用随机的树模型对特征进行映射到高维,之后可以对高维稀疏特征采用LR训练
ExtraTreesClassifier:随机森林的升级版,增加随机性,更好的降低variance
下一篇: MySQL 安装配置