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:
ImportError – If dask is not installed.
TypeError – If inputs are not dask arrays.
ValueError – If x, y, and z have different shapes.
- 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())