pyjanitor-devs/pyjanitor

[ENH] Expose sparse library functions

Open

#636 aperta il 22 feb 2020

Vedi su GitHub
 (0 commenti) (2 reazioni) (0 assegnatari)Python (164 fork)batch import
available for hackingenhancementgood first issuegood intermediate issue

Metriche repository

Star
 (1217 star)
Metriche merge PR
 (Merge medio 2g 12h) (4 PR mergiate in 30 g)

Descrizione

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)

Guida contributor