前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >numpy: IO模块

numpy: IO模块

作者头像
JNingWei
发布2018-09-28 16:17:40
6300
发布2018-09-28 16:17:40
举报
文章被收录于专栏:JNing的专栏

ndarray对象 可以保存到磁盘文件并从磁盘文件加载。

  NumPy 为 ndarray对象 引入了一个简单的文件格式。 这个npy文件在磁盘文件中,存储重建ndarray所需的数据、图形、dtype和其他信息,以便正确获取数组,即使该文件在具有不同架构的另一台机器上。


numpy.save()

  load() 和 save() 函数处理 numPy 二进制文件(带 npy 扩展名)

  numpy.save()文件将输入数组存储在具有npy扩展名的磁盘文件中。

代码语言:javascript
复制
import numpy as np 
a = np.array([1,2,3,4,5]) 
np.save('outfile',a)

numpy.savez

  将多个数组保存到一个未压缩的文件中。

  savez函数 的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为arr_0, arr_1, … 。

  savez函数 输出的是一个压缩文件(扩展名为npz),其中每个文件都是一个save函数保存的npy文件,文件名对应于数组名。load函数自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为关键字获取数组的内容。

代码语言:javascript
复制
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.arange(0, 1.0, 0.1)
>>> c = np.sin(b)
>>> np.savez("result.npz", a, b, sin_array = c)
>>> r = np.load("result.npz")
>>> r["arr_0"] # 数组a
array([[1, 2, 3],
       [4, 5, 6]])
>>> r["arr_1"] # 数组b
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])
>>> r["sin_array"] # 数组c
array([ 0.        ,  0.09983342,  0.19866933,  0.29552021,  0.38941834,
        0.47942554,  0.56464247,  0.64421769,  0.71735609,  0.78332691])

  如果你用解压软件打开result.npz文件的话,会发现其中有三个文件:arr_0.npy, arr_1.npy, sin_array.npy,其中分别保存着数组a, b, c的内容。


numpy.load()

  为了从outfile.npy重建数组,请使用load()函数。

代码语言:javascript
复制
import numpy as np 
b = np.load('outfile.npy')  
print b

  输出如下:

代码语言:javascript
复制
array([1, 2, 3, 4, 5])

  save()和load()函数接受一个附加的布尔参数allow_pickles。 Python 中的pickle用于在保存到磁盘文件或从磁盘文件读取之前,对对象进行序列化和反序列化。


numpy.savetxt()


numpy.loadtxt()

  loadtxt() 和 savetxt() 函数处理正常的文本文件

  以简单文本文件格式存储和获取数组数据,是通过savetxt()和loadtx()函数完成的。

代码语言:javascript
复制
import numpy as np 

a = np.array([1,2,3,4,5]) 
np.savetxt('out.txt',a) 
b = np.loadtxt('out.txt')  
print b

  输出如下:

代码语言:javascript
复制
[ 1.  2.  3.  4.  5.]

  savetxt() 和 loadtxt() 接受附加的可选参数,例如页首,页尾和分隔符。



本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年06月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • numpy.save()
  • numpy.savez
  • numpy.load()
  • numpy.savetxt()
  • numpy.loadtxt()
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档