gpt4 book ai didi

python - 如何在 Numpy 中使用 savetxt 有两个前导空格

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:48 24 4
gpt4 key购买 nike

我正在准备一个用 Python 编写的文件,以便在 Fortran 中读取。该文件如下所示:

 0.0000000E+00  0.0000000E+00  0.0000000E+00  1.5000000E-01
1.0193980E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
2.0387960E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
3.0581940E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
4.0775920E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
5.0969900E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
6.1163880E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
7.1357860E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
8.1551840E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01

它以一个前导空格开始,然后列之间的间距变为 2 个空格。我拥有的 Fortran 可执行文件(无法访问源代码)读取和写入 E15.7 格式,这意味着我需要两个前导空格,如下所示:

  0.0000000E+00  0.0000000E+00  0.0000000E+00  1.5000000E-01
1.0193980E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
2.0387960E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
3.0581940E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
4.0775920E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
5.0969900E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
6.1163880E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
7.1357860E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01
8.1551840E-02 0.0000000E+00 0.0000000E+00 1.5000000E-01

我生成文件的 python 脚本是这样的:

np.savetxt(fpath, data, fmt='%14.7E')

如果我使用 fmt='%15.7E',前导空格变为两个,但其余空格将为 3 个。

最佳答案

使用更复杂的格式字符串,您可以这样做:

代码:

np.savetxt(fpath, data, fmt=' %14.7E' * data.shape[1])

测试代码:

import numpy as np
fpath = 'test_data'
data = np.array([[1.0, 1.1, 12.0]])
np.savetxt(fpath, data, fmt=' %14.7E' * data.shape[1])

结果:

  1.0000000E+00  1.1000000E+00  1.2000000E+01

关于python - 如何在 Numpy 中使用 savetxt 有两个前导空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com