如何打印出python多维列表中的某一列
2018-01-24 11:23
603 查看
在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。
也正因为列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,也就不支持一次性读取一列,即使是对于标准的二维数字列表:
>>> a=[[1,2,3],[4,5,6]]
>>> a[0] #取一行
[1, 2, 3]
>>> a[:,0] #尝试用数组的方法读取一列失败
TypeError: list indices must be integers or slices, not tuple 我们需要用列表解析的方法读取一列:
>>> b=[x[0] for x in a]
>>> print(b)
[1, 4] 而对于数组,可以直接读取:
>>> 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。
也正因为列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,也就不支持一次性读取一列,即使是对于标准的二维数字列表:
>>> a=[[1,2,3],[4,5,6]]
>>> a[0] #取一行
[1, 2, 3]
>>> a[:,0] #尝试用数组的方法读取一列失败
TypeError: list indices must be integers or slices, not tuple 我们需要用列表解析的方法读取一列:
>>> b=[x[0] for x in a]
>>> print(b)
[1, 4] 而对于数组,可以直接读取:
>>> import numpy as np
>>> a=np.array([[1,2,3],[4,5,6]])
>>> a[:,0]
array([1, 4])当然列表在处理混合数据时也有着独特的优势。
相关文章推荐
- 一周stackoverflow热门问题选登:如何用Python for循环实现列表中数据两两循环打印?
- python 列表(list)元组(tuple)字典(dict)如何打印中文总结
- python中列表,元组,字符串如何互相转换
- python-2-1 如何在列表, 字典, 集合中根据条件筛选数据-列表解析-filter
- 如何利用Python和win32编程避免重复性体力劳动(四)——下拉列表操作:CB_SETCURSEL、CBN_SELENDOK和CBN_SELCHANGE
- 在Python中分别打印列表中的每一个元素方法
- Python 列表如何获得一个指定元素所在的下标
- Python中打印如何不换行?
- Python(5)使用for...in循环和列表推导式打印一个99乘法表
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
- python语言打印含有中文的列表技巧
- python中列表 元组 字符串如何互相转换
- python中如何正确的复制列表
- python打印列表中的内容,而不是unicode字符
- python实现查找excel里某一列重复数据并且剔除后打印的方法
- python如何不换行打印
- python如何把嵌套列表转变成普通列表
- [转]python 如何在一个for循环中遍历两个列表
- Python 如何对含有重复列表的列表求集合?
- python 接口测试1 --如何创建和打印日志文件