如何强制numpy数组顺序为fortran风格?

Wol*_*tan 14 python arrays performance fortran numpy

我正在使用相当多的fortran库来进行一些数学计算.所以numpy中的所有数组都需要Fortran连续.
目前我用numpy.asfortranarray()完成了这个.

我的问题是:

  1. 这是一个告诉numpy的快速方法,数组应该以fortran风格存储还是更快?
  2. 是否有可能设置一些numpy标志,以便创建的每个数组都是fortran风格?

mil*_*cic 11

生成numpy.array对象时,使用可选参数order ='F'(默认为'C').这就是我这样做的方式,可能和你做的一样.关于2号,我不知道设置默认顺序,但是在生成数组时只包含order可选参数很容易.


bdf*_*bes 5

关于问题2:您可能担心在执行数组转换和操作后保留Fortran排序.我有一个类似的字节序问题.我从文件中加载了一个big-endian原始数组,但是当我应用日志转换时,结果数组将是little-endian.我通过首先分配第二个大端数组,然后执行就地日志来解决这个问题:

b=np.zeros(a.shape,dtype=a.dtype)
np.log10(1+100*a,b)
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您将b使用Fortran订购进行分配.