微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

plotnine geom_density 内存和性能问题

如何解决plotnine geom_density 内存和性能问题

在尝试使用 python 的 plotnine 实现密度图时,我遇到了内存和性能问题。

考虑以下包含 3 个变量和 50,000 个观测值的数据集。这不是一个大型数据集。下面的代码运行了 15 分钟。相比之下,它在 R 中运行时间为 0.22 秒。

使用 n = 100000,我在 plotnine 中得到以下错误

MemoryError: Unable to allocate 74.5 GiB for an array with shape (100000,100000) and data type float64

同样,R 能够在大约 0.2 秒内执行此操作。

我是否错误地指定了 plotnine 代码,或者这是一个将被修复的已知问题?

情节代码

import numpy as np
import pandas as pd
from plotnine import *

n = 100000

df = pd.DataFrame({
    'age': np.random.choice(range(20,66),n),'gender': np.random.choice(range(1,3),'variable': np.random.lognormal(0,0.5,})

p = (ggplot(df,aes('variable'))
  + theme_light(7)
  + geom_density(alpha=0.5,size=0.35)
)
p

R 代码

library(ggplot2)

n = 100000

df = data.frame(
        age = sample(seq(20:66),n,replace=TRUE),gender = sample(1:2,variable = rlnorm(n,meanlog=0,sdlog=0.5)
)

p = ggplot(df,aes(variable)) + 
      theme_light(7) +
      geom_density(alpha=0.5,size=0.35)
p

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。