我需要在列中向文本文件写入3个数组

2024-05-13 22:53:04 发布

您现在位置:Python中文网/ 问答频道 /正文

阵列如下所示

array1=np.array([1.5397e-05,8.7383e+00,2.6633e+01,1.1309e+03,4.3194e+02,2.5086e+01])
array2=np.array([4.83,1.4,0.4,-7.2,-3.64,0.6])
array3=([‘Sun’,’Sirius’,’Arcuturus’,’Betelgeuse’,’Polaris’,’Vega’])

我希望数据看起来像下面的信息在一个名为星.txt. 在

^{pr2}$

谁能帮忙吗?在


Tags: 数据txt信息nparraysunvegasirius
3条回答

免责声明:一旦你已经在使用NumPy,我会使用向量化的方法,即(没有循环,使用NumPy或pandas的能力来为你做)

您可以使用np.savetxt()函数,正如@pathoren在评论中提到的那样:

np.savetxt('c:/temp/out.csv', np.array([array3, array1, array2]).T, delimiter='\t', fmt="%s")

或使用熊猫模块:

^{pr2}$

注意:我不建议您使用空格/制表符分隔的文本,因为这可能会在将来导致问题(例如,当您需要读取/解析此文件时,以及如果您将要使用名称中包含多个单词的星星)

这很简单,不值得指出的是,你真的应该能够自己解决这个问题。我建议你遵循一个基本的Python教程,网上有很多。在

有几种解决方案,我的方法是:

import numpy as np

array1=np.array([1.5397e-05,8.7383e+00,2.6633e+01,1.1309e+03,4.3194e+02,2.5086e+01])
array2=np.array([4.83, 1.4, 0.4, -7.2, -3.64, 0.6])
array3=(['Sun','Sirius','Arcuturus','Betelgeuse','Polaris','Vega'])

with open('star.txt', 'w') as fh:
    for a,b,c in zip(array1, array2, array3):
        print("%-10s  %e  %05.2f" % (c, a, b), file = fh)

假设是Python3。在

怎么样?在

import numpy as np

array1=np.array([1.5397e-05,8.7383e+00,2.6633e+01,1.1309e+03,4.3194e+02,2.5086e+01])
array2=np.array([4.83,1.4,0.4,-7.2,-3.64,0.6])
array3 = ['Sun','Sirius','Arcuturus','Betelgeuse','Polaris','Vega']

with open('star.txt', 'w') as f:
    for a, b, name in zip(array1, array2, array3):
        f.write('{0:15}{1:15}{2:15}\n'.format(name, a, b))

输出

文件star.txt位于同一文件夹中,包含以下内容:

^{pr2}$

就记录而言,如果您使用比array1array2等更多的描述性变量名,这样我就可以使用比ab等更多的描述性变量名

相关问题 更多 >