mars.tensor.diagflat#

mars.tensor.diagflat(v, k=0, sparse=None, gpu=None, chunk_size=None)[source]#

Create a two-dimensional tensor with the flattened input as a diagonal.

Parameters
  • v (array_like) – Input data, which is flattened and set as the k-th diagonal of the output.

  • k (int, optional) – Diagonal to set; 0, the default, corresponds to the “main” diagonal, a positive (negative) k giving the number of the diagonal above (below) the main.

  • sparse (bool, optional) – Create sparse tensor if True, False as default

  • gpu (bool, optional) – Allocate the tensor on GPU if True, False as default

  • chunk_size (int or tuple of int or tuple of ints, optional) – Desired chunk size on each dimension

Returns

out – The 2-D output tensor.

Return type

Tensor

See also

diag

MATLAB work-alike for 1-D and 2-D tensors.

diagonal

Return specified diagonals.

trace

Sum along diagonals.

Examples

>>> import mars.tensor as mt
>>> mt.diagflat([[1,2], [3,4]]).execute()
array([[1, 0, 0, 0],
       [0, 2, 0, 0],
       [0, 0, 3, 0],
       [0, 0, 0, 4]])
>>> mt.diagflat([1,2], 1).execute()
array([[0, 1, 0],
       [0, 0, 2],
       [0, 0, 0]])