python中list与数组

1、list转换为数组

python中list转换为数组的方法为:b = np.array(list)

今天在使用该方法将二维list转换为二维数组时一直不成功,结果仍然是两个list,最后发现是两个list的元素数目不一样导致的,最后修改使两者数目一致,转换成功

list对其元素的类型和各元素所包含的子元素的类型及数目没有要求,这和数组不同,数组要求类型和数目必须相同,所以在将list转换为array时需要注意这一点

2、list与数组的读取

在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。 ​ 也正因为列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,也就不支持一次性读取一列,即使是对于标准的二维数字列表:

1 a = [[1, 2, 3], [4, 5, 6]]
2 print(a[0])
3 # 结果为:[1, 2, 3]
4 print(a[:, 0])  # 以数组的方式读取一列,报错
5 # TypeError: list indices must be integers or slices, not tuple

 

1 #可以用列表解析的方式读取一列
2 a = [[1, 2, 3], [4, 5, 6]]
3 b = [x[0] for x in a]
4 print(b)
5 # 结果为:[1, 4]

 

1 # 对于数组可以直接读取
2 a = [[1, 2, 3], [4, 5, 6]]
3 a = np.array(a)
4 print(a[:, 0])
5 # 结果为:[1 4]

本文来自 lyshello123 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/songyunli1111/article/details/78109976?utm_source=copy

posted @ 2018-09-22 19:47  Latuper  阅读(3391)  评论(0编辑  收藏  举报