我想这很容易,但我不能让它发挥作用。我有一个函数给我一个列表(1x128)。函数在一个循环内(1x32)。我想把函数中的所有列表(32x128)写入一个文件。代码如下:
count = 0
savez = np.zeros((waveforms.size/len(waveforms),len(waveforms)))
for wvf in waveforms: # waveforms is an array of 132x128, so wvf is a list of 1x128
# some code
...
...
...
z, maxpeak = get_first_peak(wvf) #Function giving me z. z is a list of 128 numbers.
for index in range(len(z)):
savez[count,index] = z[index]
# Some more Code
...
...
...
count = count + 1
# Writing z to file
savetxt("logwvf.dat", savez, fmt="%7.1F")
为什么不给我一个包含所有32个z列表的文件?在
编辑(如果我包含主代码有帮助吗?)公司名称:
^{pr2}$编辑#2
哇,这太尴尬了。我刚刚发现了我自己的错误。我写文件时只包括一个数字,而我需要至少3个数字。在
谢谢你们抽出时间来帮我。在
与其创建一个由零组成的
(waveforms.size/len(waveforms),len(waveforms))
数组,不如将savez
作为一个基本列表[]
。在然后,当您在
waveforms
上循环时,只需附加新的z
:完成后,只需将
savez
转换为一个数组(例如,使用savez=np.array(savez)
)并将后者用作np.savetxt
的输入。在这样,您就不必将整个
savez
保存在内存中。在如果您希望始终将
^{pr2}$savez
作为一个数组,那么至少可以考虑去掉这是非常浪费的:你可以只做一个
savez[count][:] = z
相关问题 更多 >
编程相关推荐