¿Cómo forzar el orden de la matriz numpy al estilo fortran?

Estoy usando muchas bibliotecas fortran para hacer algunos cálculos matemáticos. Así que todas las matrices en números deben ser contiguas a Fortran .
Actualmente lo logro con numpy.asfortranarray () .

Mis preguntas son:

  1. ¿Es esta una manera rápida de decirle a los números que la matriz debe almacenarse en estilo fortran o hay una más rápida?
  2. ¿Existe la posibilidad de establecer algún indicador numpy, de modo que cada matriz que se crea esté en estilo fortran?

Utilice el orden de argumento opcional = ‘F’ (predeterminado ‘C’), al generar objetos numpy.array. Esta es la forma en que lo hago, probablemente hace lo mismo que tú. En cuanto al número 2, no conozco la configuración del orden predeterminado, pero es bastante fácil simplemente incluir un argumento opcional de orden al generar arreglos.

Con respecto a la pregunta 2: es posible que le preocupe mantener el orden de Fortran después de realizar transformaciones y operaciones de matriz. Tuve un problema similar con el endianness. Cargué una matriz sin formato big-endian desde el archivo, pero cuando apliqué una transformación de registro, la matriz resultante sería little-endian. Resolví el problema asignando primero una segunda matriz big-endian y luego realizando un registro en el lugar:

b=np.zeros(a.shape,dtype=a.dtype) np.log10(1+100*a,b) 

En su caso, asignaría b con orden de Fortran.