38python数据分析numpy基础之savez一次保存多个数组到npz文件

1 python数据分析numpy基础之savez一次保存多个数组到npz文件

python的numpy库的savez()函数,将多个数组保存到npz文件中。

用法

numpy.savez(file, *args, **kwds)

描述

numpy.savez(file),一次可以保存多个数组到npz文件中,可以保存任意维度的numpy数组,不限于一维和二维。

保存numpy数组的结构,取出时shape和dtype与保存时的shape和dtype一致。

一次可以保存多个numpy数组,每次保存会覆盖之前文件中存在的内容。

保存的数组通过位置或关键字参数进行保存,读取时,若未提供关键字则默认关键字为arr_0、arr_1。

入参

file:必选,文件对象或文件名,用于保存数组的文件;

1.1 入参file

numpy.savez(file)的入参file为必选入参,可以为文件对象或文件名;

文件名后缀若为.npz则不补齐后缀,文件名后缀若没有.npz则自动补齐后缀;

文件名的路径必须存在,文件名可以不存在;

如果是文件对象,则必须以二进制方式打开;

>>> import numpy as np
# savez()将多个数组保存到npz文件中
>>> f1=r'E:\ls\savez1.npz'
>>> f5=r'E:\ls\savez5'
# file为npz文件名
>>> np.savez(f1,[1,2],a1=(5,6),a2=np.array((8,9)))
# file为没有后缀的npz文件,自动补齐后缀npz
>>> np.savez(f5,b2=[11,12],b1=[18,19])
# file为文件对象,需以二进制b的模式打开
>>> f6=r'E:\ls\savez6'
>>> f6obj=open(f6,'wb')
>>> np.savez(f6obj,[1,2],[5,6])
>>> f6obj=open(f6,'rb')
>>> np.load(f1)
NpzFile 'E:\\ls\\savez1.npz' with keys: a1, a2, arr_0
>>> np.load(f5+'.npz')
NpzFile 'E:\\ls\\savez5.npz' with keys: b2, b1
>>> np.load(f6)
NpzFile 'E:\\ls\\savez6' with keys: arr_0, arr_1

1.2 存取npz

numpy.savez()可以通过位置或关键字参数保存数组,读取时,若未提供关键字则默认关键字为arr_0、arr_1,依次类推。保存的数组可以为元组、列表、多维数组。每次savez都会覆盖之前的内容。

>>> import numpy as np
>>> f1=r'E:\ls\savez1.npz'
# savez()按位置保存数组,则通过arr_n,n从0开始进行存取数组
# 否则按保存时的关键字参数进行存取
# savez()一次可以保存多个数组
>>> np.savez(f1,[1,2],a1=(5,6),a3=np.arange(24).reshape(2,3,4))
>>> f1load=np.load(f1)
>>> f1load
NpzFile 'E:\\ls\\savez1.npz' with keys: a1, a3, arr_0
>>> f1load['a1']
array([5, 6])
>>> f1load['a3']
array([[[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]],

      [[12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]]])
>>> f1load['arr_0']
array([1, 2])
# 每次savez()都会覆盖之前的内容
>>> np.savez(f1,a3=[21,22])
>>> f1load=np.load(f1)
>>> f1load
NpzFile 'E:\\ls\\savez1.npz' with keys: a3
>>> f1load['a3']
array([21, 22])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值