有什么方法可以加速海运配对

时间:2016-06-03 10:50:45

标签: python performance parallel-processing seaborn

我有一个250.000行但140列的数据帧,我正在尝试构建一对图。变量。 我知道子图的数量很大,以及绘制图表所需的时间。 (我正在等待一个多小时的i5上有3,4 GHZ和32 GB RAM)。

记住scikit学习允许并行构建随机森林,我正在检查这是否也可能与seaborn。 但是,我没有找到任何东西。源代码似乎为每个图像调用matplotlib绘图函数。

难道不能并行化吗?如果是的话,从这里开始的好方法是什么?

3 个答案:

答案 0 :(得分:3)

如果速度瓶颈确实在那里发生,那么你可以对你的DataFrame进行缩减采样,以便快速查看1000行,而不是并行化。通常,1000点就足以大致了解正在发生的事情。

即。 sns.pairplot(df.sample(1000))

答案 1 :(得分:2)

将对图保存到图像中,然后显示该图像,而不是在浏览器中全部呈现。

from IPython.display import Image
import seaborn as sns
import matplotlib.pyplot as plt 

sns_plot = sns.pairplot(df, size=2.0)
sns_plot.savefig("pairplot.png")

plt.clf() # Clean parirplot figure from sns 
Image(filename='pairplot.png') # Show pairplot as image

答案 2 :(得分:1)

对我来说,由于数据的差异,我遇到过直方图需要很长时间的情况。我只有 1200 行和 4 列,但我花了半个小时才放弃。我认为它是如此分散和无序,以至于直方图不断更新。一种解决方法可能是使用 bin 参数,但我的解决方案是使用 KDE 作为对角线。使用 KDE,只需几秒钟。

sns.pairplot(df, diag_kind='kde')