一维数据和二维数据

此文章为本人学习所得,如有不足之处,欢迎指正,分享原创,一起进步

维度:数据的组织形式


一维数据

由对等关系的有序或无序数据构成,采用线性方式(一条直线排开)组织

对等关系:这些数据平级关系(不是包含、从属关系)

一维数据的表示-----

如果数据间有序:使用列表类型。如:一维列表ls = [3.1 , 3.02 , 4.15]
如果数据间无序:使用集合类型,如:一维集合st ={ 4.15 , 3.02 , 3.1}

切记:for循环可以遍历数据,进而对每个数据进行处理

一维数据的存储-----

方式:空格分隔、逗号分隔、特殊符号(如:$)

缺点:数据中不能出现分隔符

原因:用某符号作为数据的分隔符,那么数据本身就不能出现该符号,否则就无法判断是分隔符还是一个标点符号,所以选择根据数据的特点,去选择哪种符号作为分隔符

一维数据的处理-----

(一)读入:从以$为分隔符的文件中读入数据。文件→解释器(idle中)

1 fi=open(“abc.txt”)
2 txt = fi.read()        #得到一整串的str文本
3 ls=txt.split("$")    #文件的分隔符是什么,str.split()中的符号就是什么。得到以这些数据为str元素的列表。若每行有回车,则换行符属于最后一个数据的一部分
4 fi.close()

Example1:(以一个$作为分隔符)

结果:

Example2:(以两个$作为分隔符)

结果:

(二)写入:将以$为分隔符的数据写入文件。解释器(idle中)→文件

1 ls=[‘中国‘,‘美国‘,‘日本‘]        #这是将要写入文件的数据,用列表形式组织(存放再idle中)
2 fi=open("123.txt","w")        #创建空文件并待写(做好写入的准备,但还没开始写入),如果已有该文件,则会先清空之前的内容,再处于待写状态
3 txt = "@".join(ls)    #打算用哪种分隔符,就用哪种。"".join的作用:将引号内的符号插进列表ls的元素之间,并去掉中括号和各元素外面的引号
4 fi.write(txt)
5 fi.close()

结果:

维数据

由多个一维数据构成,是一维数据的组合形式。也称为表格数据,其中,表头是二维数据的一部分,也可以不作为其中的一部分

维数据的表示-----

用二维列表表示

二维列表:本身是列表,里面的元素也是列表,即列表内还有列表。如下:

里面的元素之间可以不换行,但必须要有分隔符。里面元素之间的排版随意,但为了美观,建议换行且对齐工整:

二维数据的存储-----

ls[row][column],先行后列,按行存

CSV数据存储格式

(一)语法规则:

(1)CSV:Comma-Separated Values

(2)国际通用的一二维数据存储格式,一般.csv扩展名

(3)每行一个一维数据,无空行。采用逗号分隔,逗号为英文半角逗号,逗号与数据之间无额外空格

(4)Excel和txt均可读入输出,一般编辑软件都可以产生

(5)如果某个元素缺失,逗号仍要保留,二维数据的表头可以作为数据存储,也可以另行存储。如下:

(二)具体实例:

假设有“country.csv”文件如下:

step1:先看看从文件读入到 idle 中是什么情况:

1 fi = open("country.csv","r")
2 for c in fi:
3     print(c)

结果:

(三)实例结论:

(1)对比csv文件,读入是按行读入,且每行末尾隐含换行符,所以结果有空行(print语句不会打印出换行符\n),所以在按行遍历时,要先去掉换行符。

(2)结果中的内容是逗号分隔,即遍历csv的过程中,将隐形的分隔符遍历了出来

(3)读取csv文件跟读取txt所返回的类型都是str。实际上,不管是什么文件,也不管文件的内容是什么类型,将文件读取到idle中,都是以str类型返回。如遍历句柄、read()、readline()等。如下:

1 fi = open("country.csv","r")
2 for c in fi:
3     print(type(c))

结果:

补充:

(一)删除每行末尾的换行符有三种方法:

(1)str.strip(“\n”):删除首尾的”\n”

(2)str.replace(“\n”,””):替换”\n”为空

(3)str = str[0:-1]:切片去掉末尾,临时性改变,必须赋值

(二)在idle中创建二维列表ls,并对里面的数据进行操作的方法:二层循环,逐一遍历。如下:

1 ls=[[],[],[],......,[]]    创建二维列表
2 for row in ls:
3     for column in row:
4         print(ls[row][column])

Notes:(无论一维还是二维)

(1)分隔符不能缺少:

(2)fi.close()不要缺少,否则写入数据后,目标文件还是原样,因为还没结束释放

(3)读入用到str.split(),写入用到str.join()

(4)切记:

读入:从文件读入到idle中,最终要将结果转为相应维度的列表形式。如文件是一维数据,则读取的最终结果应是一维列表 [ ];文件是二维数据,则读取的最终结果应是二维列表 [ [], [],......,[] ]

写入:从idle写入到文件中,最初要将数据变为列表形式。如想写入一维数据,则要用一维列表来组织这些数据 [ ] ;想写入二维数据,则用二维列表来组织这些数据 [ [],[],......,[] ],但最终要转为str形式,这样才能写入文件(不接受以list形式写入),否则:

原文地址:https://www.cnblogs.com/kenny-feng/p/11366504.html

时间: 2024-08-01 12:16:16

一维数据和二维数据的相关文章

从txt文件中读取数据放在二维数组中

1.我D盘中的test.txt文件内的内容是这样的,也是随机产生的二维数组 /test.txt/ 5.440000 3.4500006.610000 6.0400008.900000 3.0300000.140000 2.7400008.920000 7.2900002.580000 7.4300001.850000 6.1300001.350000 4.280000 ... ... 2.在我的test.cpp中添加头文件,即可使用FILE类来读取txt文件中的数据 #include <stdi

对二维数据进行边界拓展

对二维数据处理的时候,经常遇到需要越界的问题,比如对图像进行滤波操作.对原始数据的边界进行拓展,然后使用拓展后的数据作处理,可以解决越界的问题.根据拓展出的数据的值来自哪里可以分为多种边界拓展方式,我们要实现的是将边界进行奇对称拓展. 算法 举例说明什么是奇拓展.比如对原始二维数据向左拓展4列,那么在边界上向左第一列复制边界上向右第一列,在边界上向左第二列复制边界上向右第二列,以此类推.边界列并没有被复制,因为C语言中是从0开始计数的,所以边界列是0列,按照0列对称拓展就称为奇对称拓展.如果0列

【Excle数据透视】二维数据如何创建数据透视表

二维数据在创建数据透视表的时候,可能会给你带来一些麻烦,没法创建,会丢失维度,那怎么办呢? 解决办法:使用数据透视表和数据透视图向导即可创建 步骤1 按下[Alt+D+P],出现如下界面 选择上图中的"多重合并计算数据区域"→下一步 创建单页字段→下一步 选定区域A:A15→添加→下一步 单击完成 数据透视表已经创建完成.二维数据透视表与一维数据透视表在于"行合计" 注意:我上图的数据透视是使用默认计数,所以全部都是1,这个可以根据自己的需求进行调整.

TensorflowTutorial_二维数据构造简单CNN

使用二维数据构造简单卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 图像和一些时序数据集都可以用二维数据的形式表现,我们此次使用随机分布的二位数据构造一个简单的CNN-网络卷积-最大池化-全连接 参考代码 # Implementing Different Layers # --------------------------------------- # # We will illustrate how to use different types # of layers

python第七周,二维数据的格式化和处理

二维数据的表示: 类表类型可以表示二维数据 [   [424,23423,2342],[131,535,3646]  ] 使用两层for循环可以便利每个元素 外层列表中每个元素可以对应一行,也可以对应一列 一维数据分为列表和集合类型,二维数据只有列表类型 CSV数据存储格式 国际通用的一二维数据存储格式,一般.csv扩展名,每行一个一维数据,采用逗号分隔,无空行 Excel软件可读入输出,一般编辑软件都可以产生,如果某个元素缺失,逗号仍要保留, 二维数据的表头可以作为数据存储,也可以另行存储,

二维数据名作形参

之前帮同学调一个程序的时候遇到的,把二维数据改为全局变量,不通过参数传递就没问题了,否则程序崩溃. 细究一下,二维数据名用于形参时需要注意哪些方面. 测试程序如下: #include<stdio.h> #include<stdlib.h> void print1(int **a, int m, int n); void print2(int (*a)[2], int m, int n); int main() { int a[2][2]={1,2,3,4}; print1((int

PHP数据学习-二维数组【3】

<?php // $project = array( // array("bai",12,23.0), // array("zeng",34,12.0), // array("fei",44,11.0) // ); // for($i = 0; $i < count($project); $i++){ // for($j = 0; $j<count($project[$i]); $j++){ // echo $project[$

PHP二维数据排序,二维数据模糊查询

一.因为项目中的一个报表需要合并三个表的数据,所以分表查询再合并数据,利用PHP数组函数进行排序,搜索.三表合并后的数组结构如下: Array ( [0] => Array ( [history_id] => 12 [sla_group_id] => 1 [sla_id] => -1 [create_time] => 1513057695 [tasklog_id] => 12 [tasklog_time] => 2017-12-12 13:48:15 [taskl

jira创建仪表盘以及对应的数据用二维表显示

1.仪表板->管理仪表板->创建新面板 2.进入到新仪表板页面 3.点击增加按钮进入 4.点击商城到这里仪表板就创建好了 5.点击Add a gadget 6.添加Two Dimensional Filter Statistics 7.选择过滤器,是自己先创建好,把自己想要看的过滤数据按照二维的方式呈现出来 8.添加过滤数据 9.选择刚刚创建的过滤器 10.选择想看的关键字结果 11.二维显示结果如下: 原文地址:https://www.cnblogs.com/huanglele1114/p/