跳转到主要内容

dask.array的GroupBy操作

项目描述

GitHub Workflow CI Status pre-commit.ci status image Documentation Status

PyPI Conda-forge

NASA-80NSSC18M0156 NASA-80NSSC22K0345

flox

该项目探讨了使用dask.array进行快速GroupBy归约的策略。它曾被称为dask_groupby。它是由以下内容激发的:

  1. Dask Dataframe GroupBy 博客文章
  2. numpy_groupies in Xarray 问题

(参见关于此包的演示文稿,来自Pangeo展示会)。

致谢

这项工作部分由以下机构资助:

  1. NASA-ACCESS 80NSSC18M0156 "云中NASA地球观测系统数据分析的社区工具"(负责人 J. Hamman,NCAR),
  2. NASA-OSTFL 80NSSC22K0345 "利用开源Python Xarray库增强NASA数据分析"(负责人 Scott Henderson,华盛顿大学;Deepak Cherian,NCAR;Jessica Scheick,新罕布什尔大学),以及
  3. NCAR地球系统数据科学倡议.

该项目源于Pangeo社区多次 讨论

API

主要有两个主要功能

  1. flox.groupby_reduce(dask_array, by_dask_array, "mean") "纯" dask 数组接口
  2. flox.xarray.xarray_reduce(xarray_object, by_dataarray, "mean") "纯" xarray 接口;尽管正在进行将此包集成到 xarray 的工作。

实现

有关实现的详细信息,请参阅文档

自定义缩减

floxaggregations.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 查看哈希值)

上传于 Python 3

支持者