Return the Frobenius Norm of the matrix in Linear Algebra in Python

The Frobenius norm is a matrix norm that calculates the square root of the sum of squares of all elements in a matrix. In Python, use numpy.linalg.norm() with ord='fro' parameter to compute the Frobenius norm.

Syntax

numpy.linalg.norm(x, ord='fro')

Parameters:

  • x − Input matrix (2-D array)
  • ord − Order of the norm. Use 'fro' for Frobenius norm

How Frobenius Norm Works

The Frobenius norm is calculated as:

||A|| F = ? ? ? |a ij i j

Basic Example

Calculate the Frobenius norm of a 3×3 matrix ?

import numpy as np
from numpy import linalg as LA

# Create a 3x3 matrix
matrix = np.array([[-4, -3, -2], 
                   [-1,  0,  1], 
                   [ 2,  3,  4]])

print("Matrix:")
print(matrix)

# Calculate Frobenius norm
frobenius_norm = LA.norm(matrix, 'fro')
print(f"\nFrobenius norm: {frobenius_norm}")
Matrix:
[[-4 -3 -2]
 [-1  0  1]
 [ 2  3  4]]

Frobenius norm: 7.745966692414834

Manual Calculation Verification

Verify the result by manually calculating the Frobenius norm ?

import numpy as np
from numpy import linalg as LA

matrix = np.array([[-4, -3, -2], 
                   [-1,  0,  1], 
                   [ 2,  3,  4]])

# Manual calculation: sum of squares of all elements
manual_calc = np.sqrt(np.sum(matrix**2))
print(f"Manual calculation: {manual_calc}")

# Using numpy.linalg.norm
numpy_result = LA.norm(matrix, 'fro')
print(f"NumPy result: {numpy_result}")

# Show individual squared elements
print(f"\nSquared elements: {matrix**2}")
print(f"Sum of squares: {np.sum(matrix**2)}")
Manual calculation: 7.745966692414834
NumPy result: 7.745966692414834

Squared elements:
[[16  9  4]
 [ 1  0  1]
 [ 4  9 16]]
Sum of squares: 60

Comparing Different Matrix Norms

Compare Frobenius norm with other common matrix norms ?

import numpy as np
from numpy import linalg as LA

matrix = np.array([[1, 2], 
                   [3, 4]])

print("Matrix:")
print(matrix)
print()

# Different norm types
norms = {
    'Frobenius': LA.norm(matrix, 'fro'),
    '1-norm': LA.norm(matrix, 1),
    '2-norm': LA.norm(matrix, 2),
    'Infinity norm': LA.norm(matrix, np.inf)
}

for norm_type, value in norms.items():
    print(f"{norm_type}: {value:.6f}")
Matrix:
[[1 2]
 [3 4]]

Frobenius: 5.477226
1-norm: 6.000000
2-norm: 5.464986
Infinity norm: 7.000000

Practical Applications

The Frobenius norm is commonly used in machine learning for measuring matrix differences ?

import numpy as np
from numpy import linalg as LA

# Original matrix
A = np.array([[1, 2, 3], 
              [4, 5, 6], 
              [7, 8, 9]])

# Approximation matrix
B = np.array([[1, 2, 3], 
              [4, 5, 6], 
              [7, 8, 8]])  # Last element changed

# Calculate the error using Frobenius norm
error_matrix = A - B
frobenius_error = LA.norm(error_matrix, 'fro')

print("Original matrix A:")
print(A)
print("\nApproximation matrix B:")
print(B)
print(f"\nFrobenius norm of error (A-B): {frobenius_error}")
Original matrix A:
[[1 2 3]
 [4 5 6]
 [7 8 9]]

Approximation matrix B:
[[1 2 3]
 [4 5 6]
 [7 8 8]]

Frobenius norm of error (A-B): 1.0

Conclusion

The Frobenius norm provides a scalar measure of matrix magnitude by taking the square root of the sum of squared elements. Use numpy.linalg.norm(matrix, 'fro') to compute it efficiently in Python.

Updated on: 2026-03-26T21:00:01+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements