在python中,普通的列表list和numpy中的数组array是不一样的,最大的不同是:
一个列表中可以存放不同类型的数据,包括int、float和str,甚至布尔型;而一个数组中存放的数据类型必须全部相同,int或float。
在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,4]需要4个指针和四个数据,增加了存储和消耗cpu,而array1=numpy.array([1,2,3,4])只需要存放四个数据,读取和计算更加方便,因此在做纯数字操作时,建议使用array。
也正因为列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,也就不支持一次性读取一列,即使是对于标准的二维数字列表:
例如取第三列的数据:
lst = [(1,2,3), (1,2,3), (1,2,3)]
lst = [t[2] for t in lst]
lst
[3, 3, 3]
#上面是取list中的第三列数据
把列数据变成行数据:
lst = [(1,2,3), (1,2,3), (1,2,3)]
list(zip(*lst))
[(1, 1, 1), (2, 2, 2), (3, 3, 3)]