如何以原始二进制格式存储2D numpy ndarray
?它应该成为float 32值的原始数组,按照行主顺序,没有填充,没有任何标题.
根据文档,ndarray.tofile()
可以将其存储为二进制或文本,但format
参数是文本格式的字符串.np.save()
将其保存为.npy
格式.
如何以原始二进制格式存储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、没有传递格式时).