开发者学堂课程【高校精品课-华东师范大学-人工智能基础:Python 数据处理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/920/detail/15569
Python 数据处理
Python 的数据类型
1、Number 数值型
本节课学习 Python 的数据处理,Python3 中提供了六个标准的数据类型,第一个是 Number 数值型,后面都是序列,包括 String字符串也是序列。数列就是包含多个数值能逐个进行访问。
数值型是一个不可变类型,这句话的理解看
i=3 print(id(i))
i+=1 print(id(i))
这段代码,运行通过ID函数可以看到变量i在加1之后,内存地址发生了改变,i+=1不是在原有的int对象上+1,而是重新创建一个int对象,其值为4,字符串是一种序列。
访问单个字符时用中括号指定下标,输入
str=pystring print(str[1]),
把第一个字符打出来,这时可以看到str的下标是从0开始的,当需要切片时,使用头下标冒号尾下标作为切片参数,print(str[1:3]),可以看到截取的是第二第三个字符,可以将这种访问方式想象为栅栏式访问方法。
例如对字符a、b、c、d、e、f来说,位子是在字符的前面,可以从前面开始,先是0号位置的栅栏,接下来才是0号数据,其次为1号位置,1号数据。2号位置,2号数据。
3号位置,3号数据。下面为str数据类型,原数位置正方向依次为0、1、2、3、4、5,反方向为-1、-2、-3、-4、-5、-6。访问2,假设为s,s[2]:p。再来访问-4位置,s[-4]:p,铁球的位置为原数的栅栏位置,分别为0、1、2、3、4、5、6,反方向为-1、-2、-3、-4、-5、-6。访问s[1:3] :op,s[4: ]:NK,s[-3:-1];IN,s[ :-4】:WO。这就是字符的访问。
要访问 str 的[1:3]发现是从1号位子到3号位子之间的数据,获取的是第二个字符和第三个字符,因为数据3是在位子3的前面。Python 的基本序列访问方式都与字符串相似,特殊情况,比如从后往前访问,可以看到-1的数据以及-1的位置是反过来的。
继续输入print(str[-3:-1])运行,这时截取出来的是in即倒数第三个和倒数第二个字符,接下来输入 print(str[2:-1]) 运行,这时截取的是正数第三个s和倒数第二个n字符,如果冒号后边没有索引直到最后,继续输入print(str[2:])运行,这时可以发现从编号2即第三个字符开始一直到最后,获取第三个字符之后的所有字符。同样如果从第一个开始也可以省略冒号前面的索引,比如 print(str[ : ])运行,这时读取所有的字符。
2、列表类型 list
接下来要介绍的数据类型是列表类型 list,列表是 Python 出现最多的数据类型,由于使用方便,因此处理数据是大多用列表,列表的数据用方括号,里边可以包含任何数据类型,甚至还可以在嵌套列表。列表list的切片方式和字符串相同,也是头下标冒号尾下标。输入lis=[‘cat’,56,1.13.’short’,[7,8,9]],7,8,9是一个嵌套的子列表,运行使用lis查看。
下面介绍列表怎样建利,集循环列表中每一项数据。建立一个列表数据有两种方式,第一种是for,使用for语句直接建立 list 对象,可以输入for item in lis: print(item)运行,可以看到列表中的每一项都被打印出来了。
第二种访问列表的方式是使用下标的便利,输入for i in range (len(lis)):print (lis[i]),len函数可以获取列表的长度。这个例子先试用 len 函数获取列表的长度,接下来使用range函数生成下标序列,range 函数的作用是生成从【0,n-1】的整数序列,在 for 循环中依次取每个数字作为下标来访问列表的每一项。
对比两种方法的区别,方法一是直接读取每一项,方法二是按下标访问。
3、按照索引便利
第三种便利列表的方法是按照索引便利,输入for i in enumerate(lis):print(i)运行,使用 enumerate 函数将可便利的数据对象组合成一个索引序列,再结合 for 循环进行便利,这个方法可以用于列表,此外元组和字符串也可以使用。
4、元组 tup
第四种数据类型是元组 tup ,元组和列表很像,但是元组中的数据不可改变,而 list 可以修改,元组中的数组用小括号()表示,它的切片方式和字符串的序列相同,
输入tupl=(‘cat’,56,1.13.’short’,[7,8,9]),tupl运行可以看到元组创建完成,接下来输入 tupl[3: ]访问,这便是从3开始一直到最后,即第四个第五个元素。还可以对元组进行拼接,接下来新建一个短的元组,输入tinytuple=(‘fast’,10)接下来将短的元组拼接到前面的tupl当中即print(tupl+tinytuple),进行打印可以看到短的元组已经拼接到之前的元组后面。
需要注意的是原来的 tupl 并没有被改变,可以查看 tupl 发现仍然是原来的值。另外还有一个问题元组是不可变的,但元组里面放了 list,list 是刻修改的。由于 list 可修改即使放在了元组里还是可以修改。
接下来进行修改元组中的可修改项,近似于二维数字访问,输入 tupl第一个下标为[4],第二个下标为[1],运行得到了 list7、8、9中的8,第五个元素是列表7、8、9,其中的索引1表示第二个,因此取的是8。接下来将8修改成6再查看 tupl,可以看到字符8修改成6,之后为7、6、9修改成功。
5、字典类型 dictionary
字典类型dictionary 是要介绍的另外一种类型,它的形式比较特殊,需要注意的是它具有 k和value 成对的,k是键值,当使用字典构造的二位数据之后,k可以理解为数据的 title,也可以当做数据的特征名使用,dictionary 的数据用大括号扩起来,刚才学习了中括号的列表,小括号的元组,现在是大括号的字典。
输入dict={‘Name’:’Zara’,’Age’:7,‘class’:’First’}查看,这是学生 Zara的信息,一个班级有很多学生,因此一个k后面就要跟一组数据,比如列表就可以作为value使用。
下面将name后面挂入一个列表Zara后面增加tom,may。Age 也修改成列表【7,8,7】,class保持不变。可以看到 name 和 age 都变成了list,也可以直接添加k和 value,输入dict[‘score’]=100,dict查看,可以看到新的’score’:{100}已经加入。在使用时可以使用k直接去一个数据,这就是字典方便的地方。将k放在中括号里进行读取。比如输入dict[‘name’]查看name列表。
6、set 集合
最后介绍的数据类型就是 set 集合,集合也是用大括号来定义数据,集合的概念来自于数学中的集合,集合一般处理包含关系,值得注意的是集合中的数据不重复且无序,只用来判断集合里面谁在里面谁不在里面不关心数据,所以集合是无序的。
当按顺序放到集合中,读取出来的顺序是不一样的,输入sset={‘dog’,’cat’,’cow’,puck’,’pig’}
查看 sset,可以发现sset和原来定义中的已经发生变化,集合是无序的。
集合的数据是不重复的,重复的数据放进去会被去除,在实际应用中是很有用的小技巧,经常用于数据去重复。
输入sset={‘dog’,’cat’,’cow’,puck’,’pig’},
在刚才的数据中增加一项
sset={‘dog’,’cat’,’cow’,puck’,’pig’,’dog’},
接下来显示sset,可以看到结果当中只保留了一个 dog,重复的数据被去除,集合也使用大括号和 dict 共用一种。
但当创建空集合时不能用大括号,只能用set 括号定义空集合,因为空的大括号创建的是空字典。空字典是优先的,集合常用的操作是判断一个数据在不在里面使用 in 操作符,输入‘cat’ in sset,返回的是 true。
如果输入‘ccat’ in sset,返回的是false。
In 返回的是 true 和 false 真还是假,这就是判断一个集合当中是否存在数据。
以上就是 Python 的六种标准类型,充分体现了 Python 充分、强大的数据处理能力。