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

时间:2016-08-07 14:10:13

标签: python arrays file text

数组如下

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

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

免责声明:只要你已经在使用NumPy,我就会使用矢量化方法,即(没有循环,使用NumPy或熊猫的力量来为你做)

您可以使用function devicesoff() { var devices = document.querySelectorAll("[id^='device_']"); for (var i = 0; i < devices.length; i++) { if (devices[i].checked === false) { var ele = devices[i].name; var para = document.getElementById("p"); var list = document.createElement("li"); var t = document.createTextNode(ele + "\n"); list.appendChild(t); para.appendChild(list); } } 函数,因为注释中提到了@pathoren:

np.savetxt()

或使用pandas模块:

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

注意:我不建议您使用space / TAB分隔文本,因为它可能会在将来导致问题(例如,当您需要阅读/解析此文件时,如果您的名字中有多个单词的星号) )

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这是怎么回事?

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等更多的描述性变量名称会更好,这样我可以使用比a,{{更多的描述性变量名称1}}等等。