numpy.fromfile

numpy.fromfile(file, dtype=float, count=- 1, sep='', offset=0, *, like=None)

从文本或二进制文件中的数据构造数组。

一种读取具有已知数据类型的二进制数据以及解析简单格式文本文件的高效方法。使用 tofile 可以使用此函数读取方法。

参数
file文件、str或Path

打开文件对象或文件名。

在 1.17.0 版更改: pathlib.Path 现在已接受对象。

dtype数据类型

返回的数据类型的数组。对于二进制文件,它用于确定文件中项目的大小和字节顺序。支持大多数内置数字类型,也支持扩展类型。

1.18.0 新版功能: 复杂的数据类型。

count利息

要读取的项目数。 -1 指所有项目(即完整文件)。

sepSTR

如果文件是文本文件,则分隔项之间的分隔符。空(“”)分隔符表示应将文件视为二进制文件。分隔符中的空格(“”)与零个或多个空白字符匹配。仅由空格组成的分隔符必须与至少一个空格匹配。

offset利息

距文件当前位置的偏移量(以字节为单位)。默认为0。仅允许用于二进制文件。

1.17.0 新版功能.

likearray_like

引用对象以允许创建非NumPy数组的数组。如果像这样的数组传入为 like 支持 __array_function__ 协议,结果将由它定义。在这种情况下,它确保创建与通过此参数传入的对象兼容的数组对象。

注解

这个 like 关键字是一个实验性的特性,有待接受 NEP 35 .

1.20.0 新版功能.

参见

load, save
ndarray.tofile
loadtxt

从文本文件加载数据的更灵活方式。

笔记

不要依赖于 tofilefromfile 对于数据存储,由于生成的二进制文件不是独立于平台的。或按字节顺序保存,则没有特定的数据类型信息。数据可以独立于平台存储 .npy 格式使用 saveload 相反。

实例

创建一个日历:

>>> 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')])