当前位置: 首页 > 面试题库 >

读取二进制.dat文件作为数组

邢弘业
2023-03-14
问题内容

我有一个经过多次迭代的代码。在每次迭代中,代码都会生成一个基于numpy的数组。我将基于numpy的数组附加到现有的二进制.dat文件中。我使用以下代码生成数据:

WholeData = numpy.concatenate((Location,Data),axis=0)  
# Location & Data are two numpy arrays
DataBinary = open('DataBinary.dat','ab')
WholeData.tofile(DataBinary)
DataBinary.close()

我试图将整个二进制文件读入数组。我遇到以下困难:

  1. 我尝试了以下代码:
    NewData = numpy.array('f')
    

    File1 = open(‘DataBinary.dat’,’rb’)
    NewData.fromstring(File1.read())
    File1.close()

错误状态:

追溯(最近一次通话最近):AttributeError:“ numpy.ndarray”对象中的文件“”,第1行没有属性“ fromstring”

  1. 我尝试使用基于数组的数组,然后将文件读入数组。
    from array import array
    

    File1 = open(‘DataBinary.dat’,’rb’)
    NewData.fromstring(File1.read())
    File1.close()

但是,NewData是错误的,即与WholeData。我想将数据另存为numpy.array和将其读取array.array可能不是一个好选择。

任何建议将不胜感激。


问题答案:

我认为numpy.fromfile是您想要的:

import numpy as np
myarray = np.fromfile('BinaryData.dat', dtype=float)

还要注意,根据文档,这不是“丢失精度和字节序信息”的最佳数据存储方式。换句话说,您需要确保传递给dtype的数据类型与您最初写入文件的数据类型兼容。



 类似资料:
  • 问题内容: 如何使用Pandas读取以下(两列)数据(来自.dat文件) 列分隔符(至少)为2个空格。 我试过了 但它打印 问题答案: 您可以将参数usecols与列顺序一起使用: 编辑: 您可以使用分隔符-2个或更多空格,然后添加,因为出现警告: ParserWarning:回退到“ python”引擎,因为“ c”引擎不支持正则表达式分隔符(分隔符> 1个字符且与“ \ s +”不同的分隔符被

  • 本文向大家介绍C#创建及读取DAT文件操作,包括了C#创建及读取DAT文件操作的使用技巧和注意事项,需要的朋友参考一下 *.DAT 从后缀名上也能理解其中的含义即:data文件,数据文件;这个文件有的可以用记事本工具打开,但是加密后就不一定了。 很多程序都创建dat文件来保存设定。创建一个只有自己才能解析得dat文件,并且可以读取和写入,写一个类,它可以创建一个只有使用这个类才能解析得dat文件。

  • 问题内容: 我有一个较长的无符号整数文件(每个64位,0.47GB文件),需要读取并存储在数组中。经过一番思考之后,由于Java中的所有内容都已签名(请纠正我,请纠正我),因此我长时间使用了该类型,我想不出更好的选择了。无论如何,仅需对数组进行排序,因此原始数字的精确值并不是最重要的。我们应该测量排序算法的效率,仅此而已。但是,当我实际要读取文件时(在下面的代码中),我遇到了砖墙。 它会一直持续下

  • 问题内容: 我正在尝试从URLConnection读取二进制文件。当我使用文本文件对其进行测试时,它似乎可以正常工作,但对于二进制文件则不能。发送文件时,我在服务器上使用以下mime类型: 但是到目前为止,似乎没有任何效果。这是我用来接收文件的代码: 问题答案: 我就是这样

  • 问题内容: 我发现用Python读取二进制文件特别困难。你能帮我个忙吗?我需要读取此文件,在Fortran 90中,该文件很容易被读取 详细而言,文件格式为: 如何使用Python阅读?我尝试了一切,但没有成功。我是否有可能在python中使用f90程序,读取此二进制文件,然后保存需要使用的数据? 问题答案: 读取二进制文件内容,如下所示: 然后使用struct.unpack “解压缩”二进制数据

  • 我在做学校作业,要求如下:“设计一个具有名为writeArray的静态方法的类。该方法应包含两个参数:文件名和对int数组的引用。该文件应作为二进制文件打开,数组的内容应写入该文件,然后关闭该文件。在名为readArray的类中写入第二个方法。该方法我们需要两个参数:文件名和对int数组的引用。应该打开文件,从文件中读取数据并存储在数组中,然后关闭文件。在程序中演示这两种方法。" 以下是我到目前为

  • 所以。。。我需要从.pkl文件中读取并导入图像数据集。图像存储为“二进制blob”。一旦完成了,我需要将它们转换成字节格式,这样我就可以通过Google的CloudVision运行它们。我设法在Linux虚拟机上打开了该文件(花了几天时间试图让它在Windows上工作…)。但现在我似乎无法将这个“二进制斑点”转换为我可以使用的实际图像。。。 下面是一个“二进制blob”: \1\x0 0 0 0\

  • 问题内容: 我正在尝试使用Python 3读取包含图像(视频)的12位二进制文​​件。 要读取类似的文件但以16位编码,以下代码可以很好地工作: 其中filename_video是文件,可以从另一个文件读取视频的nb_frames,高度和宽度特征。“工作得很好”是指快速:在计算机上读取具有140帧的640x256视频大约需要1毫秒。 据我所知,当文件以12位编码时,由于没有uint12类型,因此无