# Create a two-dimensional array with the flattened input as lower diagonal in Numpy

NumpyServer Side ProgrammingProgramming

To create a two-dimensional array with the flattened input as a diagonal, use the numpy.diagflat() method in Python Numpy. The 'K parameter is used to set the diagonal; 0, the default, corresponds to the “main” diagonal, a negative k giving the number of the diagonal below the main.

The first parameter is the input data, which is flattened and set as the k-th diagonal of the output. The second parameter is the 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.

NumPy offers comprehensive mathematical functions, random number generators, linear algebra routines, Fourier transforms, and more. It supports a wide range of hardware and computing platforms, and plays well with distributed, GPU, and sparse array libraries.

## Steps

At first, import the required library −

import numpy as np

Create a 2D array using the numpy.array() method −

arr = np.array([[5, 10], [15, 20]])

Displaying our array −

print("Array...\n",arr)

Get the datatype −

print("\nArray datatype...\n",arr.dtype)


Get the dimensions of the Array −

print("\nArray Dimensions...\n",arr.ndim)

Get the shape of the Array −

print("\nOur Array Shape...\n",arr.shape)

Get the number of elements of the Array −

print("\nElements in the Array...\n",arr.size)

Now, create a two-dimensional array with the flattened input as a diagonal using the numpy.diagflat() method. The 'K parameter is used to set the diagonal; 0, the default, corresponds to the “main” diagonal, a negative k giving the number of the diagonal below the main −

print("\nResult...\n",np.diagflat(arr, k = -1))


## Example

import numpy as np

# Create a 2D array using the numpy.array() method
arr = np.array([[5, 10], [15, 20]])

# Displaying our array
print("Array...\n",arr)

# Get the datatype
print("\nArray datatype...\n",arr.dtype)

# Get the dimensions of the Array
print("\nArray Dimensions...\n",arr.ndim)

# Get the shape of the Array
print("\nOur Array Shape...\n",arr.shape)

# Get the number of elements of the Array
print("\nElements in the Array...\n",arr.size)

# To create a two-dimensional array with the flattened input as a diagonal, use the numpy.diagflat() method in Python Numpy
print("\nResult...\n",np.diagflat(arr, k = -1))

## Output

Array...
[[ 5 10]
[15 20]]

Array datatype...
int64

Array Dimensions...
2

Our Array Shape...
(2, 2)

Elements in the Array...
4

Result...
[[ 0 0 0 0 0]
[ 5 0 0 0 0]
[ 0 10 0 0 0]
[ 0 0 15 0 0]
[ 0 0 0 20 0]]