Basic Tensor Calculation using NumPy in Python

In this tutorial, we will learn

  • What is tensor
  • How to create a tensor
  • Basic operations on tensor

What is Tensor?

Tensors are multi-dimensional arrays. To be specific it is an n-dimensional array with n>2. They are used in linear algebra like vector and matrices.

Tensors are immutable that is you cannot update the contents but can create a new one. The tensor notation is much similar to matrix notation denoted by a capital letter

      [[t111, t121, t131]  [[t112, t122, t132]  [[t113, t123, t133]
T =([  [t211, t221, t231],  [t212, t222, t232],  [t213, t223, t233]   ])
       [t311, t321, t331]]  [t312, t322, t332]]  [t313, t323, t333]]

Tensors can be created by using array()  function from Numpy which creates n-dimensional arrays. For that, we are going to need the Numpy library.

To install Numpy with Anaconda prompt, open the prompt and type:

conda install numpy

If you want to install with pip, just replace the word ‘conda’ with ‘pip’.

I have used Jupyter notebook to implement this, you can choose whichever python editor you want.

import numpy as np  #importing the library

Creating Tensor-

Let’s start by creating tensor-

# creating tensor
T = np.array([
  [[1,4,7],      [2,5,8],      [3,6,9]],
  [[10,40,70],   [20,50,80],   [30,60,90]],
  [[100,400,700],[200,500,800],[300,600,900]],
  ])
print(T)
print("This tensor is of dimension:",T.shape)

Output:

[[[  1   4   7]
  [  2   5   8]
  [  3   6   9]]

 [[ 10  40  70]
  [ 20  50  80]
  [ 30  60  90]]

 [[100 400 700]
  [200 500 800]
  [300 600 900]]]
This tensor is of dimension: (3, 3, 3)

For this tensor axis 0 specifies level, axis 1 specifies row and axis 2 specifies the column.

Basic Operations on Tensor-

Now, let’s do some basic arithmetic operations on tensors

Tensor Addition

In Numpy we can add tensors by adding arrays.

# tensor addition
import numpy as np
T1 = np.array([
  [[5,10,15],[20,25,30], [35,40,45]],
  [[2,4,6],  [8,10,12],  [14,16,18]],
  [[3,6,9],  [12,15,18], [21,24,27]],
  ])
T2 = np.array([
  [[5,10,15],[20,25,30], [35,40,45]],
  [[2,4,6],  [8,10,12],  [14,16,18]],
  [[3,6,9],  [12,15,18], [21,24,27]],
  ])
T = T1 + T2
print(T)

Output:

[[[10 20 30]
  [40 50 60]
  [70 80 90]]

 [[ 4  8 12]
  [16 20 24]
  [28 32 36]]

 [[ 6 12 18]
  [24 30 36]
  [42 48 54]]]

Tensor Subtraction in Python

Similarly applies for Subtraction

# tensor subtraction
import numpy as np
T1 = np.array([
  [[5,10,15],[20,25,30], [35,40,45]],
  [[2,4,6],  [8,10,12],  [14,16,18]],
  [[3,6,9],  [12,15,18], [21,24,27]],
  ])
T2 = np.array([
  [[5,10,15],[20,25,30], [35,40,45]],
  [[2,4,6],  [8,10,12],  [14,16,18]],
  [[3,6,9],  [12,15,18], [21,24,27]],
  ])
T = T1 - T2
print(T)

Output:

[[[0 0 0]
  [0 0 0]
  [0 0 0]]

 [[0 0 0]
  [0 0 0]
  [0 0 0]]

 [[0 0 0]
  [0 0 0]
  [0 0 0]]]

Tensor Multiplication in Python

We can multiply tensor by multiplying arrays using Numpy. Tensor Multiplication is also known as Hadamard Product

#tensor multiplication
T1 = np.array([
  [[5,10,15],[20,25,30], [35,40,45]],
  [[2,4,6],  [8,10,12],  [14,16,18]],
  [[3,6,9],  [12,15,18], [21,24,27]],
  ])
T2 = np.array([
  [[5,10,15],[20,25,30], [35,40,45]],
  [[2,4,6],  [8,10,12],  [14,16,18]],
  [[3,6,9],  [12,15,18], [21,24,27]],
  ])
T = T1*T2
print(T)

Output:

[[[  25  100  225]
  [ 400  625  900]
  [1225 1600 2025]]

 [[   4   16   36]
  [  64  100  144]
  [ 196  256  324]]

 [[   9   36   81]
  [ 144  225  324]
  [ 441  576  729]]]

Tensor Division

Similarly applies for the division

T1 = np.array([
  [[5,10,15],[20,25,30], [35,40,45]],
  [[2,4,6],  [8,10,12],  [14,16,18]],
  [[3,6,9],  [12,15,18], [21,24,27]],
  ])
T2 = np.array([
  [[5,10,15],[20,25,30], [35,40,45]],
  [[2,4,6],  [8,10,12],  [14,16,18]],
  [[3,6,9],  [12,15,18], [21,24,27]],
  ])
T = T1/T2
print(T)

Output:

[[[1. 1. 1.]
  [1. 1. 1.]
  [1. 1. 1.]]

 [[1. 1. 1.]
  [1. 1. 1.]
  [1. 1. 1.]]

 [[1. 1. 1.]
  [1. 1. 1.]
  [1. 1. 1.]]]

Conclusion

In this tutorial, we learned about what tensors are and how to do arithmetic operations between tensors using Numpy.

Leave a Reply

Your email address will not be published. Required fields are marked *