{ } Raw JSON

bundles / scipy 1.18.0 / scipy / _external / array_api_extra / _delegation / create_diagonal

function

scipy._external.array_api_extra._delegation:create_diagonal

source: /scipy/_external/array_api_extra/_delegation.py:179

Signature

def create_diagonal(x: Array, /, offset: int = 0, xp: ModuleType | None = None) → Array

Summary

Construct a diagonal array.

Parameters

x : array

An array having shape (*batch_dims, k).

offset : int, optional

Offset from the leading diagonal (default is 0). Use positive ints for diagonals above the leading diagonal, and negative ints for diagonals below the leading diagonal.

xp : array_namespace, optional

The standard-compatible namespace for x. Default: infer.

Returns

: array

An array having shape (*batch_dims, k+abs(offset), k+abs(offset)) with x on the diagonal (offset by offset).

Examples

import array_api_strict as xp
import array_api_extra as xpx
x = xp.asarray([2, 4, 8])
⚠
Traceback (most recent call last):
  File "<doctest scipy._external.array_api_extra._delegation:create_diagonal[0]>", line 1, in <module>
    x = xp.asarray([2, 4, 8])
        ^^
NameError: name 'xp' is not defined. Did you mean: 'np'?
xpx.create_diagonal(x, xp=xp)
⚠
Traceback (most recent call last):
  File "<doctest scipy._external.array_api_extra._delegation:create_diagonal[0]>", line 1, in <module>
    xpx.create_diagonal(x, xp=xp)
    ^^^
NameError: name 'xpx' is not defined
xpx.create_diagonal(x, offset=-2, xp=xp)
⚠
Traceback (most recent call last):
  File "<doctest scipy._external.array_api_extra._delegation:create_diagonal[0]>", line 1, in <module>
    xpx.create_diagonal(x, offset=-2, xp=xp)
    ^^^
NameError: name 'xpx' is not defined

Aliases

  • scipy.differentiate.xpx.create_diagonal