Python的二进制格式文件存取

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


tofile() 和 fromfile()存取二进制格式文件

import numpy as np
a=np.arange(6).reshape(2,3)
a.tofile('2.22.bin')

首先来看看在编译器中,会生成文件名为2.22.bin的文件:

                   

由于是二进制,会导致编译器中查看文件出现乱码。然后我们继续写代码使用fromfile来读回数据:

import numpy as np
a=np.arange(6).reshape(2,3)
a.tofile('2.22.bin')
b= np.fromfile('2.22.bin',dtype=int).reshape(2,3)
print(b)	
#打印b:[[0 1 2]
# 		 [3 4 5]]

 	

注意,在使用fromfile()函数的时候要指定元素类型并对数组的形状进行适当修改。


load(),save()和savez()存取Numpy专用的二进制格式文件

load():用于从 .npy 文件中加载数据。
save() :用于将数据保存到 .npy 文件中。
savez() :用于将多个数组保存到一个 .npz 文件中。

load()用法:

numpy.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding='ASCII')

file:要加载的文件名或类文件对象。
mmap_mode:指定内存映射模式,默认为 None。
allow_pickle:指定是否允许加载 .npy 文件中的 pickle 对象,默认为 True。
fix_imports:在 Python 3 中是否修正 pickle 数据,默认为 True。
encoding:如果 allow_pickle=False,指定编码格式,默认为 ‘ASCII’。

save()用法:

numpy.save(file, arr, allow_pickle=True, fix_imports=True)

file:要保存的文件名或类文件对象。
arr:要保存的数组。
allow_pickle:指定是否允许保存 pickle 对象,默认为 True。
fix_imports:在 Python 3 中是否修正 pickle 数据,默认为 True。

savez()用法:

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

file:要保存的文件名或类文件对象。
*args:要保存的数组,可以是多个数组。
**kwds:关键字参数,用于指定要保存的数组的名称。


load和save的使用

import numpy as np
a = np.arange(6).reshape(2,3)
np.save("2_23.npy",a)
b = np.load("2_23.npy")
print(b)	#输出为[[0 1 2]
# 					[3 4 5]]


多个数组的存取

import numpy as np
c = np.arange(6,12).reshape(2,3)
d = np.sin(c)
np.savez("2.npz",c,d)
e = np.load("2.npz")
print(e)

在这里,我们有c和d两个数组并将他们存储到文件名为2.npz的文件中。可能有人会疑问,为什么save用的是npy而savez用的是npz的后缀? 原因是.npy 文件是 NumPy 专用的二进制文件格式,用于保存单个 NumPy 数组。,而.npz 文件也是 NumPy 专用的二进制文件格式,但它用于保存多个 NumPy 数组,类似于一个压缩存档。所以存储单个或多个数组的时候,要注意后缀。


打印e:

NpzFile '2.npz' with keys: arr_0, arr_1

arr_0存储的是第一个数组的数据,也就是c的数据,arr_1存储的是第二个数组的数据,也就是d的数据。

f1 = e["arr_0"]	#提取第一个数组的数据
f2 = e["arr_1"]	#提取第二个数组的数据
print(f1)
print(f2)

打印f1和f2:

[[ 6  7  8]
 [ 9 10 11]]
[[-0.2794155   0.6569866   0.98935825]
 [ 0.41211849 -0.54402111 -0.99999021]]
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用NumPy将数组存储为二进制文件可以通过以下几个步骤完成。首先,将NumPy数组转换为二进制数据,然后将数据保存文件中。可以使用`tofile()`函数将NumPy数组保存二进制文件。例如,对于一个名为`data`的NumPy数组,可以使用以下代码将其保存二进制文件: ```python data.tofile('filename.bin') ``` 这将把数组`data`保存为名为`filename.bin`的二进制文件。另外,如果需要将数组保存为文本文件,可以使用`np.savetxt()`函数,通过指定`fmt='%d'`参数来保存整数类型的数据。 总结起来,使用NumPy将数组存储为二进制文件的步骤如下: 1. 将NumPy数组转换为二进制数据:`data.tofile('filename.bin')` 2. 可选:将数组保存为文本文件:`np.savetxt('filename.txt', data, fmt='%d', delimiter=',')` 请注意,这些代码只是示例,您需要根据自己的实际需求和数据类型进行相应的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python利用numpy存取文件的方式](https://download.csdn.net/download/weixin_38680393/12859071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [numpy数组转为二进制](https://blog.csdn.net/weixin_46178043/article/details/122427205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值