由于速度限制,我正在尝试将某些内容从 Python 转换为 Fortran。 (这样我就可以使用 f2py 了。)
问题是代码包含许多 Fortran 90 中不存在的 NumPy 函数。所以我的问题是:是否有一个 Fortran 库至少实现了 Fortran 中的一些 NumPy 功能?
代码中需要用到的函数一般都很简单,所以我可以手工翻译它们。然而,我不想在这里重新发明轮子,特别是因为我在 Fortran 方面没有太多经验,而且我可能不知道一些重要的注意事项。
无论如何,这是我需要的一些功能的列表。
np.mean (with the axis parameter)
np.std (with the axis parameter)
np.roll (again with the axis parameter)
np.mgrid
np.max (again with axis parameter)
此时任何事情都有帮助。我并不指望找到所有这些的替代品,但如果至少其中一些已经存在,那就太好了。
最佳答案
我发现 gfortran 的内部过程列表作为第一个引用非常有用 https://gcc.gnu.org/onlinedocs/gfortran/Intrinsic-Procedures.html#Intrinsic-Procedures
np.mean
(带有轴参数)
见总和。它有一个轴参数。结合大小可以输出平均值:result = sum(data, dim=axis)/size(data, dim=axis)
这里,结果比数据少一维。
np.std
(带有轴参数)np.roll
(同样带有轴参数)np.mgrid
np.max
(同样带有轴参数)
请参阅 maxval,它有一个dim
参数。
我不知道有与 NumPy 等效的 Fortran 语言。 Fortran 基于标准的数组功能使得“基础”库尚未出现。不过,有几项举措:
- https://github.com/astrofrog/fortranlib 《个人Fortran科学例程合集》
- http://fortranwiki.org/ “Fortran Wiki 是一个讨论 Fortran 编程语言和科学计算各个方面的开放场所。”
- http://flibs.sourceforge.net/ “FLIBS - Fortran 模块的集合”
- http://www.fortran90.org/现代 Fortran 的通用资源。包含“Python Fortran Rosetta Stone”
关于numpy - Numpy 函数的 Fortran 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007927/