我使用
将 numpy 二维 float 组编写为二进制文件narr.tofile(open(文件名,"wb"),sep="",format='f')
并尝试使用 c 在 c 中检索相同的内容
FILE* fin = fopen(filename,"rb")
float* data = malloc(rows*2*sizeof(float));
fread(data, sizeof(float), rows*2, fin);
打印时此数据数组显示的值与原始数组不同。我错过了什么吗? 谢谢
最佳答案
这可能取决于您使用的系统,ndarray.tofile()
以little-endian输出,这意味着首先存储最低有效字节,请尝试使用 numpy.byteswap() ,然后转换为文件。也尝试在没有格式说明符的情况下执行此操作并查看结果。文档指出说明符的默认值为 format="%s"
,尝试在格式说明符之前放置百分比符号,例如 %f
。
关于python - 读取用python编写的c二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39707159/