numpy.fromfile
numpy.fromfile(file, dtype=float, count=-1, sep='', offset=0)
从文本或二进制文件中的数据构造一个数组。
读取已知数据类型的二进制数据以及解析简单格式化的文本文件的一种高效方法。使用tofile
方法写入的数据可以使用此函数读取。
参数: | file : 打开文件对象或文件名。 在1.17.0版中进行了更改:pathlib.Path现在接受对象。 dtype : 返回数组的数据类型。对于二进制文件, 它用于确定文件中各项的大小和字节顺序。 支持大多数内置数字类型,并且可能支持扩展名类型。 1.18.0版中的新功能:复杂 count : 要读取的项目数。-1表示所有项目(即完整文件)。 sep :str 如果文件是文本文件,则项目之间的分隔符。 空( 分隔符中的空格( 仅由空格组成的分隔符必须至少匹配一个空格。 offset : 与文件当前位置的偏移量(以字节为单位)。 默认值为 1.17.0版中的新功能。 |
Notes
不要依赖于tofile和fromfile数据存储的组合,因为生成的二进制文件不是平台无关的。特别是,不保存字节顺序或数据类型信息。可以.npy
使用save和load代替平台独立格式存储数据。
例子
构造一个ndarray:
>>> dt = np.dtype([('time', [('min', np.int64), ('sec', np.int64)]),... ('temp', float)])>>> x = np.zeros((1,), dtype=dt)>>> x['time']['min'] = 10; x['temp'] = 98.25>>> xarray([((10, 0), 98.25)], dtype=[('time', [('min', '将原始数据保存到磁盘:
>>> import tempfile>>> fname = tempfile.mkstemp()[1]>>> x.tofile(fname)从磁盘读取原始数据:
>>> np.fromfile(fname, dtype=dt)array([((10, 0), 98.25)], dtype=[('time', [('min', '推荐的存储和加载数据的方式:
>>> np.save(fname, x)>>> np.load(fname + '.npy')array([((10, 0), 98.25)], dtype=[('time', [('min', '