我尝试使用 scipy.linalg.toeplitz(c, r=None) 在 Python 中构造一个 toeplitz 矩阵。尽管我成功了,但我无法维持 Fortran 顺序。我需要确保正在构建的 toeplitz 数组保持 Fortran 排序,因为我正在调用 BLAS 函数。
我有办法做到这一点吗?
请您参考如下方法:
用 Fortran 排序复制一份是最简单的。 toeplitz 创建一个新数组,但无法让您控制顺序。
例如
x = scipy.linalg.toeplitz([1, 2, 3, 4])
x = np.asfortranarray(x)
如果您想节省内存,也可以就地执行此操作。例如
x[:] = x.T
x = x.T
