gpt4 book ai didi

python - 如何从某一行开始将 numpy 数组写入 .txt 文件?

转载 作者:太空狗 更新时间:2023-10-30 01:12:52 25 4
gpt4 key购买 nike

我需要将 3 个 numpy 数组写入一个 txt 文件。文件的头部看起来像这样:

#Filexy
#time operation1 operation2

numpy 数组如下所示:

time = np.array([0,60,120,180,...])
operation1 = np.array([12,23,68,26,...)]
operation2 = np.array([100,123,203,301,...)]

最后,.txt 文件应该是这样的(分隔符应该是制表符):

#Filexy
#time operation1 operation2
0 12 100
60 23 123
120 68 203
180 26 301
.. ... ...

我用“numpy.savetxt”试过 - 但我没有得到我想要的格式。

非常感谢您的帮助!

最佳答案

我不确定您尝试了什么,但您需要使用 np.savetxt 中的 header 参数。此外,您需要正确连接数组。最简单的方法是使用 np.c_ ,这会将您的一维数组强制转换为二维数组,然后按照您期望的方式将它们连接起来。

>>> time = np.array([0,60,120,180])
>>> operation1 = np.array([12,23,68,26])
>>> operation2 = np.array([100,123,203,301])
>>> np.savetxt('example.txt', np.c_[time, operation1, operation2],
header='Filexy\ntime operation1 operation2', fmt='%d',
delimiter='\t')

example.txt 现在包含:

# Filexy
# time operation1 operation2
0 12 100
60 23 123
120 68 203
180 26 301

另请注意使用 fmt='%d' 获取输出中的整数值。 savetxt 将默认保存为 float ,即使对于整数数组也是如此。

关于分隔符,你只需要使用delimiter参数。这里不清楚,但实际上,列之间有制表符。例如,vim 使用点显示选项卡:

# Filexy
# time operation1 operation2
0· 12· 100
60· 23· 123
120·68· 203
180·26· 301

附录:

如果你想添加标题在数组前添加额外的一行,你最好创建一个自定义标题,用你自己的注释字符完成。使用 comment 参数来防止 savetxt 添加额外的 #

>>> extra_text = 'Answer to life, the universe and everything = 42'
>>> header = '# Filexy\n# time operation1 operation2\n' + extra_text
>>> np.savetxt('example.txt', np.c_[time, operation1, operation2],
header=header, fmt='%d', delimiter='\t', comments='')

产生

# Filexy
# time operation1 operation2
Answer to life, the universe and everything = 42
0 12 100
60 23 123
120 68 203
180 26 301

关于python - 如何从某一行开始将 numpy 数组写入 .txt 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483774/

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