簡體   English   中英

在python列中打印數組

[英]printing an array in python columnwise

我正在嘗試添加如下所示的數組

#       N                     Mn                 Fe                x              x2
3.94870000e+01      -1.22950000e-07     -1.65130000e-05     6.40000000e-01      0.00000000e+00
3.95040000e+01      -9.38580000e-07     -1.63070000e-05     6.41000000e-01      0.00000000e+00
3.95130000e+01      -1.67100000e-06     -1.59280000e-05     6.42000000e-01      0.00000000e+00
3.95230000e+01      -2.29230000e-06     -1.53800000e-05     6.43000000e-01      0.00000000e+00

我設法編寫的代碼確實添加了MnFe列,但尚未設法將其寫為:

# N      Mn    Fe  Res

我寫的代碼是:

#!/usr/bin/env python3
# encoding: utf-8

import numpy as np

inp = "ec.dat"
out = "ec2.dat"


N, Mn, Fe, x, x2 = np.loadtxt(inp, unpack=True)
res = Mn+Fe
print(N, res)
# with open("ec2.dat", 'a') as outfile:

有人能幫我正確地寫桌子嗎? 問候,

編輯 @Paul,謝謝。 現在完整的代碼是:

#!/usr/bin/env python3
# encoding: utf-8

import numpy as np

inp = "ec.dat"
out = "ec2.dat"


N, Mn, Fe, x, x2 = np.loadtxt(inp, unpack=True)
res = Mn+Fe
with open("ec2.dat", "w") as of:
    for n, mn, fe, res in zip(N, Mn, Fe, res):
        s = "%e %e\n" % (n, res)
        of.write(s)

我將向您展示各個部分,而不是將答案匯總在一起,以便您自己進行研究。

要同時迭代多個numpy數組,可以執行以下操作:

for n, mn, fe, result in zip(N, Mn, Fe, res):
    print "" + str(n) + " " + str(mn) +" " + str(fe) + " " + str(result)

但是,要執行所需的格式,您應該使用字符串說明符: https : //docs.python.org/2/library/string.html#format-specification-mini-language

一個例子就是

v = 1000.526
s = "%e   %e\n" % (10.25, v)
print s

寫入文件非常簡單:

s = "Here is a line I will write to my file\n"
with open("ec2.dat", 'a') as outfile:
    outfile.write(s)

將這些內容鏈接在一起,您應該能夠將所需的輸出打印到屏幕或文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM