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 :
# 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 :
# 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 :
# 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 :