我正在编写一个应用程序,它读取带有 fortran 排序数组的 ascii 文件,修改值,然后在 ascii 中写回该数据(按 fortran 顺序)。将这个数组读入numpy的正确方法是什么,表示数组是fortran顺序,然后以fortran顺序写回数据?
假设我有一个包含以下 ascii 文本的文件:
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0
这些数字表示以 fortran 顺序编写的 2x2x2 数组。
ascii 格式比上面的要复杂一些。但是,只要说该格式不太适合使用任何自动 numpy ascii 加载器(例如numpy.loadtxt
等)就足够了。
我正在执行类似于以下的行来创建数组:
x = numpy.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], order='F')
我知道这是低效的,并且会进行大量额外的数据复制等。不过,我更担心排序。
因此,我认为此时 x 在内存中像 fortran 数组一样被排序。现在,当我导出这个数组时,我应该使用numpy.nditer(x, order='F')
吗?