python的格式化,python格式化输出数据
规范化Python数据集并将其保存为mat文件0.1。下载数据集2.1读取文本2.2处理文本值2.3规格化函数3。将它们另存为mat文件4
0.介绍
做科研的时候,不仅要从理论的角度分析idea的优势,还要做大量的实验。所获得的实验结果进一步支持了idea的优点,是令人信服的。实验中使用的数据集是实验的重要组成部分,往往需要对数据集进行预处理。通常使用的数据集是不同行业的数据,但是一个数据集往往有多个属性,每个属性的值是否使用同一个维度得到往往是个问题。如果评价不在同一个维度,那么把得到的属性值聚合起来进行运算是否公平合理?
因此,数据处理的标准化尤为重要,不同维度的表达式必须是无量纲的,也就是说数据集的属性值必须是标量。Python的sklearn包提供了正则化函数,可以轻松处理数据集。
以3https://www.csie.NTU.edu.tw/~ CJ Lin/libsvmtools/datasets/binary . html上的数据集fourclass为例,对原始数据进行标准化处理。
1.下载数据集并打开数据集的URL,然后单击fourclass链接。可以看到数据显示在网页上,没有提供下载格式。在这里下载需要复制数据并保存在txt文本文件中。
您可以将新的文本文件命名为fourclass.txt
2.归一化处理观察我们下载的fourclass数据集,可以发现它是一个二维二进制数据集。也就是只有两个属性,它们的标签值分为两种。
以第一行的数据为例。标签位于第一列,标签值为1和-1。接下来的两列是属性值,1: 167.000002: 178.00000是属性值为167.00000的第一列,属性值为167.00000的第二列。我们的目标是将属性值调整为“0,1”,并将标签值放在最后。
2.1读取文本#以可读模式读取文本内容f=open(r c:(users(desktop(four class . txt), r) #多行一次=f . Read lines()RES=[]for I in lines:#)根据每行之间的间距将文本内容转换为每行3列的列表。
res的元素类型是列表类型,而res是嵌套列表,本质上是列表。
2.2文本值处理文本值是删除标签列值 1 前的" ",删除属性列值前的" 1:"和" 2:",删除最后一列。处理代码如下。
for range(len(RES)):#是res[i][0]=res[i][0]。replace)、)用于I行、索引1列和字符串切片。
通过观察,我们可以看到属性值和标签值都经过了处理。
2.3使用归一化函数minmax=minmax scaler(# normalized data=NP . h stack)(minmax . fit _ transform)数据(3360,133:)
这里,minmax.fit _ transform (data [:1:])是从第2列开始规范化数据数组并在(0,1)之间缩放属性值的过程。数据[:0 ]。reshape [data.shape [0],1]分别提取标签列。提取后其实是一个一行多列的列表,只是需要改变形式,转换成一行多列。Np.hstack))函数是两个数组的横向排列,用来连接属性列之后的标签列,放在数据的最后一列。
处理后,请打印数据内容。
这是我们想要的数据。下一步是将数组存储在mat格式的文件中。
3.另存为mat文件。实际上,一个以mat格式保存的文件只用一行代码就可以完成:
scipy . io . save mat( four class . mat),{data: data})但是在存储之前,需要观察data中的数据是整型还是浮点型。因为字符串类型可以存储在m
但是当它被用于后续操作时,将不可避免地出现类型错误等异常。例如,我们取第一列元素观察其类型,观察数据类型的代码段如下:
在data: print(type(i[0]))中为I打印后,我们发现元素类型为numpy.str,也就是我们通常理解的字符串类型。显然,这不符合要求。
所以正确的做法应该是先把数据的所有元素都转换成浮点型,再把文件存储成mat格式。
Data=data . astype(float)scipy . io . savemat( four class . mat ,{data: data})存储时,save mat()函数的第一个参数是我们的文件名,第二个参数是字典,前面的 data 是键,后面的数据是我们的numpy数组。需要注意的是,这个键名非常重要,决定了后面在Python中读取生成的mat文件如何赋值。建议您只使用 data 键名,而不要自己定义其他名称。
4总结以上,我们将各个子流程分开进行处理,主要是为了方便大家的理解。整个过程的代码如下:
将numpy作为NP import scipy . io from sk learn . preprocessing import MinMaxScalerf=open(r c:\ Users \ Desktop \ four class . txt , r )lines=f . readlines()RES=[]for I in lines:line=I . split()RES . append(line)for I in range(len(RES)):RES[I][0]=RES[I][0]。replace(, )RES[I][1]=RES[I][1][2:]RES[I][2]=RES[I][2][2:]data=NP . array(RES)[:-1]minMax=minMax scaler()# Normalize data=NP . h stack((minMax . fit _ transform(data[:1:]),data[:0]。shape(data.shape[0],1)))# for I in data:# print(type(I[0])data=data . astype(float)scipy . io . save mat( fourclass.mat ,{data: data})运行代码,我们可以看到生成了一个four class . mat格式的文件。此时,Python用于规范化数据集,并将其存储为mat格式的文件。您可以在将来以类似的过程自己处理数据集。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。