[英]Save numpy array to CSV without scientific notation
我能够计算A的平均值,最小值和最大值:
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 documento的最简单方法是什么? 我没有,所以需要创建它。
如果我用这个:
np.savetxt('datasave.csv', (AVG,MN,MX), delimiter=',')
它将在csv中显示为科学记数法。 我怎么不得到那个漂浮?
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
或者,如果您想在一行上使用值,请将其设为2d数组(或使用extra [])等效,因此每行写入一行:
In [160]: np.savetxt('test.txt',[[AVG, MN, MX]], delimiter=',', fmt='%f')
In [161]: cat test.txt
33.340000,33.330000,33.370000
您还可以尝试其他参数。
您可以使用CSV模块
import csv
f = open('New file.csv',"wb")
writer = csv.writer(f)
for row in [AVG, MN, MX]:
writer.writerow(row)
f.close()
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.