首页 > 解决方案 > 将 Fortran 数组转换为 numpy 数组

问题描述

我正在将 Fortran 90 代码转换为 python。Fortran 代码包括多维数组,例如:

integer fvpair(3,12,2)
integer jpair(3,2)
real*8 aread(3,12)

我想知道以下 numpy 数组是否正确等效,假设初始化为零:

fvpair = np.array([[np.zeros(3)],[np.zeros(12)],[np.zeros(2)]])
jpair = np.array([[np.zeros(3)],[np.zeros(2)]])
aread = np.array([[np.zeros(3)],[np.zeros(12)]])

标签: numpyfortrannumpy-ndarrayfortran90

解决方案


如果要保留原始 Fortran 数组存储顺序(以列为主),请不要忘记传递order='F'标志!

fvpair = np.zeros((3,12,2), dtype=int, order='F')
jpair = np.zeros((3,2), dtype=int, order='F')
aread = np.zeros((3,2), dtype=float64, order='F')

推荐阅读