pyinterp.dask.binning2d

Contents

pyinterp.dask.binning2d#

pyinterp.dask.binning2d(x, y, z, binning, simple=True)[source]#

Accumulate values into 2D bins from dask arrays.

This function processes dask arrays in parallel, binning values according to the x and y coordinates and accumulating statistics in each bin.

Parameters:
  • x (dask.array.Array) – Dask array of x coordinates.

  • y (dask.array.Array) – Dask array of y coordinates.

  • z (dask.array.Array) – Dask array of values to bin.

  • binning (core.Binning2DHolder) – A Binning2D instance defining the bins. A copy is made internally, so the original is not modified.

  • simple (bool) – If True, use simple binning (nearest neighbor). If False, use linear interpolation to distribute values among neighboring bins. Default is True.

Returns:

A new Binning2D instance with accumulated statistics.

Raises:
Return type:

core.Binning2DHolder

Example

>>> import dask.array as da
>>> import numpy as np
>>> import pyinterp
>>> import pyinterp.dask as dask_stats

Create bins and data

>>> x_axis = pyinterp.Axis(np.linspace(0, 10, 11))
>>> y_axis = pyinterp.Axis(np.linspace(0, 10, 11))
>>> binning = pyinterp.Binning2D(x_axis, y_axis)

Create dask arrays

>>> x = da.random.uniform(0, 10, size=(10000,), chunks=1000)
>>> y = da.random.uniform(0, 10, size=(10000,), chunks=1000)
>>> z = da.random.random((10000,), chunks=1000)

Compute binned statistics

>>> result = dask_stats.binning2d(x, y, z, binning)
>>> print(result.mean())