Numpy Tutorial
Creating NumPy Array
NumPy Array Manipulation
Matrix in NumPy
Operations on NumPy Array
Reshaping NumPy Array
Indexing NumPy Array
Arithmetic operations on NumPy Array
Linear Algebra in NumPy Array
NumPy and Random Data
Sorting and Searching in NumPy Array
Universal Functions
Working With Images
Projects and Applications with NumPy
Adding and subtracting matrices is a fundamental operation in linear algebra, and with NumPy in Python, it's a straightforward process.
In this tutorial, we will cover:
Matrix addition and subtraction are element-wise operations, meaning that the elements in the corresponding positions in the matrices are added or subtracted.
For matrices to be added or subtracted, they must be of the same size, i.e., they must have the same number of rows and columns.
Let's dive into some code:
Setup:
First, we'll need to import NumPy:
import numpy as np
Creating Matrices:
Here are two example 2x2 matrices:
A = np.array([[1, 2], [3, 4]]) B = np.array([[2, 0], [0, 2]])
Adding Matrices:
Adding the two matrices A
and B
is as simple as:
C = A + B print(C)
This will output:
[[3 2] [3 6]]
Subtracting Matrices:
Subtracting matrix B
from A
:
D = A - B print(D)
This will output:
[[-1 2] [ 3 2]]
NumPy has a powerful feature called broadcasting that allows you to perform operations on matrices or arrays of different shapes, under specific conditions.
For instance, you can add or subtract a scalar (a single number) from a matrix:
E = A + 1 print(E) F = B - 1 print(F)
Output:
[[2 3] [4 5]] [[ 1 -1] [-1 1]]
You can also add a row vector to all rows of a matrix, or a column vector to all columns:
# Adding a row vector row_vector = np.array([[1, 2]]) G = A + row_vector print(G) # Adding a column vector col_vector = np.array([[1], [2]]) H = A + col_vector print(H)
Remember, broadcasting has rules on which shapes are compatible, so not all shape combinations will work.
Adding and subtracting matrices in NumPy is intuitive and very similar to the mathematical notation. The power of NumPy really shines when performing more complex operations, like matrix multiplication, inversion, and more. For now, practice with these basic operations to build a solid foundation.
Performing matrix addition and subtraction using NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Matrix addition result_addition = matrix_a + matrix_b # Matrix subtraction result_subtraction = matrix_a - matrix_b print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Matrix Addition:\n", result_addition) print("Matrix Subtraction:\n", result_subtraction)
Performing various matrix operations using NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Matrix multiplication result_multiplication = np.dot(matrix_a, matrix_b) # Matrix transpose transposed_matrix_a = np.transpose(matrix_a) print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Matrix Multiplication:\n", result_multiplication) print("Transposed Matrix A:\n", transposed_matrix_a)
Adding and subtracting matrices with NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Matrix addition result_addition = np.add(matrix_a, matrix_b) # Matrix subtraction result_subtraction = np.subtract(matrix_a, matrix_b) print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Matrix Addition:\n", result_addition) print("Matrix Subtraction:\n", result_subtraction)
Performing element-wise matrix operations using NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Element-wise multiplication result_elementwise_multiply = np.multiply(matrix_a, matrix_b) # Element-wise division result_elementwise_divide = np.divide(matrix_a, matrix_b) print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Element-wise Multiplication:\n", result_elementwise_multiply) print("Element-wise Division:\n", result_elementwise_divide)
An example demonstrating matrix addition with NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Matrix addition result_addition = np.add(matrix_a, matrix_b) print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Matrix Addition:\n", result_addition)
Subtracting matrices in Python using NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Matrix subtraction result_subtraction = np.subtract(matrix_a, matrix_b) print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Matrix Subtraction:\n", result_subtraction)
Performing basic matrix arithmetic operations using NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Matrix arithmetic result_arithmetic = matrix_a * matrix_b # Element-wise multiplication print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Matrix Arithmetic (Element-wise Multiplication):\n", result_arithmetic)
Adding and subtracting matrices in Python using NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Matrix addition and subtraction result_addition = np.add(matrix_a, matrix_b) result_subtraction = np.subtract(matrix_a, matrix_b) print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Matrix Addition:\n", result_addition) print("Matrix Subtraction:\n", result_subtraction)
Performing element-wise operations on matrices using NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) # Element-wise operations result_square = np.square(matrix_a) result_sqrt = np.sqrt(matrix_b) print("Matrix A:\n", matrix_a) print("Matrix B:\n", matrix_b) print("Element-wise Square (Matrix A):\n", result_square) print("Element-wise Square Root (Matrix B):\n", result_sqrt)
Performing matrix manipulation operations in Python using NumPy.
import numpy as np # Creating matrices matrix_a = np.array([[1, 2], [3, 4]]) # Matrix manipulation result_transpose = np.transpose(matrix_a) result_inverse = np.linalg.inv(matrix_a) print("Matrix A:\n", matrix_a) print("Transposed Matrix A:\n", result_transpose) print("Inverse of Matrix A:\n", result_inverse)