Python:使用 numpy 或 scipy 读取 Fortran 二进制文件

2023-12-06

我正在尝试读取一个 fortran 文件,其标题为整数,然后实际数据为 32 位浮点数。使用 numpy 的fromfile('mydatafile', dtype=np.float32)它以 float32 形式读取整个文件,但我需要输出文件的标头采用 int32 格式。使用 scipy 的 FortranFile 它读取标头:

f = FortranFile('mydatafile', 'r')
headers = f.read_ints(dtype=np.int32)

但当我这样做时:

data = f.read_reals(dtype=np.float32)

它返回一个空数组。我知道它不应该为空,因为使用 numpy 的 fromfile 它会读取所有数据。奇怪的是,scipy 方法适用于我的数据集中的其他文件,但不适用于这个。也许我不理解 numpy 和 scipy 的两种读取方法之间的区别。有没有办法隔离标题(dtype=np.int32)和数据(dtype=np.float32)使用任一方法读取文件时?


np.fromfile采用“count”参数,指定要读取的项目数。如果您提前知道标头中整数的数量,则无需进行任何类型转换即可执行所需操作的简单方法是将标头读取为整数,然后将文件的其余部分读取为浮点数:

with open('filepath','r') as f:
    header = np.fromfile(f, dtype=np.int, count=number_of_integers)
    data = np.fromfile(f, dtype=np.float32)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:使用 numpy 或 scipy 读取 Fortran 二进制文件 的相关文章

随机推荐

  • 如何检测故障并自动重启 celery Worker

    I use Celery and Celerybeat在我的 Django 驱动的网站中 服务器操作系统是Ubuntu 16 04 通过使用 celerybeat 芹菜工人每 10 分钟完成一项工作 有时 工作进程会在没有任何有用的日志消息
  • plm 与 lm - 结果不同?

    我多次尝试使用 lm 和 plm 进行回归 我得到了不同的结果 首先 我使用 lm 如下 fixed Region1 lt lm CapNormChange Policychanges factor Region data Panel 此外
  • Java中的静态块未执行

    class Test public static void main String arg System out println MAIN METHOD System out println Mno VAL SOP 9090 System
  • WPF。将列表框 itemtemplate 内部绑定到 ObservableCollection 源。源 PropertyChanged 被忽略

    我正在尝试创建一个显示格式化文本的列表框 我希望能够更改代码的格式 为了显示格式化文本 我选择了 TextBlock 并打算使用 TextBlock Inlines 集合进行格式化 TextBlock Inlines 不可绑定 所以我创建了
  • 使用 jQuery 验证 addMethod 设置输入文本的日期格式 dd.mm.yyyy

    我在使用这个 addMethod 来验证输入的日期时遇到了真正的麻烦 它没有正确测试正则表达式 我认为它可能写有错误 日期应采用以下格式 dd mm yyyy 请帮忙 function msgBtn click function var i
  • 动态创建一组 SQLAlchemy 表

    我有一个用 SQLAlchemy 声明定义的简单表 Base declarative base class MyTable Base tablename mytable1 row id Column INT primary key True
  • C++:复制数组

    是否可以在 C 中做这样的事情 现在无法自己测试 int myarray 10 111 222 333 444 555 666 777 888 999 1234 void functioncc int temparray myarray f
  • Windows 安装程序 (wix) 安装产品两次

    我使用 WIX 安装测试产品 使用默认的 wix 设置非常简单 如果我设置产品 id 安装 重建并再次安装 我的程序列表中有两个产品 为什么 我的产品
  • javafx argb 到灰度转换

    我知道有类似的问题 但这些问题并没有回答我的问题 正如标题所示 我正在使用 JavaFXImage类 而不是 bufferedImage 我用了答案this其他问题 但生成的图像是空的 这是我的代码 public static Image
  • Powershell监控多个目录

    注意 运行 PowerShell v3 我目前的目录设置是 ftproot 001 converted ftproot 001 inbound ftproot 001 pdf ftproot 002 converted ftproot 00
  • 使用函数依赖的关联参数限制

    对于给定类型 a 下面的函数 f 采用类型 c 的参数 对于不同类型的 a c 以不同的方式受到限制 具体来说 当 a 是任何整数类型时 c 应该允许是任何 实数 类型 当 a 为 Float 时 c 只能为 Float 一种尝试是 LAN
  • Websphere:web.xml 中的安全约束不起作用

    我想保护单个 jsp 页面免遭匿名访问 我正在尝试通过以下方式做到这一点
  • 有符号整型和无符号整型有什么区别

    有符号整型和无符号整型有什么区别 您可能知道 ints 在内部以二进制形式存储 通常是一个int包含 32 位 但在某些环境中可能包含 16 或 64 位 甚至不同的数字 通常但不一定是 2 的幂 但对于这个例子 我们来看 4 位整数 虽然
  • C# 7 模式匹配语义

    我有两个我认为是相等的代码块 First the if based block 然后完全相同 但转换为切换大小写类型 很抱歉 Resharper 红色波浪标记不好 Resharper 还不明白这一点 基于开关的代码将在第一个时抛出空引用异常
  • Spark 中的 DataFrame orderBy 后跟 limit

    我有一个程序生成一个 DataFrame 它将在其上运行类似的东西 Select Col1 Col2 orderBy ColX limit N 但是 当我最终收集数据时 我发现如果我采用足够大的前 N 个 则会导致驱动程序 OOM 另外另一
  • 从 Outlook 中的特定文件夹导入电子邮件

    我目前正在 Excel 中使用以下代码来访问无人值守的 Outlook 邮箱中的文件夹 而不是我自己的邮箱 但是 有没有一种方法可以在代码中设置文件夹 而不是使用文件夹选择器 Sub Launch Pad Dim olApp As Outl
  • 有没有办法从 GET 请求中删除提交按钮?

    我有一个可以查看的页面photos each photo是在一个album 在页面顶部我有一个albums选择框album id and album name分别
  • CORS 策略已阻止我的子域

    我有一个相同的域 其中一个是没有前缀 www 的域 例如 https www example com https example com 第一个域工作正常 因为它是默认域 但当我执行 CRUD 或访问任何 api 服务时 第二个出现错误 访
  • 无法预览此文件,应用程序可能已崩溃 -- 输入特定代码行时发生

    虽然我在堆栈溢出上四处寻找答案 但感觉我的情况对于这个错误来说是独一无二的 我一直在学习如何在 SwiftUI 中使用 CoreData 来保存持久数据 我首先制作一个基本的电影列表 当您单击 添加电影 按钮时 它会添加带有一些任意文本的电
  • Python:使用 numpy 或 scipy 读取 Fortran 二进制文件

    我正在尝试读取一个 fortran 文件 其标题为整数 然后实际数据为 32 位浮点数 使用 numpy 的fromfile mydatafile dtype np float32 它以 float32 形式读取整个文件 但我需要输出文件的