加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Numpy IO 操作

发布时间:2023-07-03 09:25:34 所属栏目:教程 来源:
导读:ndarray 对象可以保存到磁盘文件并从磁盘文件加载。常用的 IO 函数有:

load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中;
ndarray 对象可以保存到磁盘文件并从磁盘文件加载。常用的 IO 函数有:

load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中;

savez() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件中;

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

1. npz文件的保存与读取
1.1 numpy.save 函数
numpy.save() 函数将数组保存到以 .npy 为扩展名的文件中。函数原型如下:

numpy.save(file, arr, allow_pickle=True, fix_imports=True)
参数说明如下:

参数    说明
file    要保存的文件,扩展名为 .npy,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上
arr    要保存的数组
allow_pickle    可选,布尔值,允许使用 Python pickles 保存对象数组,Python 中的 pickle 用于在保存到磁盘文件或从磁盘文件读取之前,对对象进行序列化和反序列化。
fix_imports    可选,为了方便 Pyhton2 中读取 python3 保存的数据。
案例
定义数组:

a = np.array([, , , , , ])
将数组保存到 outfile_a.npy 文件上:

np.save('outfile_a.npy', a)
如果你尝试打开 outfile_a.npy 文件,你会发现文件是乱码的,因为它们是 Numpy 专用的二进制格式后的数据。

1.2 numpy.savez 函数
numpy.savez 函数可以将多个数组保存到以 npz 为扩展名的文件中。函数原型如下是:

numpy.savez(file, *args, **kwds)
参数说明如下:

参数    说明
file    要保存的文件,扩展名为 .npy,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上
args    要保存的数组
kwds    要保存的数组使用关键字名称
案例
定义数组:

b = np.array([, , , , , ]) c = np.array([, , , , , ])
将数组 a、b、c 保存到 outfile_abc.npz 文件上:

np.savez('outfile_abc.npz', a, b, arr_1d = c)
1.3 numpy.load函数
numpy.load 函数可以加载 .npy 或 .npz 文件,将数组还原。

案例
从 outfile_a.npy 文件中还原数组 a:

a_re = np.load('outfile_a.npy')print(a_re)
还原结果为:

[     ]
案例
从 outfile_abc.npz 文件中还原数组 a、b、c:

abc_re = np.load('outfile_abc.npz')print(abc_re)
打印还原结果为:

<numpy.lib.npyio.NpzFile at >
NpzFile 是一个 Numpy 提供的类似字典的对象,可以通过键值对进行访问:

print('NpzFile的对象名称为:')for name in abc_re.keys():print(name)
结果为:

NpzFile的对象名称为:
arr_1d
arr_0
arr_1
可以看到 .npz 文件中保存了 3 个 key,其中 arr_1d 是自定义的,arr_0 和 arr_1 是程序默认的。可以详细查看 key 对应的 value:

print('arr_1d:', abc_re['arr_1d'])print('arr_0:', abc_re['arr_0'])print('arr_1:', abc_re['arr_1'])
结果为:

arr_1d: [     ]arr_0: [     ]arr_1: [     ]
观察发现:arr_0 和 arr_1 分别对应 a 和 b。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章