numpy - Numpy 函数的 Fortran 等价物

标签 numpy fortran fortran90

由于速度限制,我正在尝试将某些内容从 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

  1. np.mean(带有轴参数)
    见总和。它有一个轴参数。结合大小可以输出平均值:

    result = sum(data, dim=axis)/size(data, dim=axis)
    

    这里,结果比数据少一维。

  2. np.std(带有轴参数)

  3. np.roll(同样带有轴参数)
  4. np.mgrid
  5. np.max(同样带有轴参数)
    请参阅 maxval,它有一个 dim 参数。

我不知道有与 NumPy 等效的 Fortran 语言。 Fortran 基于标准的数组功能使得“基础”库尚未出现。不过,有几项举措:

  1. https://github.com/astrofrog/fortranlib 《个人Fortran科学例程合集》
  2. http://fortranwiki.org/ “Fortran Wiki 是一个讨论 Fortran 编程语言和科学计算各个方面的开放场所。”
  3. http://flibs.sourceforge.net/ “FLIBS - Fortran 模块的集合”
  4. http://www.fortran90.org/现代 Fortran 的通用资源。包含“Python Fortran Rosetta Stone”

关于numpy - Numpy 函数的 Fortran 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007927/

相关文章:

python - 如何在 python 中制作衰减振荡函数?

python - 检测 python 图中的峰值

fortran - Fortran 不能做865398.78 和-865398.78 之间的加法吗?为什么答案是-0.03?

performance - 不同优化下的 Fortran 矩阵乘法性能

arrays - Fortran 二维数组保存

gdb - GDB 可以用于打印 Fortran 90 中派生类型的可分配数组的值吗?

python - 使用 numpy.loadtxt 加载复数

python - 独特的对称元素 Numpy 数组

c - MUMPS - 在调用 MPI_INIT 之前调用 MPI_Comm_f2c() 函数

fortran - Fortran 90 中的标准输入和输出单位?