数组的最大值不会将ASCII文本保存到文件

时间:2014-03-11 00:35:47

标签: python arrays numpy scipy

我正在从频谱图中读取点到这样的数组:

self.iq_fft = self.dofft(self.iq)#Gets values of all data point in block (in dB)
x = self.iq_fft #puts values into x for simplicity
maxi = max(x)
print maxi #This part works fine

def dofft(self, iq):
    N = len(iq)
    iq_fft = scipy.fftpack.fftshift(scipy.fft(iq))      

一切都很好,它将数组的最大值打印到完美的屏幕,但是,当我尝试将最大值保存到文件时,如下所示:

savetxt('myfilelocation', maxi, fmt='%1.4f')#saves max(x) in binary format

它最终将二进制值保存到文本文件中,而不是打印到屏幕上的漂亮的ASCII。有趣的是,当我将整个数组转储到文件时,它看起来很好。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:2)

numpy.savetxt数组保存到文件中,看起来maxi是一个python Float。使用savetxt来保存标量是不常见的(为什么不使用Python的内置文件i / o函数?),但如果必须,这可能有用:

savetxt('myfilelocation', [maxi], fmt='%1.4f')

请注意,我已将maxi放入列表中。另外,请确保myfilelocation不以.gz结尾。如果是这样,numpy会压缩它。如果有疑问,只需使用.txt,或根本不使用扩展名。