pyjanitor-devs/pyjanitor

[ENH] Expose sparse library functions

Open

#636 geöffnet am 22. Feb. 2020

Auf GitHub ansehen
 (0 Kommentare) (2 Reaktionen) (0 zugewiesene Personen)Python (164 Forks)batch import
available for hackingenhancementgood first issuegood intermediate issue

Repository-Metriken

Stars
 (1.217 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 2T 12h) (4 gemergte PRs in 30 T)

Beschreibung

XArray supports the Sparse package but doesn't expose the functions to convert to/from sparse objects. These functions could be nicely packaged in pyjanitor to do so:

import sparse

@register_xarray_dataarray_method
def to_scipy_sparse(
    da: xr.DataArray,
) -> xr.DataArray:
    if isinstance(da.data, sparse.COO):
        return xr.apply_ufunc(sparse.COO.to_scipy_sparse, da)
    return da


@register_xarray_dataarray_method
def todense(
    da: xr.DataArray,
) -> xr.DataArray:
    if isinstance(da.data, sparse.COO):
        return xr.apply_ufunc(sparse.COO.todense, da)
    return da


@register_xarray_dataarray_method
def tocsc(
    da: xr.DataArray,
) -> xr.DataArray:
    if isinstance(da.data, sparse.COO):
        return xr.apply_ufunc(sparse.COO.tocsc, da)
    return da


@register_xarray_dataarray_method
def tocsr(
    da: xr.DataArray,
) -> xr.DataArray:
    if isinstance(da.data, sparse.COO):
        return xr.apply_ufunc(sparse.COO.tocsr, da)
    return da


@register_xarray_dataarray_method
def tosparse(
    da: xr.DataArray,
) -> xr.DataArray:
    if isinstance(da.data, sparse.COO):
        return da
    return xr.apply_ufunc(sparse.COO, da)

Contributor Guide