numpy.fromfile #
- 麻木的。fromfile ( file , dtype = float , count = -1 , sep = '' , offset = 0 , * , like = None ) #
从文本或二进制文件中的数据构造一个数组。
一种读取已知数据类型的二进制数据以及解析简单格式的文本文件的高效方法。使用tofile方法写入的数据 可以使用此函数读取。
- 参数:
- 文件file 或 str 或 Path
打开文件对象或文件名。
版本 1.17.0 中进行了更改:
pathlib.Path
现在接受对象。- dtype数据类型
返回数组的数据类型。对于二进制文件,它用于确定文件中项目的大小和字节顺序。支持大多数内置数字类型,并且可能支持扩展类型。
1.18.0 版本中的新增功能:复杂数据类型。
- 计数整数
要阅读的项目数。
-1
表示所有项目(即完整文件)。- 九月海峡
如果文件是文本文件,则项目之间的分隔符。空(“”)分隔符意味着该文件应被视为二进制文件。分隔符中的空格(“”)匹配零个或多个空白字符。仅由空格组成的分隔符必须至少匹配一个空格。
- 偏移量整数
距文件当前位置的偏移量(以字节为单位)。默认为 0。仅允许用于二进制文件。
1.17.0 版本中的新增功能。
- 类似array_like,可选
允许创建非 NumPy 数组的引用对象。如果传入的类似数组
like
支持__array_function__
协议,则结果将由它定义。在这种情况下,它确保创建一个与通过此参数传入的数组对象兼容的数组对象。1.20.0 版本中的新增功能。
也可以看看
load
,save
ndarray.tofile
loadtxt
从文本文件加载数据的更灵活的方式。
笔记
不要依赖tofile和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 >>> x array([((10, 0), 98.25)], dtype=[('time', [('min', '<i8'), ('sec', '<i8')]), ('temp', '<f8')])
将原始数据保存到磁盘:
>>> import tempfile >>> fname = tempfile.mkstemp()[1] >>> x.tofile(fname)
从磁盘读取原始数据:
>>> np.fromfile(fname, dtype=dt) array([((10, 0), 98.25)], dtype=[('time', [('min', '<i8'), ('sec', '<i8')]), ('temp', '<f8')])
存储和加载数据的推荐方式:
>>> np.save(fname, x) >>> np.load(fname + '.npy') array([((10, 0), 98.25)], dtype=[('time', [('min', '<i8'), ('sec', '<i8')]), ('temp', '<f8')])