如何以原始二进制格式存储2D numpy ndarray?它应该成为float 32值的原始数组,按照行主顺序,没有填充,没有任何标题.

根据文档,ndarray.tofile()可以将其存储为二进制或文本,但format参数是文本格式的字符串.np.save()将其保存为.npy格式.

推荐答案

with open('out', 'wb') as f: f.write(arr.tobytes())

应该这样做.

如果arr还不是float32数组,则可能需要添加astype(np.float32).

同样,如果数组尚未处于"行主要顺序",则您可能必须在某个地方添加.T.

当然(但我想你很清楚,如果你想转储二进制表示),你需要注意小/大端顺序.

编辑:既然你提到了tofile ',我就看了它.事实上,这是同一回事.只是不要传递任何格式(否则,它确实是一个文本文件)

with open('out', 'wb') as f: arr.tofile(f)

并不是说它明显短了.但它也有效.文档明确表示,它的作用与我的第一个解决方案完全相同(当没有sep、没有传递格式时).

Python相关问答推荐

在Python中使用一行try

具有2D功能的Python十六进制图

将行从一个DF添加到另一个DF

无法使用python.h文件; Python嵌入错误

按照行主要蛇扫描顺序对点列表进行排序

Image Font生成带有条形码Code 128的条形码时出现枕头错误OSErsor:无法打开资源

使用plotnine和Python构建地块

try 与gemini-pro进行多轮聊天时出错

如何使用html从excel中提取条件格式规则列表?

海运图:调整行和列标签

输出中带有南的亚麻神经网络

从dict的列中分钟

无法使用requests或Selenium抓取一个href链接

Python,Fitting into a System of Equations

OR—Tools CP SAT条件约束

Pandas:将多级列名改为一级

Django—cte给出:QuerySet对象没有属性with_cte''''

在输入行运行时停止代码

Python日志(log)模块如何在将消息发送到父日志(log)记录器之前向消息添加类实例变量

如何反转一个框架中列的值?