保存数组为二进制文件并读取

Numpy访问二进制文件

保存数据为二进制文件并读取

import numpy as np
import matplotlib.pyplot as plt
#产生数据\n",
x=np.linspace(0, 10, 30)
noise=np.random.randn(30)#产生30个标准正态分布的元素\n",
y1=x**2+2*noise#产生叠加噪声的数据系列1\n",
y2=x**1+2*noise#产生叠加噪声的数据系列2\n",
y3=x**1.5+2*noise#产生叠加噪声的数据系列3\n",
z=np.linspace(0, 10, 35)
#创建或访问一个文件夹\n",
import os
path='D:/my_python/ch3/'
if not os.path.exists(path):
  os.makedirs(path)
#访问二进制数据文件\n",
#保存一个数组至数据文件,默认扩展名为.npy,可省略\n",
np.save(path+'data_x_arr',x)
np.savez(path+'xyz_arr',x,y1,y2,y3,z)

也可以保存多个数组至数据文件中,此时数组的扩展名是。npz.

读取保存的二进制文件并进行可视化。

loaded_data = np.load(path+'data_x_arr.npy')
    #"print('读取的数组为:\\n',loaded_data)\n",
loaded_data1 = np.load(path+'xyz_arr.npz')#读取含有多个数组的文件\n",
    #不同的数组用arr_n的形式进行索引,n从0开始\n",
    #print('读取的数组1为:',loaded_data1['arr_0'])\n",
    #print('读取的数组2为:',loaded_data1['arr_1'])"
p = plt.figure(figsize=(12,4))
plt.rcParams['font.sans-serif'] = 'SimHei'#设置字体为SimHei显示中文\n",
plt.rc('font', size=14)#设置图中字号大小\n",
#子图1:保存的数据集\n",
ax1 = p.add_subplot(1,2,1)
plt.scatter(x,y1, marker='o')#绘制散点图\n",
plt.scatter(x,y2, marker='*')#绘制散点图\n",
plt.scatter(x,y3, marker='^')#绘制散点图\n",
plt.title('保存的数据集')#添加标题\n",
plt.legend(['数据集y1','数据集y2','数据集y3'])#添加图例\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y')#添加纵轴标签\n",
#子图2:读取的数据集\n",
ax1 = p.add_subplot(1,2,2)
#不同的数组用arr_n的形式进行索引,n从0开始\n",
plt.scatter(loaded_data1['arr_0'],loaded_data1['arr_1'], marker='o')#绘制散点图\n",
plt.scatter(loaded_data1['arr_0'],loaded_data1['arr_2'], marker='*')#绘制散点图\n",
plt.scatter(loaded_data1['arr_0'],loaded_data1['arr_3'], marker='^')#绘制散点图\n",
plt.title('读取的二进制文件数据集')#添加标题\n",
plt.legend(['数据集arr_1','数据集arr_2','数据集arr_3'])#添加图例\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y')#添加纵轴标签\n",
plt.savefig(path+'output/binaryDataFile.jpg')#保存图片\n",
plt.show()#显示图片

保存数组为二进制文件并读取_第1张图片save函数将保存单个数组为二进制文件,savez 函数将多个数组保存到一个。npz文件之中去。load 函数将读取数据文件。这3个方法都必须有file参数来接受文件的保存路径。

pandas 访问文本文件

import pandas as pd
#将数组转换为数据框,并为每列数组在数据框中指定列名,指定形式为:'列名':数组名\n",
df=pd.DataFrame({'x':x,'y1':y1,'y2':y2,'y':y3})
print('指定的数据框的列名称为:',df.columns)
df=df.rename(columns={'y':'y3'})
print('重命名后的数据框的列名称为:\n',df.columns)
df.to_csv(path+'xy123.csv',sep = ',',index = False) #保存为csv文本文件\n",
loaded_csv=pd.read_table(path+'xy123.csv',
    sep = ',',encoding = 'gbk')#读取csv文本文件"

使用to_csv()的方法将df文件保存为。csv格式的文本文件,并使用pandas.read_table()方法加载。

p = plt.figure(figsize=(12,4))
plt.rcParams['font.sans-serif'] = 'SimHei'#设置字体为SimHei显示中文\n",
plt.rc('font', size=14)#设置图中字号大小\n",
#子图1:保存的数据集\n",
ax1 = p.add_subplot(1,2,1)
plt.scatter(x,y1, marker='o')#绘制散点图\n",
plt.scatter(x,y2, marker='*')#绘制散点图\n",
plt.scatter(x,y3, marker='^')#绘制散点图\n",
plt.title('保存的数据集')#添加标题\n",
plt.legend(['数据集y1','数据集y2','数据集y3'])#添加图例\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y')#添加纵轴标签\n",
#子图2\n",
ax1 = p.add_subplot(1,2,2)
#不同的数组用loaded_csv['列名']的形式进行索引\n",
plt.scatter(loaded_csv['x'],loaded_csv['y1'], marker='o')#绘制散点图\n",
plt.scatter(loaded_csv['x'],loaded_csv['y2'], marker='*')#绘制散点图\n",
plt.scatter(loaded_csv['x'],loaded_csv['y3'], marker='^')#绘制散点图\n",
plt.title('读取的csv文本文件数据集')#添加标题\n",
plt.legend(['列y1','列y2','列y3'])#添加图例\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y')#添加纵轴标签\n",
plt.savefig(path+'output/csv.jpg')#保存图片\n",
plt.show()#显示图片"

保存数组为二进制文件并读取_第2张图片

PANDAS 访问Excel 文件

pandas 提供了对Excel文件的访问方法

df.to_excel(path+'xy123.xls')
loaded_excel=pd.read_excel(path+'xy123.xls')
#对保存和读取的数据文件可视化进行对比\n",
p = plt.figure(figsize=(12,4))
plt.rcParams['font.sans-serif'] = 'SimHei'#设置字体为SimHei显示中文\n",
plt.rc('font', size=14)#设置图中字号大小\n",
#子图1:保存的数据集\n",
ax1 = p.add_subplot(1,2,1)
plt.scatter(x,y1, marker='o')#绘制散点图\n",
plt.scatter(x,y2, marker='*')#绘制散点图\n",
plt.scatter(x,y3, marker='^')#绘制散点图\n",
plt.title('保存的数据集')#添加标题\n",
plt.legend(['数据集y1','数据集y2','数据集y3'])#添加图例\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y')#添加纵轴标签\n",
#子图2\n",
ax1 = p.add_subplot(1,2,2)
#不同的数组用loaded_table['列名']的形式进行索引\n",
plt.scatter(loaded_excel['x'],loaded_excel['y1'], marker='o')#绘制散点图\n",
plt.scatter(loaded_excel['x'],loaded_excel['y2'], marker='*')#绘制散点图\n",
plt.scatter(loaded_excel['x'],loaded_excel['y3'], marker='^')#绘制散点图\n",
plt.title('读取的Excel文件数据集')#添加标题\n",
plt.legend(['列y1','列y2','列y3'])#添加图例\n",
plt.xlabel('x')#添加横轴标签\n",
plt.ylabel('y')#添加纵轴标签\n",
plt.savefig(path+'excel.jpg')#保存图片\n",
plt.show()#显示图片"

保存数组为二进制文件并读取_第3张图片

你可能感兴趣的:(python,机器学习,开发语言)