Singular Value Decomposition means when arr is a 2D array, it is factorized as u and vh, where u and vh are 2D unitary arrays and s is a 1D array of a’s singular values. numpy.linalg.svd() function is used to compute the factor of an array by Singular Value Decomposition.
Syntax : numpy.linalg.svd(a, full_matrices=True, compute_uv=True, hermitian=False)
Parameters :
- a (…, M, N) array : A real or complex array with a.ndim >= 2.
- full_matrices(bool, optional) : If True (default), u and vh have the shapes (…, M, M) and (…, N, N), respectively. Otherwise, the shapes are (…, M, K) and (…, K, N), respectively, where K = min(M, N).
- compute_uv(bool, optional) : Whether or not to compute u and vh in addition to s. Its default value is True.
- hermitian(bool, optional) : If True, a is assumed to be Hermitian (symmetric if real-valued), enabling a more efficient method for finding singular values. Its default value is False.
Below are some examples on how to use the function :
Example 1 :
Python3
# Import numpy library import numpy as np # Create a numpy array arr = np.array([[ 0 , 0 , 0 , 0 , 1 ], [ 2 , 0 , 0 , 1 , 3 ], [ 4 , 0 , 2 , 0 , 0 ], [ 3 , 2 , 0 , 0 , 1 ]], dtype = np.float32) print ( "Original array:" ) print (arr) # Compute the factor by Singular Value # Decomposition U, s, V = np.linalg.svd(arr, full_matrices = False ) # Print the result print ( "\nFactor of the given array by Singular Value Decomposition:" ) print ( "\nU=" , U, "\n\ns=" , s, "\n\nV=" , V) |
Output :
Example 2 :
Python3
# Import numpy library import numpy as np # Create a numpy array arr = np.array([[ 8 , 4 , 0 ], [ 2 , 5 , 1 ], [ 4 , 0 , 9 ]], dtype = np.float32) print ( "Original array:" ) print (arr) # Compute the factor U, s, V = np.linalg.svd(arr, full_matrices = False ) # Print the result print ( "\nFactor of the given array by Singular Value Decomposition:" ) print ( "\nU=" , U, "\n\ns=" , s, "\n\nV=" , V) |
Output :
Example 3 :
Python3
# Import numpy library import numpy as np # Create a numpy array arr = np.array([[ 8 , 1 ], [ 0 , 5 ]], dtype = np.float32) print ( "Original array:" ) print (arr) # Compute the factor U, s, V = np.linalg.svd(arr, full_matrices = False ) # Print the result print ( "\nFactor of the given array by Singular Value Decomposition:" ) print ( "\nU=" , U, "\n\ns=" , s, "\n\nV=" , V) |
Output :
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.