gpt4 book ai didi

python - 我的 python 循环数据帧随着时间的推移而减慢

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:13 24 4
gpt4 key购买 nike

我正在循环一个非常大的数据帧(11361 x 22679)并使用 pyplot 将每行的值转换为像素图像。所以最后我应该有 11361 个 151 x 151 像素的图像(我在末尾添加 0 以使其成为正方形)。allDF 是 33 个 DataFrame 的列表,对应于图像需要保存到的 newFileNames 中的 33 个子目录。

我尝试在每次迭代结束时删除每个数据帧和图像。我尝试将浮点值转换为整数。我在每次迭代结束时尝试过 gc.collect() (尽管我知道它是多余的)我已采取措施,通过始终引用原始数据来不存储任何附加值。

唯一有帮助的是我一次处理一帧。它仍然会变慢,但由于迭代次数较少,所以速度没有那么慢。所以,我认为内部循环或其中一个函数是问题所在。

def shape_pixels(imglist):
for i in range(122):
imglist.append(0.0)
imgarr = np.array(imglist).reshape((151,151))
imgarr.reshape((151,151))
return imgarr

def create_rbg_image(subpath,imgarr,imgname):
# create/save image
img = plt.imshow(imgarr, cmap=rgbmap)
plt.axis('off')
plt.savefig(dirpath+subpath+imgname,
transparent=True,
bbox_inches=0,pad_inches=0)

for i in range(len(allDF)):
for j in range(len(allDF[i])):
fname = allDF[i]['File Name'].iloc[j][0:36]
newlist = allDF[i].iloc[j][1:].tolist()
newarr = shape_pixels(allDF[i].iloc[j][1:].tolist())
create_rbg_image(newFileNames[i]+'\\',shape_pixels(allDF[i].iloc[j][1:].tolist()),allDF[i]['File Name'].iloc[j][0:36])

我希望能够运行整个数据集的代码,并在完成后返回它,但我运行了一夜,只完成了不到 1/3。如果它继续慢下来,我将永远无法完成。第一分钟生成超过 150 个图像,第二分钟生成 80 个图像。然后是 48、32、27 等等......最终需要几分钟才能创建一个。

我不

最佳答案

plot.close('all') 帮助很大,但我转而使用 PIL 和十六进制值,这显着提高了效率,我能够在 20 分钟内生成所有 11k+ 图像

关于python - 我的 python 循环数据帧随着时间的推移而减慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56960650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com