Source code for lacuna.array_api.creation.__init__

from .. import _namespace as _ns


[docs] def asarray(obj, /, *, dtype=None, device=None, copy=None): return getattr(_ns, "asarray")(obj, dtype=dtype, device=device, copy=copy)
[docs] def zeros(shape, *, dtype=None, device=None): """Create a sparse zero matrix (Array API compliant). Parameters ---------- shape : tuple of int Matrix shape (nrows, ncols). dtype : dtype, optional Data type (default: float64). device : str, optional Device (default: "cpu"). Returns ------- CSR Sparse zero matrix using Rust backend. Examples -------- >>> import lacuna.array_api as xp >>> A = xp.zeros((10, 20)) >>> A.nnz 0 """ import numpy as np from ...sparse import CSR if dtype is None: dtype = np.float64 if device is not None and device != "cpu": raise ValueError("Only 'cpu' device is currently supported") return CSR.zeros(shape, dtype=dtype)
[docs] def ones(shape, *, dtype=None, device=None): return getattr(_ns, "ones")(shape, dtype=dtype, device=device)
[docs] def full(shape, fill_value, *, dtype=None, device=None): return getattr(_ns, "full")(shape, fill_value, dtype=dtype, device=device)
[docs] def empty(shape, *, dtype=None, device=None): return getattr(_ns, "empty")(shape, dtype=dtype, device=device)
[docs] def zeros_like(x, *, dtype=None, device=None): return getattr(_ns, "zeros_like")(x, dtype=dtype, device=device)
[docs] def ones_like(x, *, dtype=None, device=None): return getattr(_ns, "ones_like")(x, dtype=dtype, device=device)
[docs] def full_like(x, fill_value, *, dtype=None, device=None): return getattr(_ns, "full_like")(x, fill_value, dtype=dtype, device=device)
[docs] def empty_like(x, *, dtype=None, device=None): return getattr(_ns, "empty_like")(x, dtype=dtype, device=device)
[docs] def arange(start, stop=None, step=1, *, dtype=None, device=None): return getattr(_ns, "arange")(start, stop, step, dtype=dtype, device=device)
[docs] def linspace(start, stop, num, *, dtype=None, device=None): return getattr(_ns, "linspace")(start, stop, num, dtype=dtype, device=device)
[docs] def meshgrid(*arrays, indexing="xy"): return getattr(_ns, "meshgrid")(*arrays, indexing=indexing)
[docs] def eye(n_rows, n_cols=None, k=0, *, dtype=None, device=None): """Create an identity matrix (Array API compliant). Parameters ---------- n_rows : int Number of rows (for square matrix, this is the size). n_cols : int, optional Number of columns (if None, creates square matrix). k : int, optional Diagonal offset (default: 0 for main diagonal). dtype : dtype, optional Data type (default: float64). device : str, optional Device (default: "cpu"). Returns ------- CSR Identity matrix using Rust backend. Notes ----- Currently only supports k=0 (main diagonal) and square matrices. Examples -------- >>> import lacuna.array_api as xp >>> I = xp.eye(5) >>> I.sum() 5.0 """ import numpy as np from ...sparse import CSR if dtype is None: dtype = np.float64 if device is not None and device != "cpu": raise ValueError("Only 'cpu' device is currently supported") if n_cols is not None and n_cols != n_rows: raise NotImplementedError("Non-square identity matrices not yet supported") if k != 0: raise NotImplementedError("Off-diagonal identity (k != 0) not yet supported") return CSR.eye(n_rows, dtype=dtype)
[docs] def tril(x, k=0): return getattr(_ns, "tril")(x, k)
[docs] def triu(x, k=0): return getattr(_ns, "triu")(x, k)
[docs] def from_dlpack(dlpack_obj): return getattr(_ns, "from_dlpack")(dlpack_obj)