2017-03-09 50 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

谢谢,但由于某种原因,使用此方法时,文件已创建,但没有任何内容。任何想法? –