我正在从频谱图中读取点到这样的数组:
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。有趣的是,当我将整个数组转储到文件时,它看起来很好。关于如何解决这个问题的任何想法?
答案 0 :(得分:2)
numpy.savetxt
将数组保存到文件中,看起来maxi
是一个python Float。使用savetxt
来保存标量是不常见的(为什么不使用Python的内置文件i / o函数?),但如果必须,这可能有用:
savetxt('myfilelocation', [maxi], fmt='%1.4f')
请注意,我已将maxi
放入列表中。另外,请确保myfilelocation
不以.gz
结尾。如果是这样,numpy会压缩它。如果有疑问,只需使用.txt
,或根本不使用扩展名。