参考:https://www.cnblogs.com/wushaogui/p/9142019.html

1.保存为二进制文件(.npy/.npz)

numpy.save

保存一个数组到一个二进制的文件中,保存格式是.npy

参数介绍
numpy.save(file, arr, allow_pickle=True, fix_imports=True)

file:文件名/文件路径
arr:要存储的数组
allow_pickle:布尔值,允许使用Python pickles保存对象数组(可选参数,默认即可)
fix_imports:为了方便Pyhton2中读取Python3保存的数据(可选参数,默认即可)

使用

>>> import numpy as np
#生成数据
>>> x=np.arange(10)
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) #数据保存
>>> np.save('save_x',x) #读取保存的数据
>>> np.load('save_x.npy')
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 

numpy.savez

这个同样是保存数组到一个二进制的文件中,但是厉害的是,它可以保存多个数组到同一个文件中,保存格式是.npz,它其实就是多个前面np.save的保存的npy,再通过打包(未压缩)的方式把这些文件归到一个文件上,不行你去解压npz文件就知道了,里面是就是自己保存的多个npy.

参数介绍
numpy.savez(file, *args, **kwds)

file:文件名/文件路径
*args:要存储的数组,可以写多个,如果没有给数组指定Key,Numpy将默认从'arr_0','arr_1'的方式命名
kwds:(可选参数,默认即可)

使用

>>> import numpy as np
#生成数据
>>> x=np.arange(10)
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> y=np.sin(x)
>>> y
array([ 0. , 0.84147098, 0.90929743, 0.14112001, -0.7568025 ,
-0.95892427, -0.2794155 , 0.6569866 , 0.98935825, 0.41211849]) #数据保存
>>> np.save('save_xy',x,y) #读取保存的数据
>>> npzfile=np.load('save_xy.npz')
>>> npzfile #是一个对象,无法读取
<numpy.lib.npyio.NpzFile object at 0x7f63ce4c8860> #按照组数默认的key进行访问
>>> npzfile['arr_0']
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> npzfile['arr_1']
array([ 0. , 0.84147098, 0.90929743, 0.14112001, -0.7568025 ,
-0.95892427, -0.2794155 , 0.6569866 , 0.98935825, 0.41211849]) 

更加神奇的是,你可以不适用Numpy默认给数组的Key,而是自己给数组有意义的Key,这样就可以不用去猜测自己加载数据是否是自己需要的.

#数据保存
>>> np.savez('newsave_xy',x=x,y=y) #读取保存的数据
>>> npzfile=np.load('newsave_xy.npz') #按照保存时设定组数key进行访问
>>> npzfile['x']
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> npzfile['y']
array([ 0. , 0.84147098, 0.90929743, 0.14112001, -0.7568025 ,
-0.95892427, -0.2794155 , 0.6569866 , 0.98935825, 0.41211849]) 

简直不能太爽,深度学习中,有时候你保存了训练集,验证集,测试集,还包括他们的标签,用这个方式存储起来,要啥加载啥,文件数量大大减少,也不会到处改文件名去.

numpy.savez_compressed

这个就是在前面numpy.savez的基础上加了压缩,前面我介绍时尤其注明numpy.savez是得到的文件打包,不压缩的.这个文件就是对文件进行打包时使用了压缩,可以理解为压缩前各npy的文件大小不变,使用该函数比前面的numpy.savez得到的npz文件更小.

注:函数所需参数和numpy.savez一致,用法完成一样.

2.保存到文本文件

numpy.savetxt

保存数组到文本文件上,可以直接打开查看文件里面的内容.

参数介绍
numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ', encoding=None)

fname:文件名/文件路径,如果文件后缀是.gz,文件将被自动保存为.gzip格式,np.loadtxt可以识别该格式
X:要存储的1D或2D数组
fmt:控制数据存储的格式
delimiter:数据列之间的分隔符
newline:数据行之间的分隔符
header:文件头步写入的字符串
footer:文件底部写入的字符串
comments:文件头部或者尾部字符串的开头字符,默认是'#'
encoding:使用默认参数

使用

>>> import numpy as np
#生成数据
>>> x = y = z = np.ones((2,3))
>>> x
array([[1., 1., 1.],
[1., 1., 1.]]) #保存数据
np.savetxt('test.out', x)
np.savetxt('test1.out', x,fmt='%1.4e')
np.savetxt('test2.out', x, delimiter=',')
np.savetxt('test3.out', x,newline='a')
np.savetxt('test4.out', x,delimiter=',',newline='a')
np.savetxt('test5.out', x,delimiter=',',header='abc')
np.savetxt('test6.out', x,delimiter=',',footer='abc') 

保存下来的文件都是友好的,可以直接打开看看有什么变化.

numpy.loadtxt

根据前面定制的保存格式,相应的加载数据的函数也得变化.

参数介绍
numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes')

fname:文件名/文件路径,如果文件后缀是.gz.bz2,文件将被解压,然后再载入
dtype:要读取的数据类型
comments:文件头部或者尾部字符串的开头字符,用于识别头部,尾部字符串
delimiter:划分读取上来值的字符串
converters:数据行之间的分隔符
.......后面不常用的就不写了

使用

np.loadtxt('test.out')
np.loadtxt('test2.out', delimiter=',') 

numpy save load相关推荐

  1. B17_NumPy IO(save,load,savez,loadtxt,savetxt)

    NumPy IO Numpy 可以读写磁盘上的文本数据或二进制数据. NumPy 为 ndarray 对象引入了一个简单的文件格式:npy. npy 文件用于存储重建 ndarray 所需的数据.图形 ...

  2. R语言保存加载工作空间或者工作空间数据对象实战(Save Load RData Workspace)

    R语言保存加载工作空间或者工作空间数据对象实战(Save & Load RData Workspace) 目录 R语言保存加载工作空间或者工作空间数据对象实战(Save & Load ...

  3. python中save是什么意思_Python中的numpy.save()和joblib.dump()有什么区别?

    这是joblib代码的关键部分,应该有所启发. def _write_array(self, array, filename): if not self.compress: self.np.save( ...

  4. 【python】numpy数据load报错

    使用numpy.load('xxx.npy')数据时,报错UnicodeError: Unpickling a python object failed: UnicodeDecodeError 解决办 ...

  5. delphi10android保存数据,DELPHI XE5 Android – SDCard的SAVE / LOAD文件

    我正在使用Delphi XE5进行 Android开发. 我喜欢将TStringList保存并加载到SDCard上的文本文件中. 当我将TStringList保存到文件时,一切正常.保存后我可以调用L ...

  6. matlab保存数据save,[转载]matlab中save,load使用方法

    功能描述]存储文件 [软件界面]MATLAB->File->Save Workspace As将变量存入硬盘中指定路径. [函数用法] save:该函数将所有workspace中变量用二进 ...

  7. matlab保存数据用什么指令_MATLAB文件操作及保存文件save load fopen | 学步园

    一.保存文件 1.保存整个工作区 File->Save Workspace as...一个.mat文件 2.保存工作区的变量 在左工作区右击变量名,create M-File 3.save命令 ...

  8. 保存高斯过程模型save/load

    神经网络的存储和调用可以通过reload的方式,最近训练的高斯过程也需要存储和调用.原来的思路是存储核函数.超参和训练数据,后来发现可以使用joblib存储和调用模型. 代码如下: from skle ...

  9. python三维数据本地保存_如何将3D Python/NumPy数组保存为文本文件?

    如果保存文件需要是"csv"样式的文本,则可以使用多个savetxt和loadtxt.关键是要知道这两个都可以 以打开的文件作为输入. 写作示例:In [31]: A=np.ara ...

最新文章

  1. [COCI2015]COCI
  2. 公共的service接口
  3. Windows azure国际版下通过 windows auzre powershell为VM分配绑定virtual ip address
  4. 基于R的信用评分卡模型解析
  5. C++常用的容器(vector、set、list、map)
  6. java 线程 api_Java核心API之线程(上)
  7. 使用“/proc”系统调试多线程程序挂死的问题:
  8. Java IO学习笔记总结
  9. java excel 合并两个单元格内容 无法换行_12个简单高效的EXCEL小技巧,让你秒变职场达人!...
  10. DHT11温湿度传感器模块使用方法和驱动代码实现
  11. Linux fcntl函数详解
  12. 《码出高效:Java 开发手册》技术笔记
  13. saas模式的外贸建站比较
  14. matlab特征值意义,特征值 - MATLAB Simulink - MathWorks 中国
  15. seleniumwire获取百度指数
  16. 4399积分小游戏刷分工具帮助
  17. 【杂谈】360极速浏览器本地收藏夹的文件在哪里?
  18. Java子线程异常及异常处理
  19. 可编辑手写PDF以图片形式转换为WORD
  20. Can't attach to the process: ptrace(PTRACE_ATTACH, ..) Operation not permitted

热门文章

  1. 字节输入输出流,字符输入输出流
  2. 软件工程第一章绪论————(2019.12.27学习笔记)
  3. SpringMVC大体流程框架类图版
  4. 网页龙虎游戏有服务器吗,完美《梦幻诛仙2》今日公测 首开五大新服
  5. 华为设备如何查看风扇的序列号?
  6. [原创] HBuildX,微信小程序模拟器报错(如若已在管理后台更新域名配置,请刷新项目配置后重新编译项目)
  7. 日常bug记录——mybatis传值为null
  8. hyperf——代码赏析
  9. 电脑的学名为电子计算机
  10. tensorflow2.x实现人脸关键点检测