chaospy.diag

chaospy.diag(y: Union[numpy._typing._array_like._SupportsArray[numpy.dtype], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[Union[bool, int, float, complex, str, bytes]], numpoly.baseclass.ndpoly], k: int = 0) numpoly.baseclass.ndpoly[source]

Extract a diagonal or construct a diagonal array.

Args:
v:

If v is a 2-D array, return a copy of its k-th diagonal. If v is a 1-D array, return a 2-D array with v on the k-th diagonal.

k:

Diagonal in question. Use k > 0 for diagonals above the main diagonal, and k < 0 for diagonals below the main diagonal.

Return:

The extracted diagonal or constructed diagonal array.

Example:
>>> poly = numpoly.monomial(9).reshape(3, 3)
>>> poly
polynomial([[1, q0, q0**2],
            [q0**3, q0**4, q0**5],
            [q0**6, q0**7, q0**8]])
>>> numpoly.diag(poly)
polynomial([1, q0**4, q0**8])
>>> numpoly.diag(poly, k=1)
polynomial([q0, q0**5])
>>> numpoly.diag(poly, k=-1)
polynomial([q0**3, q0**7])