博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataMining--Python基础入门
阅读量:4964 次
发布时间:2019-06-12

本文共 3650 字,大约阅读时间需要 12 分钟。

科学计算发行版:Python(x,y),集合了诸多包。

一、Python使用入门

1、基本命令

(1)基本运算

*,**分别表示乘法和幂运算,可进行多重赋值:

In [1]: 3*4Out[1]: 12In [2]: 3**4Out[2]: 81In [3]: a,bb,ccc=2,'python',[2,3,4]In [4]: aOut[4]: 2In [5]: bbOut[5]: 'python'In [6]: cccOut[6]: [2, 3, 4]

多重赋值可针对不同类型,如数值、序列、字符串等。

(2)循环与判断

range(a,b,c)得到序列,间隔为c,首项为a,最大值为b-1;range(a)表示从0到a-1:

In [7]: range(1,11,2)Out[7]: [1, 3, 5, 7, 9]In [8]: range(13)Out[8]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

  循环和判断: 

#for循环for i in range(11):    a=a+i**2print a#while循环i=0;a=2;while i<11:    a=a+i**2;    i=i+1;print(a)#if 判断s=0;if s in range(2):    print u's 在里面'    #u表示Unicode字符串else:    print u's 不在里面'

 u'字符串'表示Unicode字符串;

 (3)自编函数

In [48]: def fun1(x):    ...:     return x*3    ...:     ...: fun1(3)Out[48]: 9In [49]: def fun2(x=1,y=2):#这里给出默认参数    ...:     return [x+y,x-y] #返回列表    ...:     ...: fun2()  #返回默认值Out[49]: [3, -1]In [50]: fun2(2,3)Out[50]: [5, -1]In [51]: def fun3(x,y)    :    ...:     return x*y,x^y   #双重返回。类似于多重赋值#    ...:     ...: fun3(2,4)Out[51]: (8, 6)

另一种简洁的方法:lambda 

In [57]: f1=lambda x:x*x-3*x    ...: f1(5)Out[57]: 10In [58]: f2=lambda x,y,z:x+y,x*z,y**z    ...: f2(1,3,2) #lambda中的表达式不能含有命令,而且只限一条表达式,无法得到结果Traceback (most recent call last):  File "
", line 1, in
f2=lambda x,y,z:x+y,x*z,y**zNameError: name 'x' is not defined

 

 2、Python数据类型:列表,元组,字典,集合

(1)元组/列表

两者的基本操作都一样,只是元组不可以修改。

In [62]: a=[1,2,3,4,'python',[1,2,3]];b=(11,22,33,44,'python',[1,2,3])In [63]: aOut[63]: [1, 2, 3, 4, 'python', [1, 2, 3]]In [64]: bOut[64]: (11, 22, 33, 44, 'python', [1, 2, 3])In [2]: a[0]=0;a #列表a的第一个元素被修改Out[2]: [0, 2, 3, 4, 'python', [1, 2, 3]]In [3]: b[0]=0;b #元组b无法修改Traceback (most recent call last):  File "
", line 1, in
b[0]=0;bTypeError: 'tuple' object does not support item assignment]In [10]: list('python') #列举出对象的每一个元素,字符串拆分为列表Out[10]: ['p', 'y', 't', 'h', 'o', 'n']In [11]: tuple((1,2,'python')) #拆分为元组Out[11]: (1, 2, 'python')

 

另外列表还有很多的操作方法,详见《Python基础教程(第二版)》。

(2)字典

In [16]: a={
'First':'zhang','Second':'qiang'}In [17]: aOut[17]: {
'First': 'zhang', 'Second': 'qiang'}In [18]: a['First']Out[18]: 'zhang'In [19]: a['Second']Out[19]: 'qiang'In [20]: dict([['No1',11],['No2',22]])Out[20]: {
'No1': 11, 'No2': 22}In [21]: b=dict([['No1',11],['No2',22]])In [22]: b['No1']Out[22]: 11

 

相当于给每一个下标的位置取了个名字。

(3)集合

集合的特点是没有重复元素,且满足集合的基本运算:{}表示集合,里面的元素会自动去重

In [27]: {1,2,3,3,3,2,1,2,4,5,5,2,3,45}Out[27]: {1, 2, 3, 4, 5, 45}In [28]: a=set([1,2,3,3,3,2,1,2,4,5,5,2,3,45])In [29]: b={1,2,55,66,2,1,55,66,77}In [30]: a|b   #集合的并Out[30]: {1, 2, 3, 4, 5, 45, 55, 66, 77}In [31]: a&b  #集合的交Out[31]: {1, 2}In [32]: a-b  #差集Out[32]: {3, 4, 5, 45}In [33]: a^b  # a∪b-a∩bOut[33]: {3, 4, 5, 45, 55, 66, 77}

 

(4)map()、reduce()、filter()函数

In [34]: a=[1,2,3,44,55]In [35]: b=[i*2+1 for i in a]In [36]: bOut[36]: [3, 5, 7, 89, 111]

 

其中的i可以认为是每一个下标,对每一个元素进行操作,返回b;map()函数将命令逐一应用,属于循环运算

In [39]: b=map(lambda x:x**2+2,a);    ...: list(b)#这是python3.0中要求的Out[39]: [3, 6, 11, 1938, 3027]

 

reduce()函数用于递归运算:

In [48]: a=range(-1,9,2)In [49]: reduce(lambda x,y:x+y,range(-1,9,2)) #前后累加Out[49]: 15In [50]: reduce(lambda x,y:x*y,range(-1,9,2)) #前后连乘Out[50]: -105In [51]: reduce(lambda x,y:x+2*y+x**2,range(-1,9,2)) #前后累加Out[51]: 27736

 

filter()依据条件函数进行过滤:

In [58]: a=range(-1,9,2);aOut[58]: [-1, 1, 3, 5, 7]In [59]: filter(lambda x:x>0 and x<6,a)Out[59]: [1, 3, 5]#选取元素中满足条件的,In [61]: [a[i] for i in range(len(a)) if a[i]<6 and a[i]>0 ]Out[61]: [1, 3, 5]

 

(5)库函数的导入于使用

苦和库中的函数均可重命名

In [66]: import pandas as paIn [67]: from math import sin as zxIn [68]: zx(1)Out[68]: 0.8414709848078965

 

转载于:https://www.cnblogs.com/datamaster/p/5238934.html

你可能感兴趣的文章
更新.net core 3.0,dotnet ef命令无法使用的解决办法
查看>>
React躬行记(13)——React Router
查看>>
前端利器躬行记(1)——npm
查看>>
前端利器躬行记(2)——Babel
查看>>
前端利器躬行记(3)——webpack基础
查看>>
前端利器躬行记(4)——webpack进阶
查看>>
前端利器躬行记(5)——Git
查看>>
前端利器躬行记(6)——Fiddler
查看>>
每次阅读外文技术资料都头疼,终于知道原因了。
查看>>
zabbix短信网关调用问题总结
查看>>
130242014034-林伟领-实验一
查看>>
Insert excel data into DB
查看>>
复制和输入-编程中
查看>>
SQLSERVER 处理两个日期相减
查看>>
区间+状压 [Haoi2016]字符合并
查看>>
Forbidden You don't have permission to access / on this server.
查看>>
Windows server 2008 R2中安装MySQL !
查看>>
Intellij Idea新建web项目(转)
查看>>
raspberry 安装apache2,使其支持ssl ,并创建自签名证书
查看>>
Trie树:应用于统计和排序
查看>>