fast_array_utils

Fast array utilities with minimal dependencies.

fast_array_utils.conv

This submodule is always available and contains conversion utilities.

fast_array_utils.stats

This submodule requires numba to be installed and contains statistics utilities.

fast_array_utils.typing and fast_array_utils.types

These submodules contain types for annotations and checks, respectively. Stubs for these types are available even if the respective packages are not installed.

See also the test utilities in testing.fast_array_utils.

usage

fast-array-utils supports the following array types:

  • numpy.ndarray

  • scipy.sparse.cs{rc}_{array,matrix}

  • cupy.ndarray and cupyx.scipy.sparse.cs{rc}_matrix

  • dask.array.Array

  • h5py.Dataset and zarr.Array

  • anndata.abc.CS{CR}Dataset (only supported by .conv.to_dense at the moment)

Use fast_array_utils.conv.to_dense to densify arrays and optionally move them to CPU memory:

from fast_array_utils.conv import to_dense

numpy_arr = to_dense(sparse_arr_or_mat)
numpy_arr = to_dense(dask_or_cuda_arr, to_cpu_memory=True)
dense_dask_arr = to_dense(dask_arr)
dense_cupy_arr = to_dense(sparse_cupy_mat)

Use fast_array_utils.conv.* to calculate statistics across one or both axes of a 2D array. All of them support an axis and dtype parameter:

from fast_array_utils import stats

all_equal = stats.is_constant(arr_2d)
col_sums = stats.sum(arr_2d, axis=0)
mean = stats.mean(arr_2d)
row_means, row_vars = stats.mean_var(arr_2d, axis=1)

installation

To use fast_array_utils.stats or fast_array_utils.conv:

(uv) pip install 'fast-array-utils[accel]'

To use testing.fast_array_utils:

(uv) pip install 'fast-array-utils[testing]'