2

Matrix Vector multiplication using NumPy in Python

 1 year ago
source link: https://thispointer.com/matrix-vector-multiplication-using-numpy-in-python/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

In this article, we will learn matrix-vector multiplication using NumPy.

Table Of Contents

What is a matrix in numpy and how to create it?

The numpy stands for numeric python, and it is used to work on the arrays. It is a module that can be imported directly. A matrix is a two-dimensional array that includes a row as one dimension and a column as another dimension.

We can create a matrix by using numpy.array() method.

Syntax:

Advertisements

numpy.array([[elements...], [elements...], .....])
numpy.array([[elements...], [elements...], .....])

Where elements refer to the values stored in the numpy array. Let’s create a matrix with two rows and three columns and display it.

import numpy
# creating the first matrix with 3 rows and 3 columns
first_matrix = numpy.array([[1,2,3],
[2,5,1],
[4,2,1]])
# Display the Matrix
print(first_matrix)
import numpy

# creating the first matrix with 3 rows and 3 columns
first_matrix = numpy.array([[1,2,3],
                            [2,5,1],
                            [4,2,1]])

# Display the Matrix
print(first_matrix)

Output:

[[1 2 3]
[2 5 1]
[4 2 1]]
[[1 2 3]
 [2 5 1]
 [4 2 1]]

There are multiple ways to Perform matrix-vector multiplication. Lets discuss all the methods one by one with proper approach and a working code example

Perform matrix-vector multiplication using numpy with dot()

Numpy supports a dot() method, that returns a dot product. Which is equal to matrix-vector multiplication.

Syntax:

numpy.dot(first_matrix,second_matrix)
numpy.dot(first_matrix,second_matrix)

Parameters

  1. first_matrix is the first input numpy matrix
  2. second_matrix is the second input numpy matrix

Example 1:

In this example, we will create two matrices and apply dot() to perform matrix-vector multiplication.

import numpy
# creating the first matrix with 3 rows and 3 columns
first_matrix = numpy.array([[1,2,3],
[2,5,1],
[4,2,1]])
# creating the second matrix with 3 rows and 4 columns
second_matrix = numpy.array([[1,2,2,1],
[3,1,2,1],
[0,0,1,2]])
# display both the matrices
print(first_matrix)
print('*******')
print(second_matrix)
print('*******')
# Apply dot to perform matrix vector multiplication
print("matrix vector multiplication:")
print( numpy.dot(first_matrix,second_matrix) )
import numpy

# creating the first matrix with 3 rows and 3 columns
first_matrix = numpy.array([[1,2,3],
                            [2,5,1],
                            [4,2,1]])

# creating the second matrix with 3 rows and 4 columns
second_matrix = numpy.array([[1,2,2,1],
                             [3,1,2,1],
                             [0,0,1,2]])

# display both the matrices
print(first_matrix)

print('*******')

print(second_matrix)

print('*******')

# Apply dot to perform  matrix vector multiplication
print("matrix vector multiplication:")

print( numpy.dot(first_matrix,second_matrix) )

Output:

[[1 2 3]
[2 5 1]
[4 2 1]]
*******
[[1 2 2 1]
[3 1 2 1]
[0 0 1 2]]
*******
matrix vector multiplication:
[[ 7 4 9 9]
[17 9 15 9]
[10 10 13 8]]
[[1 2 3]
 [2 5 1]
 [4 2 1]]
*******
[[1 2 2 1]
 [3 1 2 1]
 [0 0 1 2]]
*******
matrix vector multiplication:
[[ 7  4  9  9]
 [17  9 15  9]
 [10 10 13  8]]

In the above source code, we created the first matrix with three rows and three columns. Then we created the second matrix with three rows and four columns. Finally, we applied the dot() method on these two matrices to perform matrix-vector multiplication.

Example 2:

In this example, we will create two matrices and apply dot() to perform matrix-vector multiplication.

import numpy
# creating the first matrix with 5 rows and 3 columns
first_matrix = numpy.array([[1, 2, 3],
[2, 5, 1],
[4, 2, 1],
[2, 5, 1],
[4, 2, 1]])
# creating the second matrix with 3 rows and 2 columns
second_matrix = numpy.array([[1, 2],
[3, 1],
[0, 0]])
# display both the matrices
print(first_matrix)
print('*******')
print(second_matrix)
print('*******')
# Apply dot to perform matrix vector multiplication
print("matrix vector multiplication:")
print( numpy.dot(first_matrix,second_matrix) )
import numpy

# creating the first matrix with 5 rows and 3 columns
first_matrix = numpy.array([[1, 2, 3],
                            [2, 5, 1],
                            [4, 2, 1],
                            [2, 5, 1],
                            [4, 2, 1]])

# creating the second matrix with 3 rows and 2 columns
second_matrix = numpy.array([[1, 2],
                             [3, 1],
                             [0, 0]])

# display both the matrices
print(first_matrix)

print('*******')

print(second_matrix)

print('*******')

# Apply dot to perform  matrix vector multiplication
print("matrix vector multiplication:")

print( numpy.dot(first_matrix,second_matrix) )

Output:

[[1 2 3]
[2 5 1]
[4 2 1]
[2 5 1]
[4 2 1]]
*******
[[1 2]
[0 0]]
*******
matrix vector multiplication:
[[ 7 4]
[17 9]
[10 10]
[17 9]
[10 10]]
[[1 2 3]
 [2 5 1]
 [4 2 1]
 [2 5 1]
 [4 2 1]]
*******
[[1 2]
 [3 1]
 [0 0]]
*******
matrix vector multiplication:
[[ 7  4]
 [17  9]
 [10 10]
 [17  9]
 [10 10]]

In the above source code, we created the first matrix with five rows and three columns. Then we created the second matrix with three rows and two columns. Finally, we applied the dot() method on these two matrices to perform matrix-vector multiplication.

Perform matrix-vector multiplication using numpy with matmul() method.

The numpy supports matmul() function that will return the resultant multiplied matrix. This is similar to the functionality of dot() method.

Syntax:

numpy.matmul(first_matrix,second_matrix)
numpy.matmul(first_matrix,second_matrix)

Parameters

  1. first_matrix is the first input numpy matrix
  2. second_matrix is the second input numpy matrix

Example 1:

In this example, we will create two matrices and apply matmul() to perform matrix-vector multiplication.

import numpy
# Creating the first matrix with 3 rows and 3 columns
first_matrix = numpy.array([[1, 2, 3],
[2, 5, 1],
[4, 2, 1]])
# Creating the second matrix with 3 rows and 4 columns
second_matrix = numpy.array([[1, 2, 2, 1],
[3, 1, 2, 1],
[0, 0, 1, 2]])
# Display both the matrices
print(first_matrix)
print('********')
print(second_matrix)
print('********')
# Apply matmul to perform matrix vector multiplication
print("matrix vector multiplication:")
print(numpy.matmul(first_matrix,second_matrix))
import numpy

# Creating the first matrix with 3 rows and 3 columns
first_matrix = numpy.array([[1, 2, 3],
                            [2, 5, 1],
                            [4, 2, 1]])

# Creating the second matrix with 3 rows and 4 columns
second_matrix = numpy.array([[1, 2, 2, 1],
                             [3, 1, 2, 1],
                             [0, 0, 1, 2]])

# Display both the matrices
print(first_matrix)

print('********')

print(second_matrix)

print('********')

# Apply matmul to perform  matrix vector multiplication
print("matrix vector multiplication:")

print(numpy.matmul(first_matrix,second_matrix))

Output:

[[1 2 3]
[2 5 1]
[4 2 1]]
********
[[1 2 2 1]
[3 1 2 1]
[0 0 1 2]]
********
matrix vector multiplication:
[[ 7 4 9 9]
[17 9 15 9]
[10 10 13 8]]
[[1 2 3]
 [2 5 1]
 [4 2 1]]
********
[[1 2 2 1]
 [3 1 2 1]
 [0 0 1 2]]
********
matrix vector multiplication:
[[ 7  4  9  9]
 [17  9 15  9]
 [10 10 13  8]]

In the above source code, we created the first matrix with three rows and three columns. Then we created the second matrix with three rows and four columns. Finally, we applied the matmul() method on these two matrices to perform matrix-vector multiplication.

Example 2:

In this example, we will create two matrices and apply matmul() to perform matrix-vector multiplication.

import numpy
# Creating the first matrix with 5 rows and 3 columns
first_matrix = numpy.array([[1, 2, 3],
[2, 5, 1],
[4, 2, 1],
[2, 5, 1],
[4, 2, 1]])
# Creating the second matrix with 3 rows and 2 columns
second_matrix = numpy.array([[1, 2],
[3, 1],
[0, 0]])
# Display both the matrices
print(first_matrix)
print('*********')
print(second_matrix)
print('*********')
# Apply matmul to perform matrix vector multiplication
matrix = numpy.matmul(first_matrix,second_matrix)
print("matrix vector multiplication:")
print(matrix)
import numpy

# Creating the first matrix with 5 rows and 3 columns
first_matrix = numpy.array([[1, 2, 3],
                            [2, 5, 1],
                            [4, 2, 1],
                            [2, 5, 1],
                            [4, 2, 1]])

# Creating the second matrix with 3 rows and 2 columns
second_matrix = numpy.array([[1, 2],
                             [3, 1],
                             [0, 0]])

# Display both the matrices
print(first_matrix)

print('*********')

print(second_matrix)

print('*********')

# Apply matmul to perform  matrix vector multiplication
matrix = numpy.matmul(first_matrix,second_matrix) 

print("matrix vector multiplication:")
print(matrix)

Output:

[[1 2 3]
[2 5 1]
[4 2 1]
[2 5 1]
[4 2 1]]
*********
[[1 2]
[0 0]]
*********
matrix vector multiplication:
[[ 7 4]
[17 9]
[10 10]
[17 9]
[10 10]]
[[1 2 3]
 [2 5 1]
 [4 2 1]
 [2 5 1]
 [4 2 1]]
*********
[[1 2]
 [3 1]
 [0 0]]
*********
matrix vector multiplication:
[[ 7  4]
 [17  9]
 [10 10]
 [17  9]
 [10 10]]

In the above source code, we created the first matrix with five rows and three columns. Then created the second matrix with three rows and two columns. Finally, we applied the matmul() method to these two matrices to perform matrix-vector multiplication.

Perform matrix-vector multiplication using @ operator.

Here, we are not using numpy module to perform matrix-vector multiplication, we simply use the @ operator, which will perform the same functionality as dot() and matmul() methods.

Syntax:

first_matrix@second_matrix
first_matrix@second_matrix

where,

  1. first_matrix is the first input numpy matrix
  2. second_matrix is the second input numpy matrix

Example:

In this example, we will create two matrices and apply @ operator to perform matrix-vector multiplication.

import numpy
# Creating the first matrix with 5 rows and 3 columns
first_matrix = numpy.array([[1, 2, 3],
[2, 5, 1],
[4, 2, 1],
[2, 5, 1],
[4, 2, 1]])
# Creating the second matrix with 3 rows and 2 columns
second_matrix = numpy.array([[1, 2],
[3, 1],
[0, 0]])
# Display both the matrices
print(first_matrix)
print('********')
print(second_matrix)
print('********')
# Apply @ to perform matrix vector multiplication
matrix = first_matrix @ second_matrix
print("matrix vector multiplication:")
print(matrix)
import numpy

# Creating the first matrix with 5 rows and 3 columns
first_matrix = numpy.array([[1, 2, 3],
                            [2, 5, 1],
                            [4, 2, 1],
                            [2, 5, 1],
                            [4, 2, 1]])

# Creating the second matrix with 3 rows and 2 columns
second_matrix = numpy.array([[1, 2],
                             [3, 1],
                             [0, 0]])

# Display both the matrices
print(first_matrix)

print('********')

print(second_matrix)

print('********')

# Apply @ to perform  matrix vector multiplication
matrix = first_matrix @ second_matrix 

print("matrix vector multiplication:")
print(matrix)

Output:

[[1 2 3]
[2 5 1]
[4 2 1]
[2 5 1]
[4 2 1]]
********
[[1 2]
[0 0]]
********
matrix vector multiplication:
[[ 7 4]
[17 9]
[10 10]
[17 9]
[10 10]]
[[1 2 3]
 [2 5 1]
 [4 2 1]
 [2 5 1]
 [4 2 1]]
********
[[1 2]
 [3 1]
 [0 0]]
********
matrix vector multiplication:
[[ 7  4]
 [17  9]
 [10 10]
 [17  9]
 [10 10]]

In the above source code, we created the first matrix with five rows and three columns. Then we created the second matrix with three rows and two columns. Finally, we applied the “@” operator method on these two matrices to perform matrix-vector multiplication.

Summary

Great! you did it. We discussed matrix vector multiplication using the dot() and matmul() methods. We can perform matrix-vector multiplication on two numpy matrices. These two methods are available in numpy module. Happy Learning.

Pandas Tutorials -Learn Data Analysis with Python

 

 

Are you looking to make a career in Data Science with Python?

Data Science is the future, and the future is here now. Data Scientists are now the most sought-after professionals today. To become a good Data Scientist or to make a career switch in Data Science one must possess the right skill set. We have curated a list of Best Professional Certificate in Data Science with Python. These courses will teach you the programming tools for Data Science like Pandas, NumPy, Matplotlib, Seaborn and how to use these libraries to implement Machine learning models.

Checkout the Detailed Review of Best Professional Certificate in Data Science with Python.

Remember, Data Science requires a lot of patience, persistence, and practice. So, start learning today.

Join a LinkedIn Community of Python Developers

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK