如何强制将numpy数组顺序设置为Fortran风格?

18

我正在使用许多Fortran库进行数学计算。因此,numpy中的所有数组都需要是 Fortran连续的。
目前我使用numpy.asfortranarray()来实现这一点。

我的问题如下:

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

14

在生成numpy.array对象时,使用可选参数order ='F'(默认为'C')。这是我使用的方法,可能与您正在使用的方法相同。关于第2个问题,我不知道如何设置默认顺序,但只需在生成数组时包含order可选参数即可。


7

关于问题2:您可能会担心在执行数组转换和操作后保留Fortran顺序。我曾经遇到过与字节顺序相关的类似问题。我从文件中加载了一个大端序的原始数组,但当我应用对数转换时,结果数组变为小端序。我通过首先分配第二个大端序数组,然后执行地点日志来解决这个问题:

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

在您的情况下,您将使用Fortran顺序分配b

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接