[英]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.