numpy 文件的存储与读取

 需要了解两个函数名: tofile 和 fromfile  两个函数。tofile输出的数据没有格式,因此用numpy.fromfile读回来的时候需要自己格式化数据。

a = np.arange(0,12)
>>> a
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
>>> a.shape=3,4
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> a.tofile("a.bin")
>>> b=np.fromfile("a.bin",dtype=np.float)
>>> b
array([2.12199579e-314, 6.36598737e-314, 1.06099790e-313, 1.48539705e-313,
       1.90979621e-313, 2.33419537e-313])
>>> a.dtype
dtype('int32')
>>> b=np.fromfile("a.bin",dtype=np.int32)
>>> b
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
>>> b.shape=3,4
>>> b
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

 numpy.load和numpy.save函数以NumPy专用的二进制类型保存数据,这两个函数会自动处理元素类型和shape等信息,使用它们读写数组就方便多了,但是numpy.save输出的文件很难和其它语言编写的程序读入:

>>> np.save("a.npy",a)
>>> c=np.load("a.npy")
>>> c
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

文件名和文件对象:
 

>>> a=np.arange(8)
>>> b=np.add.accumulate(a)
>>> c=a+b
>>> c
array([ 0,  2,  5,  9, 14, 20, 27, 35])
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> b
array([ 0,  1,  3,  6, 10, 15, 21, 28], dtype=int32)
>>> f=file("result.npy","wb")
Traceback (most recent call last):
  File "<pyshell#37>", line 1, in <module>
    f=file("result.npy","wb")
NameError: name 'file' is not defined
>>> f=open("result.npy","wb")
>>> np.save(f,a)
>>> np.save(f,b)
>>> np.save(f,c)
>>> f.close()
>>> f=open("result.npy","rb")
>>> np.load(f)
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.load(f)
array([ 0,  1,  3,  6, 10, 15, 21, 28])
>>> np.load(f)
array([ 0,  2,  5,  9, 14, 20, 27, 35])

参考:numpy 快速处理数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值