Python中数组的基本操作

Python020

Python中数组的基本操作,第1张

先定义一个数组列表

列表合并也可以用+,但是用+的话,会产生一个新的列表(当然也可以赋值给任何的变量),而extend则只是修改了原来的对象

只读数组,只能查看不能编辑,列表的切片操作同样适于元组。

表达方式:tuple=("元素1","元素2","元素3"),中间同样用,隔开

特殊的元组:tupleZero=()空元组

                        tupleOne=("元素1",)  只有一个元素,后面要跟一个,(注意好的习惯的养成)

作用:1.对于一些不想被修改的元素,可以放在元组里面

        2.元组可以在映射(和集合的成员)中当作键使用,而列表不行

        3.元组作为内建函数和方法的返回值

enumerate(列表对象,返回标签起始值(默认为零))

上面的例子可以看出,返回的i是一个元组,如果不想要元组的话,可以用两个参数接收:

数组允许进行批量操作而无需使用for循环,因此更加简便,这种特性也被称为向量化。任何两个等尺寸之间的算术操作都应用逐元素操作的方式进行。

同尺度数组之间的比较,会产生一个布尔型数组。

上述操作均是在同尺度数组之间进行的,对于不同尺度数组间的操作,会使用到广播特性。

索引:获取数组中特定位置元素的过程;

切片:获取数组元素子集的过程。

new_a = a.astype(new_type)

astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致。

ls = a.tolist()

转置是一种特殊的数据重组形式,可以返回底层数据的视图而不需要复制任何内容。

数组拥有 transpose 方法,也有特殊的 T 属性。

对于更高纬度的数组, transpose 方法可以接受包含轴编号的元组,用于转置轴。

ndarray的 swapaxes 方法,通过接受一对轴编号作为参数,并对轴进行调整用于重组数据。

swapaxes 方法返回的是数据的视图,而没有对数据进行复制。

Reference:

《Python for Data Analysis:Data Wrangling with Pandas,Numpy,and IPython》

这里介绍几个常用的列表操作:

1、添加元素

添加元素使用列表的内置方法append

number = [1, 2, 3, 4]

number.append(5) # number = [1, 2, 3, 4, 5]

number.append([6,7]) # number = [1, 2, 3, 4, 5, [6, 7]]

number.append({'a':'b'}) # number = [1, 2, 3, 4, [6, 7], {'a', :'b'}

可以看到强大的python列表可以嵌套任意类型

2、列表相加

要想连接两个列表,可以使用+号连接

a = [1, 2, 3]

b = [4, 5, 6]

c = a + b # c = [1, 2, 3, 4, 5, 6]

也可以使用列表内置方法extend连接两个列表

a = [1, 2, 3]

b = [4, 5, 6]

a.extend(b) # a = [1, 2, 3, 4, 5, 6]

用+号会创建一个新通对象,使用extend则在原来的对象上面修改

3、列表去重复

列表本身没有去除重复的功能,但是可以借助python的另外一个类型set(help(set)查看)

a = [1, 2, 3, 3,2, 1]

b = list(set(a)) # b = [1, 2, 3]

也可以借助字典类型的内置方法

a = [1, 2, 2, 3, 1, 3]

b = {}.fromkeys(a).keys() # b = [1, 2, 3]