gpt4 book ai didi

python - Seaborn 线图高 CPU;与 matplotlib 相比非常慢

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

我有以下数据框。

In [12]: dfFinal
Out[12]:
module vectime vecvalue
1906 client1.tcp [1.1007512, 1.1015024, 1.1022536, 1.1030048, 1... [0.0007512, 0.0007512, 0.0007512, 0.0007512, 0...
1912 client2.tcp [1.10079784, 1.10159568, 1.10239352, 1.1031913... [0.00079784, 0.00079784, 0.00079784, 0.0007978...
1918 client3.tcp [1.10084448, 1.10168896, 1.10258008, 1.1036111... [0.00084448, 0.00084448, 0.00089112, 0.0010310...

我想为每个模块绘制 timeSeries vecvaluevectime

结果如下: enter image description here

为此,我可以执行以下操作:

1)Matplotlib

start = datetime.datetime.now()

for row in dfFinal.itertuples():
t = row.vectime
x = row.vecvalue
x = runningAvg(x)
plot(t,x)

total = (datetime.datetime.now() - start).total_seconds()
print("Total time: ",total)

这样做需要 0.07005 秒才能完成。

2)海运

start = datetime.datetime.now()

for row in dfFinal.itertuples():
t = row.vectime
x = row.vecvalue
x = runningAvg(x)
DF = pd.DataFrame({'x':x, 't':t})
sns.lineplot(x='t', y='x', data=DF)

total = (datetime.datetime.now() - start).total_seconds()
print("Total time: ",total)

这样做需要 19.157463 秒才能完成。

为什么会有这么大的差异?我做错了什么,以至于处理一个相当小的 DF 需要这么长时间?

最佳答案

在调用lineplot时设置ci=None;否则,将计算置信区间,导致一些昂贵的(且不必要的)df.groupby 调用。

旁白:snakeviz 模块是快速查找计算瓶颈的绝佳工具。

关于python - Seaborn 线图高 CPU;与 matplotlib 相比非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56170909/

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