pyjanitor-devs/pyjanitor

[ENH] Expose sparse library functions

Open

#636 opened on 2020年2月22日

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

Repository metrics

Stars
 (1,217 stars)
PR merge metrics
 (平均マージ 2d 12h) (30d で 4 merged PRs)

説明

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)

コントリビューターガイド