当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy FortranFile.read_record用法及代码示例


本文简要介绍 python 语言中 scipy.io.FortranFile.read_record 的用法。

用法:

FortranFile.read_record(*dtypes, **kwargs)#

从文件中读取给定类型的记录。

参数

*dtypes 数据类型,可选

指定数据大小和结束的数据类型。

返回

data ndarray

一维数组对象。

抛出

FortranEOFError

表示没有更多记录可用

FortranFormattingError

通过记录表示遇到文件末尾part-way

注意

如果记录包含多维数组,您可以在 dtype 中指定大小。例如:

INTEGER var(5,4)

可以阅读:

read_record('(4,5)i4').T

请注意,这个函数的作用是不是假设文件数据采用 Fortran 列主序,因此您需要 (i) 在读取时交换维度顺序,以及 (ii) 转置生成的数组。

或者,您可以将数据读取为一维数组并自己处理排序。例如:

read_record('i4').reshape(5, 4, order='F')

对于包含多个变量或混合类型(与单个标量或数组类型相反)的记录,将它们作为单独的参数提供:

double precision :: a
integer :: b
write(1) a, b

record = f.read_record('<f4', '<i4')
a = record[0]  # first number
b = record[1]  # second number

如果任何变量是数组,则可以将形状指定为相关 dtype 中的第三项:

double precision :: a
integer :: b(3,4)
write(1) a, b

record = f.read_record('<f4', np.dtype(('<i4', (4, 3))))
a = record[0]
b = record[1].T

NumPy 还支持这种类型的简短语法:

record = f.read_record('<f4', '(3,3)<i4')

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.io.FortranFile.read_record。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。