将numpy数组快速加载到Fortran中

Jac*_*ack 3 python storage fortran loading

我目前正在开发一个Fortran程序,它需要一个大型数据文件作为输入.这个数据文件是使用Python创建的,我目前正在使用该np.savetxt()函数以人类可读的格式保存它.

但是,此文件的大小非常大(至少1.5GB的磁盘空间),因此在文件中读取需要很长时间.我认为用二进制格式保存数据数据可能更容易np.save(或者可能用它来腌制?),但是我不知道如何将这个文件读入我的Fortran程序 - 有一种简单的方法吗?

我意识到,另一种解决方案是完全将Python从图片中删除并在Fortran中创建数据数组,但是当我接近Fortran中的一个完整的初学者时,我正在努力减少我需要它的数量. .

Vla*_*r F 6

这取决于您的数据结构,但如果它只是一个或几个数组,您不需要任何外部库(我对NetCDF的所有麻烦都没有留下深刻的印象).

import numpy as np
a = np.zeros([10,10], order="F")
a.tofile("a.bin")
Run Code Online (Sandbox Code Playgroud)

  use iso_fortran_env
  real(real64) :: a(10,10)

  open(newunit=iu,file="a.bin",access="stream",status="old",action="read")
  read(iu) a
  close(iu)
end
Run Code Online (Sandbox Code Playgroud)

就这样.