python的切片操作十分简洁,但是自己遇到的问题是在切片操作发现省略号,经过查询原来是高维数组切片操作。现在进行一下记录。
首先,第一个问题是python中的列表list和numpy中的array的关系。二者是不同的。虽然都可以构建数组进行切片操作,但是二者是两回事,可以互相转换。
list是python内置的集合类型,与tuple元组、dictionary字典同属三大集合类型。list可以是字符也可以是数字,可以是任意对象混合,当全是数值时,可以当做数组使用。但是list保存的是对象的指针,当保存一个list时,不仅要保存对象还要保存对象指针,显然比较浪费资源。
list对于list存在着添加元素append、删除元素remove等操作,但是array没有。最大不同,无法对整个list的数值进行操作,如两个list相加只是单纯的叠加,并不是数值上的相加;或者list乘以常数时,是多次的叠加。
>>> a = [1,2,3]
>>> type(a)
<class 'list'>
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> a + a
[1, 2, 3, 4, 1, 2, 3, 4]
>>> a * 3
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
array是numpy包中的类