我有一個非常簡單的問題。我有花車如何將浮點數組格式化爲字符串
數組a = array([0.01,0.1,10,100,1000])
我想,這樣最終的結果看起來像
10$^-2$, 10$^-1$, ....
打印此數組是可能與%
命令?
我有一個非常簡單的問題。我有花車如何將浮點數組格式化爲字符串
數組a = array([0.01,0.1,10,100,1000])
我想,這樣最終的結果看起來像
10$^-2$, 10$^-1$, ....
打印此數組是可能與%
命令?
作爲一襯墊:
["10$^{}$".format(int(math.log10(num))) for num in a]
或更清楚:
from math import *
def toLatex(powerOf10):
exponent = int(log10(powerOf10))
return "10$^{}$".format(exponent)
nums = [10**-20, 0.01, 0.1, 1, 10, 100, 1000, 10**20]
[(x, toLatex(x)) for x in nums]
[(1e-20, '10$^-20$'),
(0.01, '10$^-2$'),
(0.1, '10$^-1$'),
(1, '10$^0$'),
(10, '10$^1$'),
(100, '10$^2$'),
(1000, '10$^3$'),
(100000000000000000000L, '10$^20$')]
試試這個:
for i in str(a):
print i
輸出:
0.01
0.1
10.0
100.0
1000.0
如果你喜歡科學記數法:
for i in str(a):
print '%.3e' % i
輸出:
1.000e-02
1.000e-01
1.000e+01
1.000e+02
1.000e+03
'%.3e'中的數字控制小數點右側的位數。
編輯:如果您想要在同一行上打印所有內容,請在每個打印語句的末尾添加一個逗號','。
a = [0.01,0.1,10,100,1000]
for x in a:
base,exp = "{0:.0e}".format(x).split('e')
print "{0}0$^{1}$".format(base,exp)
輸出:
10$^-02$
10$^-01$
10$^+01$
10$^+02$
10$^+03$
對於'1',這是'10 $^+ 00 $',但由於OP沒有指定行爲,這看起來很好。可能不適用於非10輸入,但OP沒有指定這種行爲。也許有一個很小的機會,四捨五入錯誤可能會搞砸了,可能用'{.0e}'?但我無法觸發它。 – ninjagecko 2012-08-10 08:55:25
我個人會寫它'base,exp =「{0:.0e}」。format(x).split('e')',然後'print「{0} 0 $^{1} $」。 format(base,exp)' – ninjagecko 2012-08-10 08:58:36
這也可能不是OP所要求的,因爲它預先設置爲0,而LaTeX可能會將其渲染爲10 -02 – ninjagecko 2012-08-10 09:05:56
轉換數科學記數法的字符串:
s = string.format("%.3e",0.001)
然後更換E +或膠乳格式E-:
s.replace("e+","$^{")
s.replace("e-","$^{")
然後附加膠乳端部托架:
s = s + "}$"
應該輸出:
"1.000$^{-3}$"
你或許應該指定程序的行爲'1',以及爲浮動不屬於的10 – ninjagecko 2012-08-10 08:56:32