2017-03-09 44 views
0

我能計算出平均值,最小值和最大值A的:保存numpy的陣列到CSV沒有科學記數法

import numpy as np 

A = ['33.33', '33.33', '33.33', '33.37'] 

NA = np.asarray(A) 
NA = NA.astype(float) 
AVG = np.mean(NA, axis=0) 
MN = np.min(NA, axis=0) 
MX = np.max(NA, axis=0) 

print AVG, MN, MX 

什麼是保存這些結果使用python一個這份執行CSV最簡單的方法?我沒有一個,所以它需要被創建。

如果我用這個:

np.savetxt('datasave.csv', (AVG,MN,MX), delimiter=',') 

它會顯示在CSV科學記數法。我怎麼不明白,但浮動?

+2

特別使用csv模塊,csv.writer。 – cco

+0

您是否嘗試過使用'savetxt'的'fmr'參數? – hpaulj

回答

1
In [153]: print(AVG, MN, MX) 
33.34 33.33 33.37 

默認寫:

In [154]: np.savetxt('test.txt',(AVG, MN, MX), delimiter=',') 
In [155]: cat test.txt 
3.333999999999999631e+01 
3.332999999999999829e+01 
3.336999999999999744e+01 

寫一個自定義fmt

In [156]: np.savetxt('test.txt',(AVG, MN, MX), delimiter=',', fmt='%f') 
In [157]: cat test.txt 
33.340000 
33.330000 
33.370000 

或者,如果你想在同一行的值,使其成爲一個二維數組(或等效採用額外的[]),所以它每行寫一行:

In [160]: np.savetxt('test.txt',[[AVG, MN, MX]], delimiter=',', fmt='%f') 
In [161]: cat test.txt 
33.340000,33.330000,33.370000 

還有其他參數可供您嘗試。

-2

CSV或逗號分隔值文件恰好就是一個用逗號分隔信息的文件。

例如: 這個信息會落得像

<table border="1"> 
 
<thead> 
 
<tr> 
 
<th>Name</th> 
 
<th>Age</th> 
 
<th>Gender</th> 
 
</tr> 
 
</thead> 
 
<tbody> 
 
<tr> 
 
<td>Luis</td> 
 
<td>45</td> 
 
<td>M</td> 
 
</tr> 
 
<tr> 
 
<td>Anna</td> 
 
<td>30</td> 
 
<td>F</td> 
 
</tr> 
 
<tr> 
 
<td>Brian</td> 
 
<td>28</td> 
 
<td>M</td> 
 
</tr> 
 
</tbody> 
 
</table>

Name,Age,Gender 
Luis,45,M 
Anna,30,F 
Brian,28,M 

Python有已經內置模塊爲此,csv模塊,你可以得到一些文檔在這裏:https://docs.python.org/3/library/csv.html

+1

HTML是否真的有必要?問題是如何得不到科學記數法 –

+1

這個答案沒有增加任何價值的問題。它只顯示HTML表格如何轉換爲CSV,但沒有人要求它。 – Nicolaesse

1

您可以使用CSV模塊

import csv 
f = open('New file.csv',"wb") 
writer = csv.writer(f) 
for row in [AVG, MN, MX]: 
    writer.writerow(row) 

f.close() 
+0

謝謝,但由於某種原因,使用此方法時,文件已創建,但沒有任何內容。任何想法? –