Python numpy 数组切片不是 Fortran 连续的

Dav*_*uzi 2 python arrays numpy f2py contiguous

我定义了一个 Fortran 连续数组:

   import numpy as np

   hp  = np.zeros([number_fragments, max(length_fragments_list), 6], order='F')
Run Code Online (Sandbox Code Playgroud)

该数组的切片在 Fortran 中不是连续的。我该如何解决这个问题?

hn = hp[0,0:Length-1,:]

   hn.flags

  C_CONTIGUOUS : False

  F_CONTIGUOUS : False

also

   hn = hp[0,0:Length-1,:].copy()

   hn.flags

  C_CONTIGUOUS : True

  F_CONTIGUOUS : False
Run Code Online (Sandbox Code Playgroud)

如何在切片后轻松获得 Fortran 连续数组?

dtr*_*ckd 5

np.asfortranarray您可以在切片上应用 numpy 函数来强制执行它,例如:

 np.asfortranarray(hp[0,0:Length-1,:].copy())
Run Code Online (Sandbox Code Playgroud)