Matrix/Vector Operations – Linear Algebra

Lesson 9 Chapter 3

This section is dedicated to what we may mostly use in Machine Learning. Operations on vectors and matrices. Let's take a look:

# Import Numpy library
import numpy as np
# Create two vectors and two matrices
v = np.array([0,8]).reshape(-1,1)
u = np.array([1,4]).reshape(-1,1)
A = np.array([[2,1],[5,2]])
B = np.array([[2,1],[5,2]])
# Dot porduct of two vectors with two approaches
print('v.u = ',
print('v.u = ',, u.transpose()))
# Porduct of a vector with a matrix
print('A.v = ',
print('A.v = ',, v))
# Matrix product with three approaches
print('A.B = ',
print('A.B = ',, B))
print('A.B = ', np.matmul(A,B))

Let's do a practice. Run the above code and answer the following questions:

  • What is the shape and rank of \mathbf{v} and \mathbf{u}?
  • In lines 11 and 12, did we have to use ".transpose()"? Why?
  • Instead of calculating 'v.u' how would you calculate 'u.v'?
  • Take a look at lines 15 and 16. Instead of 'A.v', can we calculate 'v.A'?
You may see the visual answer to some of the questions above! Dimension matching is crucial in multiplying vectors and matrices.

I have used np.matmul, in one of the previous posts. Now, let's discussed the frequently used operations that we use in Machine Learning: Sum and mean over a matrix, or along with a specific dimension:

# Import Numpy library
import numpy as np
# Create a matrix
A = np.array([[2,1,3,4],[5,2,9,4]])
print('A=', A)
# Sum and mean over the matrix
print('sum(A) = ', np.sum(A))
print('mean(A) ', np.mean(A))
# Sum and mean over axiz zero (rows)
print('Sum over rows = ', np.sum(A, axis=0))
print('Mean over rows = ', np.mean(A, axis=0))
# Sum and mean over axiz one (colums)
print('Sum over columns = ', np.sum(A, axis=1))
print('Mean over columns = ', np.mean(A, axis=1))

A= [[2 1 3 4]
	[5 2 9 4]]
sum(A) =  30
mean(A)  3.75
Sum over rows =  [ 7  3 12  8]
Mean over rows =  [3.5 1.5 6.  4. ]
Sum over columns =  [10 20]
Mean over columns =  [2.5 5. ]

NOTE: When we take the sum/mean over a specific axis, the result is an array in which that dimension is squeezed to one dimension. The example above shows if we take the sum/mean over the dimension zero (one), the resulting array has only one row (column), and the number of columns (rows) is equal to the number of columns (rows) in the main matrix \mathbf{A}.