gpt4 book ai didi

python - numpy savetxt 函数中换行参数的问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:26:22 25 4
gpt4 key购买 nike

有这样的结构化数组:

[ (b'H', 0.9425, 0.1412, 7.1414) ... (b'N', 1.0037, 4.0524, 6.8000)]

我想使用 numpy.savetxt 创建一个 .txt 文件,其中数组的每个元素都写在单独的行中:

H   0.9425   0.1412   7.1414
N 1.0037 4.0524 6.8000

我设置了 newline='\n' 但它不能正常工作并且所有元素都写在一行中。 header参数也是同样的问题,指定的header也在同一行打印。

现在看起来像这样:

29Shifts: 1.0  3.0  7.0b'C' 1.0029  3.5098  7.9883 b'N' 1.0039  4.0586  6.8008 
29Shifts: 1.0 4.0 0.0b'C' 1.0029 4.5078 0.9873 b'N' 1.0039 5.0586 -0.2000
29Shifts: 1.0 5.0 9.0b'C' 1.0029 5.5078 9.9844 b'N' 1.0039 6.0586 8.7969

这里是使用的参数:

np.savetxt(outfile, recarray, fmt=[b'%s','%-7.4f','%-7.4f','%-7.4f'], delimiter='  ', newline='\n', header='29\nShifts: 1.0 1.0 3.5\n', comments='')

谢谢

最佳答案

我想知道是不是你系统上的\n有问题;也许 Python 使用一个值,而您的文件查看器期望另一个值(有 dos、linux 和 mac 标准)。

我在 linux 机器上的 Ipython session 中对这些数据和格式没有问题。

In [88]: d=[ (b'H', 0.9425, 0.1412, 7.1414),(b'N', 1.0037, 4.0524, 6.8000)]
In [89]: data=np.array(d,'|S1,f,f,f')
In [90]: data
Out[90]:
array([(b'H', 0.9424999952316284, 0.1412000060081482, 7.14139986038208),
(b'N', 1.0037000179290771, 4.0524001121521, 6.800000190734863)],
dtype=[('f0', 'S1'), ('f1', '<f4'), ('f2', '<f4'), ('f3', '<f4')])

In [91]: np.savetxt('test.txt', data,fmt =[b'%s','%-7.4f','%-7.4f','%-7.4f'])

In [92]: cat test.txt
b'H' 0.9425 0.1412 7.1414
b'N' 1.0037 4.0524 6.8000

In [93]np.savetxt('test.txt', data,fmt=[b'%s','%-7.4f','%-7.4f','%-7.4f'],
delimiter=' ', newline='\n', header='29\nShifts: 1.0 1.0 3.5\n', comments ='')

In [94]: cat test.txt
29
Shifts: 1.0 1.0 3.5

b'H' 0.9425 0.1412 7.1414
b'N' 1.0037 4.0524 6.8000

关于python - numpy savetxt 函数中换行参数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38509654/

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