numpy的文件存储.npy .npz 文件详解

您所在的位置:网站首页 file是什么类型文件 numpy的文件存储.npy .npz 文件详解

numpy的文件存储.npy .npz 文件详解

2023-07-26 00:22| 来源: 网络整理| 查看: 265

Numpy能够读写磁盘上的文本数据或二进制数据。

1、npy文件——Numpy专用的二进制格式

np.load()和np.save()是读写磁盘数组数据的两个重要函数。

使用时,数组会以未压缩的原始二进制格式保存在扩展名为.npy的文件中。

import numpy as np a = np.random.randint(0, 10, (3,), dtype='int') print('save:', a) np.save('test.npy', a) b = np.load('test.npy') print('read:', b) #输出结果如下: save: [0 1 2] read: [0 1 2]

注:保存为Numpy专用的二进制格式后,就不能用notepad++等打开看了(乱码)。因此这种方式建议在不需要看保存文件内容的情况下使用。

2、npz文件——压缩文件

使用np.savez()函数可以将多个数组保存到同一个文件中。 np.savez()函数的第一个参数是文件名,其后的参数都是需要保存的数组。传递数组时可以使用关键字参数为数组命名,非关键字参数传递的数组会自动起名为arr_0、arr_1…… np.savez()函数输出的是一个扩展名为.npz的压缩文件,它包含多个与保存的数组对应的npy文件(由save()函数保存),文件名对应数组名。 读取.npz文件时使用np.load()函数,返回的是一个类似于字典的对象,因此可以通过数组名作为关键字对多个数组进行访问。

a = np.random.randint(0, 10, (3,), dtype='int') b = np.random.randint(0, 10, (3,), dtype='int') c = np.random.randint(0, 10, (3,), dtype='int') print('save:', a, b, c) np.savez('test.npz', a, b, c) data = np.load('test.npz') print(data.files) aa = data[data.files[0]] bb = data[data.files[1]] cc = data[data.files[2]] print('read:', aa, bb, cc) #输出结果如下: save: [1 2 1] [5 0 7] [6 6 7] ['arr_0', 'arr_1', 'arr_2'] read: [1 2 1] [5 0 7] [6 6 7]

如若想给保存的数组命名,而不是默认的“arr_0”、“arr_1”、“arr_2”...的话,只需修改np.savez中传递的参数即可。

import numpy as np a = np.random.randint(0, 10, (3,), dtype='int') b = np.random.randint(0, 10, (3,), dtype='int') c = np.random.randint(0, 10, (3,), dtype='int') print('save:', a, b, c) np.savez('test.npz', a=a, b=b, c=c) #np.savez('test.npz', a1111=a, b=b, c=c) data = np.load('test.npz') print(data.files) aa = data[data.files[0]] bb = data[data.files[1]] cc = data[data.files[2]] print('read:', aa, bb, cc) #输出结果如下: save: [0 9 5] [0 7 2] [0 4 0] ['a', 'b', 'c'] #['a1111', 'b', 'c'] read: [0 9 5] [0 7 2] [0 4 0]

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3