holoviz / holoviz/datashader

Implement 1D aggregations

Open
#799 4 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
3.6k
Forks
376
Avg merge
4h 32m
Merged PRs (30d)
1

Description

Datashader has traditionally focused on 2D aggregation and we've given some thought if we could maybe support 3D aggregations, but one low hanging fruit we haven't much considered is 1D aggregations. There are of course existing implementations for 1D aggregation in the form of np.histogram and pandas pd.cut+groupby aggregations, so in the past there wasn't a very compelling reason to implement this.

However now that we are moving towards GPU support I think it would be quite compelling if we have a fast 1D binning operation in datashader that works well for pandas, dask and cudf dataframes. This would be particularly useful in HoloViews for performing cross-filtering on both 1D and 2D aggregates. Currently the histogram operation in holoviews has to separately handle numpy and dask arrays. The current issue I'm facing is that cudf does not yet implement a histogram operation and handling all three cases in holoviews would start getting pretty messy.

If we want to implement this in a form that conforms to the datashader API we'd implement a 1DCanvas (placeholder name) but could reuse the Axis class and Reduction classes. A first iteration of this could simply provide an API that wraps the 2D implementation under the hood.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.