将 Fortran 数组转换为 numpy 数组

Converting Fortran array to numpy array

我正在将 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)]])

如果你想保留原来的 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')