python中怎么实现数组与列表的读取
若以下回答无法解决问题,邀请你更新回答
1个回答
2018-09-04 · 百度知道合伙人官方认证企业
关注
展开全部
在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。
也正因为列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,也就不支持一次性读取一列,即使是对于标准的二维数字列表:
?
12345
>>> a=[[1,2,3],[4,5,6]]>>> a[0] #取一行[1, 2, 3]>>> a[:,0] #尝试用数组的方法读取一列失败TypeError: list indices must be integers or slices, not tuple
我们需要用列表解析的方法读取一列:
?
123
>>> b=[x[0] for x in a]>>> print(b)[1, 4]
而对于数组,可以直接读取:
?
1234
>>> import numpy as np>>> a=np.array([[1,2,3],[4,5,6]])>>> a[:,0]array([1, 4])
当然列表在处理混合数据时也有着独特的优势。
在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,4]需要4个指针和四个数据,增加了存储和消耗cpu,而array1=numpy.array([1,2,3,4])只需要存放四个数据,读取和计算更加方便,因此在做纯数字操作时,建议使用array。
也正因为列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,也就不支持一次性读取一列,即使是对于标准的二维数字列表:
?
12345
>>> a=[[1,2,3],[4,5,6]]>>> a[0] #取一行[1, 2, 3]>>> a[:,0] #尝试用数组的方法读取一列失败TypeError: list indices must be integers or slices, not tuple
我们需要用列表解析的方法读取一列:
?
123
>>> b=[x[0] for x in a]>>> print(b)[1, 4]
而对于数组,可以直接读取:
?
1234
>>> import numpy as np>>> a=np.array([[1,2,3],[4,5,6]])>>> a[:,0]array([1, 4])
当然列表在处理混合数据时也有着独特的优势。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询