本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:如何七周成为数据分析师19:Python的数据结构(2)

时间:2017-08-13 00:36来源:本港台现场报码 作者:www.wzatv.cc 点击:
学生属性被拆分成多个数组,利用索引来表示其信息,这里的索引有些类似SQL的主键, atv ,通过索引查找到信息。但是这种方法并不直观,实际应用会比

学生属性被拆分成多个数组,利用索引来表示其信息,这里的索引有些类似SQL的主键,atv,通过索引查找到信息。但是这种方法并不直观,实际应用会比较麻烦,更好的方法是表示成多维数组。

码报:如何七周成为数据分析师19:Python的数据结构

所谓多维数组,是数组内再嵌套数组,图中表示的是一个宽度为3,高度为3的二维数组。此时student[0]返回的是数组而不是单一值。这种方法将学生信息合并在一起,比第一个案例更容易使用。

如果想选择第一个学生的性别,应该怎么办呢?很简单,后面再加一个索引即可。

码报:如何七周成为数据分析师19:Python的数据结构

现在尝试快速创建一个多维数组。

码报:如何七周成为数据分析师19:Python的数据结构

[0]*3将快速生成3个元素值为0的数组,这是一种快捷操作,而[row]*4则将其扩展成二维数据,因为是4,所以是3*4的结构。

这里有一个注意点,当我们想更改多维数组中的某一个元素而不是数组时,开奖,这种方式会错误。

码报:如何七周成为数据分析师19:Python的数据结构

按照正常的想法,martix[1][0]将会改变第二个数组中的第一个值为1,但是结果是所有数组的第一个值都变成1。这是因为在matrix = [row] * 4操作中,只是创建3个指向row的引用,可以简单理解成四个数组是一体的。一旦其中一个改变,所有的都会变。

比较稳妥的方式是直接定义多维数组,或者用循环间接定义。多维数组是一个挺重要的概念,它也能直接表示成矩阵,是后续很多算法和分析的基础(不过在pandas中,它是另外一种形式了)。

元组

tuple叫做元组,它和数组非常相似,不过用圆括号表示。但是它最大的特点是不能修改。

码报:如何七周成为数据分析师19:Python的数据结构

当我们想要修改时就会报错。

码报:如何七周成为数据分析师19:Python的数据结构

而选择和数组没有差异。

码报:如何七周成为数据分析师19:Python的数据结构

元组可以作为简化版的数组,因为它不可更改的特性,很多时候可以作为常量使用,防止被篡改。这样会更安全。

字典

字典dict全称dictionary,以键值对key-value的形式存储。所谓键值,就是将key作为索引存储。用大括号表示。

码报:如何七周成为数据分析师19:Python的数据结构

图中的’qinlu’是key,18是value值。key是唯一的,value可以对应各种数据类型。key-value的原理不妨想象成查找字典,拼音是key,对应的文字是value(当然字典的拼音不唯一)。

字典和数组的差异在于,因为字典以key的形式存储和查找,所以它的查询速度非常快,毕竟翻字典的时候你只要知道拼音就能快速定位了。对dict数据结构,10条记录和10万条记录的查找没有区别。

这种查找方式的缺点是占用内存大。数组则相反,查找速度随着元素的增加逐渐下降,这个过程想象成程序在一页页的翻一本没有拼音的字典,直到找到内容。数组的优点是占用的内存空间小。

所以数组和字典的优缺点相反,dict是空间换时间,list是时间换空间,这是编程中一个比较重要的概念。实际中,数据分析师的工作不太涉及工程化,选用数组或者字典没有太严苛的限制。

细心的读者可能已经发现,字典定义时我的输入顺序是qinlu,lulu,qinqin,而打印出来是lulu,qinlu,qinqin,顺序变了。这是因为定义时key的顺序和放在内存的key顺序没有关系,key-value通过hash算法互相确定,甚至不同Python版本的哈希算法也不同。这一点应用中要避免出错。

既然字典通过key-value对匹配查找,那么它自然不能不用数组的数值索引,它只能通过key值。

码报:如何七周成为数据分析师19:Python的数据结构

如果key不存在,会报错。

码报:如何七周成为数据分析师19:Python的数据结构

通过in方法,可以返回True或False,避免报错。

dict和list一样,直接通过赋值更改value。

码报:如何七周成为数据分析师19:Python的数据结构

能不能更改key的名字?不能,key一旦确定,就无法再修改,好比字典定好后,你能修改字的拼音么?

dict中删除key和list一样,通过pop函数。增加key则是直接赋予一个新的键值对。

码报:如何七周成为数据分析师19:Python的数据结构

dict的keys和values两个函数直接输出所有的key值和value值。如果要转换成数组,则再外面嵌套一个list函数。

码报:如何七周成为数据分析师19:Python的数据结构

items函数,将key-value对变成tuple形式,以数组的方式输出。

码报:如何七周成为数据分析师19:Python的数据结构

字典可以通过嵌套应用更复杂的数据格式,和NoSQL与JSON差不多。

码报:如何七周成为数据分析师19:Python的数据结构

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容