Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中读取complex64值类型的二进制文件_Python - Fatal编程技术网

如何在Python中读取complex64值类型的二进制文件

如何在Python中读取complex64值类型的二进制文件,python,Python,我有一个二进制文件,其中包含多个类型为complex64的复数?(即,四个字节的浮点型表示实部,另外四个字节表示虚部)。实部和虚部被多路复用,以便先存储实部,然后存储虚部。我通过从[0,2+j,-3.14-7.99j]创建一个complex64数组,将其保存到一个文件中,并以Python内置complex类型读取,从而重现了您遇到的错误 问题在于,内置的复杂类型的大小为C双精度,这取决于您的平台,可能不同于32位(在我的机器上为256位) 您必须使用numpy.fromfile('file_na

我有一个二进制文件,其中包含多个类型为complex64的复数?(即,四个字节的浮点型表示实部,另外四个字节表示虚部)。实部和虚部被多路复用,以便先存储实部,然后存储虚部。

我通过从
[0,2+j,-3.14-7.99j]
创建一个
complex64
数组,将其保存到一个文件中,并以Python内置
complex
类型读取,从而重现了您遇到的错误

问题在于,内置的
复杂类型的大小为C
双精度
,这取决于您的平台,可能不同于32位(在我的机器上为256位)


您必须使用
numpy.fromfile('file_name',dtype=numpy.complex64)
来正确读取文件,即确保将复数读取为两个32位浮点数。

您可以展示一个示例吗?complex64是由两个32位浮点数(实部和虚部)表示的复数。这是你的文件吗?@Moses,我不知道这里是否有上传的方法,但文件中的复杂值是由一个名为GNURadio的程序编写的,文件说一个由复数组成的二进制文件将实数和imag部分存储为32位浮点(第一个元素是实数,第二个是imag)我试图使用以下命令读取该文件,但无法获得预期的数字:
numpy.fromfile('file_name',dtype=complex)
@Jacques,是的,这就是我所拥有的。我期待着
[0,2+j,-3.14-7.99j]
但是我得到了这样的结果:
[0+7.81e-3j,-1.29e+5+0j,7.8e-3-1.29e+5j]
文件在这里:。为什么不执行
numpy.fromfile('file\u name',dtype=numpy.complex64)
?似乎表明了与我上面的评论相同的用途