Python Numpy for Machine Learning - Tech It Yourself

## Tuesday, 11 July 2017

1. Introduction
- I will show you how to use Python Python numpy for Linear Algebra and Matrices. We will focus on some topics:
+ Scalars, vectors and matrices
+ Vector and matrix calculations
+ Identity, inverse matrices & determinants

2. Setup
- In order to install numpy:
+ Try this first: pip install numpy if it is not successfull then follow steps below.
+ Find where is the file setup.py and  and from the command line run the command:
python setup.py install
- In order to use numpy in python source code, just use import:
import numpy as np
3. Let 's start
3.1 Scalar
- An element of a field, usually described by a real number
3.2 Vector
- Column of numbers
$\begin{bmatrix} x_{1}\\ x_{2}\\ x_{3} \end{bmatrix}$
3.3 Matrices
- Rectangular of vectors in rows and columns. Defined as rows x columns (R x C = 3x3).
$A=\begin{bmatrix} 1 & 2 & 3\\ 5 & 4 & 1\\ 6 & 7 & 4 \end{bmatrix}$
- In order to express the matrix above, we will use array in numpy.
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import numpy as np matrix = np.array([[1, 2, 3], [5, 4, 1], [6, 7, 4]]) #print matrix print(matrix) #print type of matrix is print(type(matrix)) #print size of matrix is (3, 3) print(matrix.shape) #print element row=2, col=3 but index start from 0 #so row=2(index=1), col=3(index=2) => return 1 print(matrix[1, 2]) 
3.4 Transposition
This will change row to col and col to row.
$b=\begin{bmatrix} 1\\ 1\\ 2 \end{bmatrix} => b^{^{T}}=\begin{bmatrix} 1 & 1& 2 \end{bmatrix}$A=\begin{bmatrix} 1 & 2 & 3\\ 5 & 4 & 1\\ 6 & 7 & 4 \end{bmatrix} => A^{^{T}}=\begin{bmatrix} 1 & 5 & 6\\ 2 & 4 & 7\\ 3 & 1 & 4 \end{bmatrix}$- We use ".T" to calculate the Transposition of matrix   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b = np.array([, , ]) print(b) #Transposition print(b.T) A = np.array([[1, 2, 3], [5, 4, 1], [6, 7, 4]]) #print A print(A) #Transposition print(A.T)  Figure: calculate the Transposition of matrix using numpy 3.5 Matrix Calculations 3.5.1. Addition$A+B=\begin{bmatrix} 2 & 4\\ 2 & 5 \end{bmatrix} + \begin{bmatrix} 1 & 0\\ 3 & 1 \end{bmatrix} = \begin{bmatrix} 2+1 & 4+0\\ 2+3 & 5+1 \end{bmatrix} = \begin{bmatrix} 3 & 4\\ 5 & 6 \end{bmatrix}$  1 2 3 4 5 6 7 8 9 10 11 #Matrix Calculations #Addition #Commutative: A+B=B+A #Associative: (A+B)+C=A+(B+C) A = np.array([[2, 4], [2, 5]) B = np.array([[1, 0], [3, 1]) print(A) print(B) print(A+B)  Figure: Add 2 matrices - Commutative: A+B=B+A - Associative: (A+B)+C=A+(B+C) 3.5.2. Subtraction$A+B=\begin{bmatrix} 2 & 4\\ 5 & 3 \end{bmatrix} - \begin{bmatrix} 1 & 2\\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 1 & 2\\ 2 & -1 \end{bmatrix}$ 1 2 3 4 5 6 #Subtraction A = np.array([[2, 4], [5, 3]]) B = np.array([[1, 2], [3, 4]]) print(A) print(B) print(A-B)  Figure: Subtract 2 matrices 3.5.3. Scalar multiplication - Scalar x matrix = scalar multiplication  1 2 3 4 5 #Scalar multiplication #Scalar x matrix = scalar multiplication A = np.array([[1, 2], [3, 4]]) print(A) print(2*A)  Figure: Scalar x matrix 3.5.4. Matrix Multiplication A is a MxN matrix and B is a RxS matrix. AxB is possible if N=R (Number of columns in A = Number of rows in B). The result will be an MxS matrix. Figure: matrix A x matrix B  1 2 3 4 5 6 7 A = np.array([[1, 0], [2, 3]]) B = np.array([[2, 3], [1, 1]]) print(A) print(B) #Matrix Multiplication print(A.dot(B))  Figure: Matrix Multiplication - Matrix multiplication is NOT commutative: AB≠BA - Matrix multiplication IS associative: A(BC)=(AB)C - Matrix multiplication IS distributive: A(B+C)=AB+AC and (A+B)C=AC+BC 3.6 Vector Products Suppose that we have 2 vectors x and y$x=\begin{bmatrix} x_{1}\\ x_{2}\\ x_{3} \end{bmatrix} y=\begin{bmatrix} y_{1}\\ y_{2}\\ y_{3} \end{bmatrix}$The vector product is calculated as below$x^{T}y = \begin{bmatrix} x_{1} & x_{2} & x_{3} \end{bmatrix} \begin{bmatrix} y_{1}\\ y_{2}\\ y_{3} \end{bmatrix} = x_{1}y_{1} + x_{2}y_{2} + x_{3}y_{3} = \sum_{1}^{3}x_{i}y_{i}\$

 1 2 3 4 5 6 7 x = np.array([, , ]) y = np.array([, , ]) print(x) print(y) #Vector Products print(x.T.dot(y)) 
Figure:Vector Products
3.7 Identity matrix
It is similar to the number 1 in number multiplication (e.g: 1x2 = 2). It is called Identity matrix.
Figure: Identity matrix
- Matrix A is nxn , we have  A In = In A = A
- Matrix A is nxm , we have In A = A, and  A Im = A
- We use eye(size) function to create identity matrix.
 1 2 3 4 5 6 7 8 #Identity matrix x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) i = np.eye(3) print(x) print(i) #Identity matrix print(x.dot(i)) 
Figure: Identity matrix
3.8 Matrix inverse
- A matrix A is called  invertible if there exists a matrix B such that:
- Notation for the inverse of a matrix A is A-1
- The inverse matrix is unique if it exists. And if A is invertible, then A-1 is also invertible and (AT)-1 = (A-1)T
- Matrix division: A/B= A*B-1
- In numpy we have to use this: from numpy.linalg import inv
  1 2 3 4 5 6 7 8 9 10 11 12 #Matrix inverse from numpy.linalg import inv A = np.array([[1, 2], [3, 4]]) print(A) #Matrix inverse print(inv(A)) #(AT)-1 = (A-1)T print(inv(A.T)) print(inv(A).T) 
Figure:Matrix inverse
3.9 Determinants
- Determinants can only be found for square matrices.
- A matrix A has an inverse matrix A-1  if and only if det(A)≠0. Because:
Figure: calculate A-1
- For a 2x2 matrix A, det(A) = ad-bc

Figure: Determinants for 2x2 matrix
- In numpy we have to use: from numpy.linalg import det
 1 2 3 4 5 6 7 #Determinants from numpy.linalg import det a = np.array([[1, 2], [3, 4]]) print(a) #Determinants print(det(a)) 
Figure: Determinants

#### 1 comment:

1. Good response in return of this matter with real arguments and telling everything concerning that. paypal account login

Thường mất vài phút để quảng cáo xuất hiện trên trang nhưng thỉnh thoảng, việc này có thể mất đến 1 giờ. Hãy xem hướng dẫn triển khai mã của chúng tôi để biết thêm chi tiết. Ðã xong