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]]
2print(a[0])
3# 结果为:[1, 2, 3]
4print(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]
4print(b)
5# 结果为:[1, 4]
1# 对于数组可以直接读取
2 a = [[1, 2, 3], [4, 5, 6]]
3 a = np.array(a)
4print(a[:, 0])
5# 结果为:[1 4]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论