dask.array的GroupBy操作
项目描述
flox
该项目探讨了使用dask.array进行快速GroupBy归约的策略。它曾被称为dask_groupby
。它是由以下内容激发的:
- Dask Dataframe GroupBy 博客文章
- numpy_groupies in Xarray 问题
(参见关于此包的演示文稿,来自Pangeo展示会)。
致谢
这项工作部分由以下机构资助:
- NASA-ACCESS 80NSSC18M0156 "云中NASA地球观测系统数据分析的社区工具"(负责人 J. Hamman,NCAR),
- NASA-OSTFL 80NSSC22K0345 "利用开源Python Xarray库增强NASA数据分析"(负责人 Scott Henderson,华盛顿大学;Deepak Cherian,NCAR;Jessica Scheick,新罕布什尔大学),以及
- NCAR地球系统数据科学倡议.
API
主要有两个主要功能
flox.groupby_reduce(dask_array, by_dask_array, "mean")
"纯" dask 数组接口flox.xarray.xarray_reduce(xarray_object, by_dataarray, "mean")
"纯" xarray 接口;尽管正在进行将此包集成到 xarray 的工作。
实现
有关实现的详细信息,请参阅文档。
自定义缩减
flox
在aggregations.py
中实现了numpy_groupies
提供的所有常见缩减。它还允许您指定自定义聚合(再次受到 dask.dataframe 的启发),尽管这目前可能并不完全功能齐全。请参阅aggregations.py
以获取示例。
mean = Aggregation(
# name used for dask tasks
name="mean",
# operation to use for pure-numpy inputs
numpy="mean",
# blockwise reduction
chunk=("sum", "count"),
# combine intermediate results: sum the sums, sum the counts
combine=("sum", "sum"),
# generate final result as sum / count
finalize=lambda sum_, count: sum_ / count,
# Used when "reindexing" at combine-time
fill_value=0,
# Used when any member of `expected_groups` is not found
final_fill_value=np.nan,
)
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
flox-0.9.13.tar.gz (704.7 kB 查看哈希值)
构建分布
flox-0.9.13-py3-none-any.whl (70.0 kB 查看哈希值)