我们生活在多维的世界,数据亦然。电影《黑客帝国》中,人类生存在一个数据的世界中,所见识到的一切事物,包括味觉嗅觉等等,均由数据所构成。机器通过矩阵将人类串联起来,构成世界的基本元素,就是数据。
数据的维度无处不在。通常而言,数据的维度是数据的组织形式,据此区分为一维数据,二维数据,多维数据和高维数据:
- 一维数据由具有对等关系的有序或无序数据以线性方式构成,如列表和集合,对应数学中的数组。
- 二维数据,由多个一维数据构成,是一维数据的组合形式,也称表格数据,如列表,对应数学中的矩阵。
- 多维数据为一维或二维数据在新维度上的扩展,比如时间维度。
- 高维数据以简单的二元关系展示数据间的复杂结构,可以多层嵌套,如字典,JSON,XML等。
1、一维数据
一维数据是最简单的数据组织类型。其表示形式有二,如果数据有序,使用列表类型[];如果数据无序,则使用集合类型{}。
1.1 一维数据的存储
方式主要有以下几种:
分隔符 | 示例 | 备注 |
---|---|---|
空格 | 苹果 香蕉 李子 芒果 榴莲 | 元素中不能有空格 |
逗号 | 苹果,香蕉,李子,芒果,榴莲 | 元素中不能有逗号 |
换行符 | 苹果\n香蕉\n李子\n芒果\n榴莲 | |
特殊符号 | 苹果@香蕉@李子@芒果@榴莲 |
注意,上述标点符号均为英文标点符号,也即半角符号。
无论采用任何方式分割和表示,一维数据都具有线性的特点,for循环可以遍历数据,进而对每个数据进行处理。
1.2 一维数据的读取
txt=open('file').read() #file为欲读取的文件路径及名称
ls=txt.split() #根据相应分隔符进行分割
txt.close()
1.3 一维数据的写入
ls=[...] #欲写入列表
f=open('file','w') #欲写入文件
f.write(' ',join(ls)) #欲写入分隔符
f.close()
2、二维数据
二维数据常见的表示形式为二维列表,类似于平面直角坐标系,由行(row)和列(column)来确定某个元素。外层列表中每个元素可以对应一行,也可以对应一列,需要使用两层for循环遍历每个元素。
2.1 二维数据的存储
二维数据常用CSV(Comma-Separated Values)格式来存储。CSV文件的每一行是一维数据,整个CSV文件是一个二维数据。
CSV为国际通用的一、二维数据存储格式,是数据转换的标准格式,一般以.csv为扩展名,可为Excel等编辑软件读取、编辑及另存,其规范如下:
- 开头不留空,以行为单位。
- 可含或不含表头,表头居文件第一行,可另行存储。
- 一行数据不跨行,无