开发手册 欢迎您!
软件开发者资料库

Python numpy.fromfile函数方法的使用

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中fromfile方法的使用。

numpy.fromfile

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

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

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

参数

file :filestrPath

打开文件对象或文件名。

在1.17.0版中进行了更改:pathlib.Path现在接受对象。

dtype :data-type, 可选

返回数组的数据类型。对于二进制文件,

它用于确定文件中各项的大小和字节顺序。

支持大多数内置数字类型,并且可能支持扩展名类型。

1.18.0版中的新功能:复杂dtypes

countint

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

sep :str

如果文件是文本文件,则项目之间的分隔符。

空(“”)分隔符表示文件应被视为二进制文件。

分隔符中的空格(“”)匹配零个或多个空格字符。

仅由空格组成的分隔符必须至少匹配一个空格。

offsetint

与文件当前位置的偏移量(以字节为单位)。

默认值为0。仅允许用于二进制文件。

1.17.0版中的新功能。

Notes

不要依赖于tofile和fromfile数据存储的组合,因为生成的二进制文件不是平台无关的。特别是,不保存字节顺序或数据类型信息。可以.npy使用saveload代替平台独立格式存储数据。

例子

构造一个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', '