
- SciPy - Home
- SciPy - Introduction
- SciPy - Environment Setup
- SciPy - Basic Functionality
- SciPy - Relationship with NumPy
- SciPy Clusters
- SciPy - Clusters
- SciPy - Hierarchical Clustering
- SciPy - K-means Clustering
- SciPy - Distance Metrics
- SciPy Constants
- SciPy - Constants
- SciPy - Mathematical Constants
- SciPy - Physical Constants
- SciPy - Unit Conversion
- SciPy - Astronomical Constants
- SciPy - Fourier Transforms
- SciPy - FFTpack
- SciPy - Discrete Fourier Transform (DFT)
- SciPy - Fast Fourier Transform (FFT)
- SciPy Integration Equations
- SciPy - Integrate Module
- SciPy - Single Integration
- SciPy - Double Integration
- SciPy - Triple Integration
- SciPy - Multiple Integration
- SciPy Differential Equations
- SciPy - Differential Equations
- SciPy - Integration of Stochastic Differential Equations
- SciPy - Integration of Ordinary Differential Equations
- SciPy - Discontinuous Functions
- SciPy - Oscillatory Functions
- SciPy - Partial Differential Equations
- SciPy Interpolation
- SciPy - Interpolate
- SciPy - Linear 1-D Interpolation
- SciPy - Polynomial 1-D Interpolation
- SciPy - Spline 1-D Interpolation
- SciPy - Grid Data Multi-Dimensional Interpolation
- SciPy - RBF Multi-Dimensional Interpolation
- SciPy - Polynomial & Spline Interpolation
- SciPy Curve Fitting
- SciPy - Curve Fitting
- SciPy - Linear Curve Fitting
- SciPy - Non-Linear Curve Fitting
- SciPy - Input & Output
- SciPy - Input & Output
- SciPy - Reading & Writing Files
- SciPy - Working with Different File Formats
- SciPy - Efficient Data Storage with HDF5
- SciPy - Data Serialization
- SciPy Linear Algebra
- SciPy - Linalg
- SciPy - Matrix Creation & Basic Operations
- SciPy - Matrix LU Decomposition
- SciPy - Matrix QU Decomposition
- SciPy - Singular Value Decomposition
- SciPy - Cholesky Decomposition
- SciPy - Solving Linear Systems
- SciPy - Eigenvalues & Eigenvectors
- SciPy Image Processing
- SciPy - Ndimage
- SciPy - Reading & Writing Images
- SciPy - Image Transformation
- SciPy - Filtering & Edge Detection
- SciPy - Top Hat Filters
- SciPy - Morphological Filters
- SciPy - Low Pass Filters
- SciPy - High Pass Filters
- SciPy - Bilateral Filter
- SciPy - Median Filter
- SciPy - Non - Linear Filters in Image Processing
- SciPy - High Boost Filter
- SciPy - Laplacian Filter
- SciPy - Morphological Operations
- SciPy - Image Segmentation
- SciPy - Thresholding in Image Segmentation
- SciPy - Region-Based Segmentation
- SciPy - Connected Component Labeling
- SciPy Optimize
- SciPy - Optimize
- SciPy - Special Matrices & Functions
- SciPy - Unconstrained Optimization
- SciPy - Constrained Optimization
- SciPy - Matrix Norms
- SciPy - Sparse Matrix
- SciPy - Frobenius Norm
- SciPy - Spectral Norm
- SciPy Condition Numbers
- SciPy - Condition Numbers
- SciPy - Linear Least Squares
- SciPy - Non-Linear Least Squares
- SciPy - Finding Roots of Scalar Functions
- SciPy - Finding Roots of Multivariate Functions
- SciPy - Signal Processing
- SciPy - Signal Filtering & Smoothing
- SciPy - Short-Time Fourier Transform
- SciPy - Wavelet Transform
- SciPy - Continuous Wavelet Transform
- SciPy - Discrete Wavelet Transform
- SciPy - Wavelet Packet Transform
- SciPy - Multi-Resolution Analysis
- SciPy - Stationary Wavelet Transform
- SciPy - Statistical Functions
- SciPy - Stats
- SciPy - Descriptive Statistics
- SciPy - Continuous Probability Distributions
- SciPy - Discrete Probability Distributions
- SciPy - Statistical Tests & Inference
- SciPy - Generating Random Samples
- SciPy - Kaplan-Meier Estimator Survival Analysis
- SciPy - Cox Proportional Hazards Model Survival Analysis
- SciPy Spatial Data
- SciPy - Spatial
- SciPy - Special Functions
- SciPy - Special Package
- SciPy Advanced Topics
- SciPy - CSGraph
- SciPy - ODR
- SciPy Useful Resources
- SciPy - Reference
- SciPy - Quick Guide
- SciPy - Cheatsheet
- SciPy - Useful Resources
- SciPy - Discussion
scipy.linalg.inv() Function
The function linalg.inv() is part of SciPy.Linalg Package. This function takes an input matrix and returns its inverse. SciPy, short for Scientist Python, utilizes NumPy arrays for fundamental operations. The Linear Algebra module is used for performing various operations on matrices of variable sizes. This module includes all the features of the Linear Algebra module in NumPy, along with some additional functionalities.
Syntax
The syntax of the SciPy.linalg.inv() function is as follows −
scipy.linalg.inv(a, overwrite_a=False, check_finite=True)
Parameters
The following is a list of parameters accepted by the above function −
a − This parameter accepts an array as input, representing a square matrix that needs to be inverted.
overwrite_a() − This parameter accepts a Boolean data type that discards data in the input matrix to improve performance. The default value is False.
check_finite() − This parameter accepts a Boolean data type that checks whether the input matrix contains only finite numbers. Disabling this parameter improves performance, but if the input matrix contains infinities or NaNs, it may lead to problems such as crashes or non-termination. The default value is True.
Return Value
The linalg.inv() function takes the above parameters and returns the inverse matrix of the input matrix(a).
Example:1
In the following example code, we use the linalg module, which is imported from the SciPy package. The input is a square matrix declared using arrays in the NumPy module. When the matrix is passed as parameter to linalg.inv(), it returns the inverse matrix of the given number.
from scipy import linalg import numpy as np a = np.array([[1., 2.], [3., 4.]]) result = linalg.inv(a) print(result)
The result is obtained as follows −
array([[-2. , 1. ], [ 1.5, -0.5]])
Example:2
In the example code below, we set the check_finite parameter to False, which can result in unexpected output, crashes, non-termination. The code imports SciPy and NumPy, creates a matrix with a NaN, and attempts to invert it without checking for finite numbers.
from scipy import linalg import numpy as np a = np.array([[1., 2.], [3., np.nan]]) result = linalg.inv(a, check_finite=False) print(result)
We will get the output as follows −
array([[nan, nan], [nan, nan]])
Example:3
In the following example code, we include all the parameters for the linalg.inv() function. The code imports SciPy and NumPy, creates a 2*2 matrix, and inverts it while preserving the original matrix and checking for finite values.
from scipy import linalg import numpy as np a = np.array([[1., 2.], [3., 4.]]) result = linalg.inv(a, overwrite_a=False, check_finite=True) print(result)
The result is obtained as follows −
array([[-2. , 1. ], [ 1.5, -0.5]])