繁体   English   中英

Python - function RAM memory 效率

[英]Python - function RAM memory efficiency

我有这个 function:

def preprocess(data_input):
    data = data_input.copy()
    
    data = # some code
    data = # some code
    data = # some code
    
    return(data)

我有一个 dataframe df作为这个 function 在大量 jupyter 笔记本单元之后的输入,例如:

preprocess(df)

使用当前的 function,我使用df = preprocess(df)将本地df (函数内部)的更改分配给全局df (函数外部)。 我这样做是为了避免每次在 function 中发现错误时运行整个笔记本。 因此,当我知道 function 运行正常(在无限验证和错误更正之后)时,我只需将preprocess(df)更改为df = preprocess(df)

这个答案说最好的情况是使用.copy()方法(答案有点旧,从 2015 年开始)。 但是,我想知道 memory 的效率。 如果我有一个 4GB 的数据框,那么只有一份副本会让我使用 8GB RAM(原件 + 副本)。 那么,有没有办法用更有效的替代方法替换.copy()方法?

另外,如果您在调试function时有更好的避免运行整个笔记本的建议,我将不胜感激!

编辑

我忘了提到如果我不使用.copy()方法,我总是会收到SettingWithCopyWarning

如果我理解正确,您可以将 function 放在另一个模块中,这样您就可以对其进行测试,而无需运行整个代码来阅读 function 定义。

将 function 放在一个模块中可以让您创建一个小数据集来设计一个测试用例,让您测试最常见的用例,您甚至可以创建一个全新的脚本来测试您的 function。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM