2024-06-02 21:58:10 发布
网友
我用了相当多的fortran库来做一些数学计算。所以numpy中的所有数组都需要Fortran continuous 现在我用numpy.asfortranarray()来完成这个任务。
我的问题是:
关于问题2:在执行数组转换和操作之后,您可能会担心如何保留Fortran顺序。我对endianness也有类似的问题。我从文件中加载了一个大端的原始数组,但是当我应用一个日志转换时,得到的数组将是小端的。我通过先分配第二个大端数组,然后执行就地日志来解决问题:
b=np.zeros(a.shape,dtype=a.dtype) np.log10(1+100*a,b)
在您的例子中,您将使用Fortran排序来分配b。
b
生成numpy.array对象时,使用可选参数order=“F”(默认值“C”)。我就是这样做的,可能和你做的一样。关于数字2,我不知道如何设置默认顺序,但是在生成数组时只包含order可选参数就足够简单了。
关于问题2:在执行数组转换和操作之后,您可能会担心如何保留Fortran顺序。我对endianness也有类似的问题。我从文件中加载了一个大端的原始数组,但是当我应用一个日志转换时,得到的数组将是小端的。我通过先分配第二个大端数组,然后执行就地日志来解决问题:
在您的例子中,您将使用Fortran排序来分配
b
。生成numpy.array对象时,使用可选参数order=“F”(默认值“C”)。我就是这样做的,可能和你做的一样。关于数字2,我不知道如何设置默认顺序,但是在生成数组时只包含order可选参数就足够简单了。
相关问题 更多 >
编程相关推荐