pyjanitor-devs/pyjanitor

[ENH] Expose sparse library functions

Open

#636 aberto em 22 de fev. de 2020

Ver no GitHub
 (0 comments) (2 reactions) (0 assignees)Python (164 forks)batch import
available for hackingenhancementgood first issuegood intermediate issue

Métricas do repositório

Stars
 (1.217 stars)
Métricas de merge de PR
 (Mesclagem média 2d 12h) (4 fundiu PRs em 30d)

Description

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)

Guia do colaborador