當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。