numpy.fromfile¶
-
numpy.
fromfile
(file, dtype=float, count=-1, sep='')¶ 从文本或二进制文件中的数据构造数组。
一种以已知数据类型读取二进制数据的高效方法,以及解析简单格式化的文本文件。使用tofile方法写入的数据可以使用此函数读取。
参数: 文件:文件或str
打开文件对象或文件名。
dtype:数据类型
返回数组的数据类型。对于二进制文件,它用于确定文件中项目的大小和字节顺序。
count:int
要读取的项目数。
-1
表示所有项目(即完整文件)。sep:str
如果文件是文本文件,则项目之间的分隔符。空(“”)分隔符表示该文件应被视为二进制。分隔符中的空格(“”)匹配零个或多个空格字符。仅由空格组成的分隔符必须匹配至少一个空格。
笔记
对于数据存储,不要依赖tofile和
fromfile
的组合,因为生成的二进制文件不是平台独立的。特别地,不保存字节顺序或数据类型信息。数据可以使用save
和load
存储在独立于.npy
的平台中。例子
构造一个ndarray:
>>> dt = np.dtype([('time', [('min', int), ('sec', int)]), ... ('temp', float)]) >>> x = np.zeros((1,), dtype=dt) >>> x['time']['min'] = 10; x['temp'] = 98.25 >>> x array([((10, 0), 98.25)], dtype=[('time', [('min', '<i4'), ('sec', '<i4')]), ('temp', '<f8')])
将原始数据保存到磁盘:
>>> import os >>> fname = os.tmpnam() >>> x.tofile(fname)
从磁盘读取原始数据:
>>> np.fromfile(fname, dtype=dt) array([((10, 0), 98.25)], dtype=[('time', [('min', '<i4'), ('sec', '<i4')]), ('temp', '<f8')])
建议的存储和加载数据的方式:
>>> np.save(fname, x) >>> np.load(fname + '.npy') array([((10, 0), 98.25)], dtype=[('time', [('min', '<i4'), ('sec', '<i4')]), ('temp', '<f8')])