将列表写入数组并将其写入文件(Python)

2024-09-30 12:24:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想这很容易,但我不能让它发挥作用。我有一个函数给我一个列表(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个数字。在

谢谢你们抽出时间来帮我。在


Tags: 文件of函数代码in列表forindex
1条回答
网友
1楼 · 发布于 2024-09-30 12:24:20

与其创建一个由零组成的(waveforms.size/len(waveforms),len(waveforms))数组,不如将savez作为一个基本列表[]。在

然后,当您在waveforms上循环时,只需附加新的z

savez.append(z)

完成后,只需将savez转换为一个数组(例如,使用savez=np.array(savez))并将后者用作np.savetxt的输入。在

这样,您就不必将整个savez保存在内存中。在

如果您希望始终将savez作为一个数组,那么至少可以考虑去掉

^{pr2}$

这是非常浪费的:你可以只做一个savez[count][:] = z

相关问题 更多 >

    热门问题