Python快速开发入门重点笔记
来源:互联网 发布:java完全自学手册app 编辑:程序博客网 时间:2024/06/09 18:04
为了做机器学习项目,从零开始学习Python,本文重在新手快速入门,其中首选python科学计算环境——Anaconda,机器学习项目之前一般有3-4天快速学习新的语言时间,然后从项目中边做边学。下面是我结合结合结合一些Python入门相关书籍和资料做的笔记,希望对于新手有帮助。
Anoconda环境安装
下载地址:http://continuum.io/downloads
安装非常简单,安装完成后会看到Anaconda管理器(Anaconda Command Prompt),IPython Notebook,IPython QT,IPython,Spyder,下面是点开Spyder的界面:
在Anaconda管理器中输入conda list来查看已经安装的库,可以检查安装好了的NumPy,SciPy,Matplotlib,Pandas等库,非常方便
练习1—列表操作:创建一个包含另一个列表
movies =["The Holy Grail",1975,"Terry Jone",91, ["Graham Chapman", ["Michael Palin","John Cleese"] ] ]for each_item in movies: print (each_item)
The Holy Grail
1975
Terry Jone
91
[‘Graham Chapman’, [‘Michael Palin’, ‘John Cleese’]]
for循环只打印外列表的各个数据项,那如何读取内列表呢?
for each_item in movies: if(isinstance(each_item,list)): #isinstance内置函数(BIF)判断python类型 for nested_item in each_item: print (nested_item) else: print(each_item)
The Holy Grail1975Terry Jone91Graham Chapman['Michael Palin', 'John Cleese']
isinstance内置函数(BIF)判断python类型,其用法如下
dir(__builtins__)help(isinstance)
那如何处理多层嵌套列for each_item in movi if(isinstance(each_item,list)): #isinstance内置函数(BIF)判断python类型
for nested_item in each_item: if isinstance(nested_item,list): for deeper_item in nested_item: print(deeper_item) else: print (nested_item)
每次增加一个内列表,就多写一个if…和for…,往往过于复杂的代码都是好东西…
函数封装——递def print_lol(the_list):
for each_item in the_list: if isinstance(each_item,list): print_lol(each_item) else: print(each_item)e Holy G1975
Terry Jone
91
Graham Chapman
Michael Palin
John Cleese
练习2——列表推导式
形式: [表达式 for 变量 in 列表] or [表达式 for 变量 in 列表 条件]
test1 =[1,2,3,4,5,6,7,8,9]print [v*10 for v in test1 if v>4]
[50, 60, 70, 80, 90]
与dict构造函数结合
timesten = dict([(v,v*10) for v in test1]) #{1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 80, 9: 90}timesten[2] #20
也可以增加多重循环
print [(i,j) for i in test1 if i>6 for j in range(3)]#[(7, 0), (7, 1), (7, 2), (8, 0), (8, 1), (8, 2), (9, 0), (9, 1), (9, 2)]
嵌套列表降维
matrix = [[0,1,2,3], [4,5,6,7], [8,9,10,11]]flattened = []for row in matrix: for i in row: flattened.append(i)
使用列表推导式
flattened = [i for row in matrix for i in row] #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
获取目录里的文件名列表
import osfiles = []for f in os.listdir('./.ropeproject'): if f.endswith('.py'): files.append(f)
使用列表推导式
files = [os.path.join('.\\.ropeproject', f) for f in os.listdir('.\\.ropeproject') if f.endswith('.py')]
练习3——lambda表达式
lambda存在意义就是对简单函数的简洁表示,Python用lambda函数创建匿名函数
函数语法:lambda [arg1,[,arg2,….argn]] : expression
sum = lambda x, y : x + yprint(sum(2, 3)) # 5
lambda表达式常用来编写跳转表(jump table),就是行为的列表或字典
L =[(lambda x : x**2),(lambda y:y**3),(lambda z:z**4)]print L[0](2),L[1](3),L[2](4)D ={'f1' : (lambda x : x**2),'f2':(lambda y:y**3)}print D['f1'](1),D['f2'](2)
列表解析比map功能强大
print [x**2 for x in range(10)] print map((lambda x: x**2), range(10))
练习4——字典操作
dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}for k,value in dict.items(): print k,value
练习5——带任意数量参数的函数
def foo(*args): numargs = len(args) print "参数个数:{0}".format(numargs) for i,x in enumerate(args): print "Argument {0} is :{1}".format(i,x)foo('I','engage','ML')#参数个数:3#Argument 0 is :I#Argument 1 is :engage#Argument 2 is :ML
参考资料:
- http://www.oschina.net/translate/python-functions
- http://python.jobbole.com/84326/
- 《Head First Python》
- https://wiki.python.org/moin/BeginnersGuide/Programmers
- Python快速开发入门重点笔记
- Python快速入门笔记
- python快速入门笔记
- Python入门重点
- Python学习笔记2:Python快速入门
- Python学习笔记 01 快速入门
- 《Python核心编程 》笔记-快速入门
- Python快速入门学习笔记(一)
- Python快速入门学习笔记(二)
- 《Flask Web开发》重点笔记
- iPhone开发入门笔记(一)—快速入门
- <PY><core python programming笔记>C2 快速入门
- python学习笔记(第二章,快速入门)
- Python 学习笔记1 - 快速入门与web2py
- Python核心编程笔记-第2章:快速入门
- python进阶之简易开发工具Jupyter Notebook 快速入门
- Python快速入门
- Python快速入门
- Java实现office文档与pdf文档的在线预览功能
- ceph 自定义操作
- JSTL
- 【译】STM32L4x6系列用户手册第四章
- JAVA编程中默认字符编码格式修改方法——Charset.defaultCharset()
- Python快速开发入门重点笔记
- 解决flexpaper读取本地文件问题,JAVA+TOMCAT
- 微信小程序不能实现跳转
- gradle编译错误汇总
- codeforces—— 707A —— Brain's Photos
- Spark2.1.1<scala版本不兼容问题>
- NYOJ 14会场安排问题
- 数据处理(三)高级部分数据聚合
- Java的高级类特性二