Numpy diagonal() Function



The Numpy diagonal() function is used to extract a specified diagonal from a 2D array or matrix. It can also be used to set or modify a diagonal of the array. This function is useful when working with square matrices or when accessing or updating diagonal elements of an array. This function results a ValueError when the 1D array is passes as an argument.

In Numpy, the diagonal() function extracts a diagonal from 2D or higher-dimensional arrays with options for offsets and axes, while diag() creates a diagonal matrix from a 1D array or extracts a diagonal from a 2D array, supporting both extraction and construction of diagonals.

Syntax

Following is the syntax of the Numpy diagonal() function −

numpy.diagonal(a, offset=0, axis1=0, axis2=1)  

Parameters

Following are the parameters of the Numpy diagonal() function −

  • a: The input array (2D array or matrix).
  • offset (optional): The diagonal offset. A positive value shifts the diagonal above the main diagonal, and a negative value shifts it below. The default is 0, which represents the main diagonal.
  • axis1, axis2 (optional): The axes that define the 2D plane in the array from which the diagonal will be extracted. By default, axis1=0 and axis2=1.

Return Type

This function returns a 1D array containing the diagonal elements of the matrix.

Example

Following is a basic example to exact the main diagonal elements of matrix using the Numpy diagonal() function −

import numpy as np  
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])  
result = np.diagonal(matrix)  
print("Main Diagonal:", result)  

Output

Following is the output of the above code −

Main Diagonal: [1 5 9]  

Example: Extracting Diagonal with an Offset

The offset parameter in the diagonal() function allows us to extract diagonals above or below the main diagonal. A positive value shifts the diagonal upwards (above the main diagonal), while a negative value shifts it downwards (below the main diagonal). Here, we have extracted the elements immediately above the main diagonal −

import numpy as np  
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])  
result = np.diagonal(matrix, offset=1)  
print("Diagonal above the main diagonal:", result)  

Output

Following is the output of the above code −

Diagonal above the main diagonal: [2 6]  

Example: Diagonal elements with Different Axes

We can specify different axes to extract the diagonal from non-square matrices. In the following example, we have used axes 0 and 1 to extract a diagonal elements−

import numpy as np  
matrix = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
print("Original Matrix:\n",matrix) 
print("Shape of the Matrix:",matrix.shape)
result = np.diagonal(matrix,axis1=0, axis2=1)  
print("Diagonal with axes (0, 1):\n", result) 

Output

Following is the output of the above code −

Original Matrix:
 [[1 2]
 [3 4]
 [5 6]
 [7 8]]
Shape of the Matrix: (4, 2)
Diagonal with axes (0, 1):
 [1 4]
numpy_array_manipulation.htm
Advertisements
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy