将numpy数组保存为CSV而无需科学记数法

Cri*_*ada 5 python csv numpy

我能够计算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
Run Code Online (Sandbox Code Playgroud)

使用python将这些结果保存到csv documento的最简单方法是什么?我没有,所以需要创建它.

如果我用这个:

 np.savetxt('datasave.csv', (AVG,MN,MX), delimiter=',')
Run Code Online (Sandbox Code Playgroud)

它将在csv中显示为科学记数法.我怎么不得到那个漂浮?

hpa*_*ulj 8

In [153]: print(AVG, MN, MX)
33.34 33.33 33.37
Run Code Online (Sandbox Code Playgroud)

默认写:

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

用自定义写fmt:

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

或者,如果您想在一行上使用值,请将其设为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
Run Code Online (Sandbox Code Playgroud)

您还可以尝试其他参数.