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



数组如下

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’])

我希望数据看起来像下面一个名为star.txt的文本文件中的信息。

Sun         1.5397e-05   4.83
Sirius      8.7383e+00   1.4
Arcuturus   2.6633e+01   0.4
Betelgeuse  1.1309e+03   -7.2
Polaris     4.3194e+02   -3.64
Vega        2.5086e+01   0.6

有人能帮忙吗?

免责声明:一旦你已经在使用NumPy,我就会使用矢量化方法,即(无循环,使用NumPy's或Panda的力量为你做这件事(

你可以像@pathoren在评论中提到的那样使用np.savetxt()函数:

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

或使用pandas模块:

import pandas as pd
pd.DataFrame({'col1':array3,'col2':array1,'col3':array2}).to_csv('c:/temp/out.csv', index=False, header=None, sep='t')

注意:我不建议您使用空格/TAB分隔的文本,因为这可能会在将来引起问题(例如,当您需要读取/解析此文件时,如果您的星形名称中有多个单词(

怎么样?

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在同一文件夹中,包含以下内容:

Sun                 1.5397e-05           4.83
Sirius                  8.7383            1.4
Arcuturus               26.633            0.4
Betelgeuse              1130.9           -7.2
Polaris                 431.94          -3.64
Vega                    25.086            0.6

对于记录,如果您使用比array1array2等更多的描述性变量名,那就太好了,这样我就可以使用比ab等更多的指示性变量名。

它太简单了,几乎不值得指出,你真的应该能够自己解决这个问题。我建议你遵循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)

这是假设Python 3。

相关内容

  • 没有找到相关文章

最新更新