bundles / numpy 2.4.4 / numpy / linalg / diagonal
_ArrayFunctionDispatcher
numpy.linalg:diagonal
source: /numpy/linalg/_linalg.py :3065
Signature
def diagonal ( x , / , offset = 0 ) Summary
Returns specified diagonals of a matrix (or a stack of matrices) x.
Extended Summary
This function is Array API compatible, contrary to numpy.diagonal, the matrix is assumed to be defined by the last two dimensions.
Parameters
x: (...,M,N) array_likeInput array having shape (..., M, N) and whose innermost two dimensions form MxN matrices.
offset: int, optionalOffset specifying the off-diagonal relative to the main diagonal, where
* offset = 0: the main diagonal. * offset > 0: off-diagonal above the main diagonal. * offset < 0: off-diagonal below the main diagonal.
Returns
out: (...,min(N,M)) ndarrayAn array containing the diagonals and whose shape is determined by removing the last two dimensions and appending a dimension equal to the size of the resulting diagonals. The returned array must have the same data type as
x.
Examples
a = np.arange(4).reshape(2, 2); a np.linalg.diagonal(a)✓
a = np.arange(8).reshape(2, 2, 2); a
✗np.linalg.diagonal(a)
✓a = np.arange(9).reshape(3, 3) a np.linalg.diagonal(a, offset=1) # First superdiagonal np.linalg.diagonal(a, offset=2) # Second superdiagonal np.linalg.diagonal(a, offset=-1) # First subdiagonal np.linalg.diagonal(a, offset=-2) # Second subdiagonal✓
a = np.arange(9).reshape(3, 3) a np.linalg.diagonal(np.fliplr(a)) # Horizontal flip np.linalg.diagonal(np.flipud(a)) # Vertical flip✓
See also
Aliases
-
numpy.linalg.diagonal