您的位置:首页 > 理论基础 > 数据结构算法

关于python内置数据结构和第三方库数据结构的切片索引易混内容

2017-02-26 20:44 211 查看
学习python有一些时间了,经常遇到各式各样的bug,总体来说bug产生的原因其实无非是因为表达歧义。要知道对于计算机来说语言是传达给他们的指令。基于二进制算法的计算机cpu能够判断的只有是否两个概念。无论多么复杂的程序最终分解到机器能理解的程度都是是或否。

所以接下来记录一个我自己遇到的初学者混淆的东西。python内置数据结构和第三方库如pandas,numpy支持的数据结构之间的区别。

python内置list,列表。是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

list=[1,2,3]
list[-1]上述是列表的定义和切片操作。[-1]表示list的最后一个也就是list[2]=list[-1]
pandas, 知名金融应用方面的第三方库。其中一个数据室Series,序列ser=Series(np.arange(3.))
ser[-1]这里用ser[-1]来索引序列的最后一个数是会导致error的。这里《利用python进行数据分析》的第五章pandas数据索引讲到了其中的原因。具体原文不分析了。
按照我们自己的意愿,ser[-1]是整数索引找到index的最后一个数输出对应的value。但是如果index不是默认的,而是通过index=[2,3,4]来定义的那么会出现如下问题:讲index视为一个list,ser[-3]的结果是2,那么得到的2这个数是该直接输出对应的value呢还是继续在索引index为2也就是第三个index此时为4对应的value这里是模糊不清的。

相反如果定义一个index 为非整数‘b’,‘a’,'c'.就不存在这样的问题了。可以使用【-integer】来进行索引series的value。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: