我正在使用相当多的fortran库来进行一些数学计算。所以numpy中的所有数组都需要 Fortran-contiguous 目前,我使用numpy.asfortranarray()完成此操作。
我的问题是:
答案 0 :(得分:11)
生成numpy.array对象时,使用可选参数order ='F'(默认为'C')。这就是我这样做的方式,可能和你做的一样。关于数字2,我不知道设置默认顺序,但在生成数组时只包含order可选参数很容易。
答案 1 :(得分:5)
关于问题2:您可能会担心在执行数组转换和操作后保留Fortran排序。我有一个类似的字节序问题。我从文件中加载了一个big-endian原始数组,但是当我应用日志转换时,结果数组将是little-endian。我通过首先分配第二个big-endian数组,然后执行就地日志来解决这个问题:
b=np.zeros(a.shape,dtype=a.dtype)
np.log10(1+100*a,b)
在您的情况下,您将使用Fortran命令分配b
。