Rya*_*ick 5 python lazy-evaluation dataframe pandas dask
.compute()拥有额外的numpy和模仿的功能背后的逻辑是什么pandas?它只是为了支持某种惰性评估吗?
以下Dask 文档中的示例:
import pandas as pd import dask.dataframe as dd
df = pd.read_csv('2015-01-01.csv') df = dd.read_csv('2015-*-*.csv')
df.groupby(df.user_id).value.mean() df.groupby(df.user_id).value.mean().compute()
Run Code Online (Sandbox Code Playgroud)
是的,你的直觉在这里是正确的。大多数 Dask 集合(数组、包、数据帧、延迟)默认都是惰性的。正常操作是惰性的,而调用计算实际上会触发执行。
这很重要,这样我们就可以进行一些轻微的优化,也可以支持低内存执行。例如,如果您要致电
x = da.ones(1000000000000)
total = x.sum()
Run Code Online (Sandbox Code Playgroud)
如果我们立即运行,那么有时我们会认为您想要计算完整的数组,如果您在一台机器上,这将是不幸的。但如果我们知道你只想要total.compute()那么我们就可以在更小的内存中计算这个东西。
| 归档时间: |
|
| 查看次数: |
3244 次 |
| 最近记录: |