《大量数据的表示和处理.ppt》由会员分享,可在线阅读,更多相关《大量数据的表示和处理.ppt(28页珍藏版)》请在三一文库上搜索。
1、大量数据的表示和处理,数据复杂性,简单数据 单个数据 无内部结构(不可分,原子) 复杂数据 由多个相关数据组成 可用集合体类型表示 单个,但有内部结构 可用面向对象的类刻画,2,2,2,3,3,3,数据集合体,大量同类型数据组成一个整体 一次物理实验得到的大批数据 一个文档中的大量单词 一个画布上的所有图形 一个学校里的所有学生, Python提供集合体数据类型: list, tuple, dict, set, file,4,4,4,数据结构,构成一个整体的大量数据成员一般是“相关的“,即其间存在某种逻辑关系 不但要表示各数据成员,还要表示其间逻辑关系 逻辑关系可以体现在存储结构中 例如:字符
2、串“HELLO“ 连续存储的序列结构即可表示5个字符间的关系 分散独立存储5个字符,则无法表示其间关系 存储结构必须有利于对数据的操作,序列,序列:多个数据项按次序排列而形成的集合体数据 次序是排列先后次序,并非数据项的值的比较 Python的str,list,tuple都是序列,5,5,5,6,6,6,序列的操作,通用的序列操作 s1 + s2 s * n或n * s si或si:j或si:j:k len(s) min(s) max(s) x in s或x not in s,7,7,7,字符串,回顾:字符串是字符序列. 基本操作:索引,子串,合并,重复. string库 不能修改 字符串作为
3、对象 方法,8,8,8,例:字符串对象方法, s = “I think, therefore I am.“ s.count(I) 2 s.find(re) 12 (s.lower().replace(i,I) I thInk, therefore I am. s.split() I, think, therefore, I, am. s.islower() False,9,9,9,列表,回顾:Python列表是由多个数据项组成的序列,可通过索引引用列表中的数据. Python列表的特点: 列表的成员可以是任何数据类型; 列表的成员可以修改 ai = x ai:j = b del ai del
4、ai:j,列表对象,Python将列表实现为对象,并提供了很多方法.,10,例:列表对象的方法, a = Irrational,3.14,2.718,pi and e a.sort() a 3.14, 2.718, Irrational, pi and e a0.reverse() a 2.718, 3.14, Irrational, pi and e a.insert(2,number) a 2.718, 3.14, Irrational, number, pi and e print a.pop(0) 2.718, 3.14 a Irrational, number, pi and e,1
5、1,编程案例:统计程序(1),统计指标 累积型:如总和.可以累积计算 sum = 0 data = raw_input(“输入新数据:“) while data != “: x = eval(data) sum = sum + x 整体型:如中位数.不能累积计算,只能在获得全体数据后计算. 中位数, 一组数据按从小到大(或从大到小)的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数),12,编程案例:统计程序(2),# statistics.py def getInputs(): def sum(aList): def mean(aList): def median(aList):
6、 def main(): data = getInputs() sigma = sum(data) xbar = mean(data) med = median(data) print main(),13,元组,回顾:元组也是序列,适用所有序列操作. 元组的特点:不能修改 若序列创建后就不再改变,则可表示为元组:效率高,防止误操作. Python也将元组实现为对象. 方法: .index(x) .count(x) tuple()可将字符串和列表转换成元组.,14,例:元组, x = 1,2,3 # 将元组(省略了括号)赋值给x x (1, 2, 3) x,y,z = 1,2,3 # 实为元组赋
7、值 x 1 y,z (2, 3) t = (“Lucy“,(“Math“,90) t11 90 tuple(hello) (h, e, l, l, o),15,集合:无序集合体,Python提供set类型 元素无序 元素不重复 set值的创建: 用. 用set(.):可将字符串,列表,元组转换成集合 空集:set(),而非,16,例:集合值的创建, 1,2,3 set(1, 2, 3) s = 1,1,2,2,2,3,3 s set(1, 2, 3) set(set) set(s, e, t) set(1,1,1,2,1) set(1, 2) set(1,2,1,1,2,3,4) set(1,
8、 2, 3, 4) set() set(),17,集合运算,基本就是数学中的集合运算,18,例:集合运算, s1 = 1,2,3,4,5 s2 = 2,4,6,8 6 in s1 False s1 | s2 set(1, 2, 3, 4, 5, 6, 8) s1 & s2 set(2, 4) s1 - s2 set(1, 3, 5) s1 |= s2 s1 set(1, 2, 3, 4, 5, 6, 8) len(s2) 4,19,集合对象,Python以面向对象方式实现set,20,字典:无序集合体,在集合体中查找数据: 序列采用索引查找:根据位置检索. 字典采用关联查找:根据给定数据检索与
9、之关联的数据. 字典类型dict:“键-值对”的无序集合. 给定“键“,查找与之关联的“值“ 存储:按内部最有效的方式,不保持创建顺序. 键类型常用字符串,整数;值类型则任意.,21,字典的操作,字典创建 d = k1:v1, k2:v2, . , kn:vn 或dict() 检索:从ki检索vi dki 值可修改 dki = ,22,例:字典创建, d = Lucy:1234,Tom:5678,Mary:1357 print d Mary: 1357, Lucy: 1234, Tom: 5678 d1 = dict(name=“Lucy“,age=8,hobby=(“bk“,“gm“) d1
10、 hobby: (bk, gm), age: 8, name: Lucy d2 = dict(5,1),Worker,(6,1),Child,(7,1),CPC) d2 (5, 1): Worker, (6, 1): Child, (7, 1): CPC,23,例:字典检索, d1“name“ Lucy d1“age“ 8 d1“hobby“ (bk, gm) d1“gender“ Traceback (most recent call last): File “, line 1, in d1“gender“ KeyError: gender d2(6,1) Child d27,1 CPC,2
11、4,例:字典修改,修改与指定键对应的值 如果指定的键不存在,则相当于添加键值对 d1“age“ = 9 d1 hobby: (bk, gm), age: 9, name: Lucy d1“gender“ = “F“ d1 hobby: (bk,gm), age:9, name:Lucy, gender:F 删除键值对 del dk,25,字典对象的方法,Python将字典实现为对象,支持的方法: 键存在性:.has_key() 键列表:.keys() 值列表:.values() 键值对列表:.items() 清空字典:.clear(),26,例:字典对象的方法, d1.keys() hobby, age, name, gender d1.values() (bk, gm), 9, Lucy, F d1.items()0:2 (hobby, (bk, gm), (age, 9) d1.has_key(“gender“) True,27,End,28,
链接地址:https://www.31doc.com/p-2314798.html