diagonalize
- sparse.diagonalize(a, axis=0)[source]
Diagonalize a COO array. The new dimension is appended at the end.
Warning
diagonalize
is notnumpy
compatible as there is no directnumpy
equivalent. The API may change in the future.- Parameters:
a (Union[COO, np.ndarray, scipy.sparse.spmatrix]) – The array to diagonalize.
axis (int, optional) – The axis to diagonalize. Defaults to first axis (0).
Examples
>>> import sparse >>> x = sparse.as_coo(np.arange(1, 4)) >>> sparse.diagonalize(x).todense() array([[1, 0, 0], [0, 2, 0], [0, 0, 3]])
>>> x = sparse.as_coo(np.arange(24).reshape((2, 3, 4))) >>> x_diag = sparse.diagonalize(x, axis=1) >>> x_diag.shape (2, 3, 4, 3)
diagonalize
is the inverse ofdiagonal
>>> a = sparse.random((3, 3, 3, 3, 3), density=0.3) >>> a_diag = sparse.diagonalize(a, axis=2) >>> (sparse.diagonal(a_diag, axis1=2, axis2=5) == a.transpose([0, 1, 3, 4, 2])).all() True
- Returns:
out – The result of the operation.
- Return type:
See also
numpy.diag
NumPy equivalent for 1D array