Contents
English translation
Contents
Numpy
import numpy as np
1 Creating arrays
- Special matrices
- All-1 matrix, all-0 matrix, identity matrix
# Declare a 3x2 matrix of 1s
# Note that the Input is a tuple!
one_matrix = np.ones((3,2))
print(one_matrix)[[1. 1.] [1. 1.] [1. 1.]]
# Declare a 3x2 matrix of 0s
zero_matrix = np.zeros((3,2))
print(zero_matrix)[[0. 0.] [0. 0.] [0. 0.]]
# Declare a 3x3 identity matrix
eye_matrix = np.eye(3)
print(eye_matrix)[[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]
- General matrices
- Enter elements directly and change the data type.
# Declare a matrix using a list
data_int = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(data_int)[[1 2 3] [4 5 6] [7 8 9]]
# Print the Matrix shape
print(data_int.shape)(3, 3)
# Print the element dtype
print(data_int.dtype)int64
# Change the dtype
data_float = data_int.astype(np.float64)
print(data_float)
print(data_float.dtype)[[1. 2. 3.] [4. 5. 6.] [7. 8. 9.]] float64
2 Matrix operations
- Arithmetic - Element-wise operations
# Element-wise multiplication
print(data_int * data_int)[[ 1 4 9] [16 25 36] [49 64 81]]
# Add a constant
print(data_int + 3)[[ 4 5 6] [ 7 8 9] [10 11 12]]
# Divide by a constant
print(data_int / 3)[[0.33333333 0.66666667 1. ] [1.33333333 1.66666667 2. ] [2.33333333 2.66666667 3. ]]
- Matrix transpose
x = np.array([[1,2,3],[4,5,6]])
y = np.array([[1,0,-1],[1,1,0]])
print(x)
print(y)
print(y.T)[[1 2 3] [4 5 6]] [[ 1 0 -1] [ 1 1 0]] [[ 1 1] [ 0 1] [-1 0]]
- Matrix multiplication - Dot product
print(np.dot(x,y.T))[[-2 3] [-2 9]]
- Select and modify matrix elements
# Create an array of consecutive integers
data_range = np.arange(10)
print(data_range)[0 1 2 3 4 5 6 7 8 9]
# Select using an index
print(data_range[0]) 0
# slicing
print(data_range[1:4])[1 2 3]
# Modify using slicing
data_range[1:4] = 10
print(data_range)[ 0 10 10 10 4 5 6 7 8 9]
# Note that slicing returns an address (pointer)!
tmp = data_range[1:4]
tmp[1] = 20
print(data_range)[ 0 10 20 10 4 5 6 7 8 9]
# The same applies to 2 or more dimensions
print(data_int[2])
print(data_int[:2])
print(data_int[2][0])
print(data_int[2,0])
print(data_int[:2,1:])
data_int[:2,1:] = 0
print(data_int)[7 8 9] [[1 2 3] [4 5 6]] 7 7 [[2 3] [5 6]] [[1 0 0] [4 0 0] [7 8 9]]
3 Related functions
- Compute the inverse matrix
import numpy.linalg as lin
mat = np.array([[2,2,0],[-2,1,1],[3,0,1]])
print(lin.inv(mat))[[ 0.08333333 -0.16666667 0.16666667] [ 0.41666667 0.16666667 -0.16666667] [-0.25 0.5 0.5 ]]
- Compute the determinant
print(lin.det(mat))12.0
- Solve a matrix equation
matA = np.array([[3,2,1],[1,-1,3],[5,4,-2]])
matB = np.array([7,3,1])
print(lin.solve(matA, matB))[-3. 6. 4.]
4 Practice (Assignment 3)
- Solve a matrix equation
- Solve the following matrix equation using the pseudoinverse.
- Assume that is invertible.