Ma trận trong Numpy thực chất là một mảng 2 chiều, với các phần tử bên trong mảng này sẽ là mảng 1 chiều. Tuy nhiên, trong khái niệm thuộc ma trận, sẽ tồn tại nhiều các ma trận đặc biệt ví dụ như ma trận chuyển vị, ma trận 0, ma trận 1…. trong bài hôm nay chúng ta sẽ cùng nhau tạo ra các ma trận đặc biệt này thông qua một số hàm có sẵn trong Numpy!

1. Tạo ma trận bằng np.matlib.empty()

Hàm np.matlib.empty() được sử dụng để tạo ra một ma trận có kích thước m x n, tuy nhiên ma trận này sẽ là một ma trận empty – với các phần tử bên trong là ngẫu nhiên.

Để khởi tạo một ma trận empty chúng ta chỉ cần gọi hàm np.matlib.empty() và truyền kích thước ma trận cần tạo như sau:

import numpy.matlib 
import numpy as np 

# Tao ma tran empty kich thuoc 2 x 2 voi cac phan tu ngau nhien
a = np.matlib.empty((2,2)) 
print(a)

Kết quả:

[[7.01698690e-312 7.01698686e-312]
 [7.01698690e-312 7.01698690e-312]]

Lưu ý: Chúng ta cần nhập vào lớp import numpy.matlib để sử dụng được lớp matlib.

2. Tạo ma trận bằng numpy.matlib.zeros()

Hàm np.matlib.zeros() được sử dụng để tạo ra một ma trận có kích thước m x n –  ma trận này sẽ là một ma trận không (số 0) – nghĩa là các phần tử trong ma trận sẽ mang giá trị 0.

Để khởi tạo một ma trận không chúng ta chỉ cần gọi hàm np.matlib.zeros() và truyền kích thước ma trận cần tạo như sau:

import numpy.matlib 
import numpy as np 

# Tao ma tran khong kich thuoc 2 x 2 
a = np.matlib.zeros((2,2)) 
print(a)

Kết quả:

[[0. 0.]
 [0. 0.]]

3. Tạo ma trận bằng numpy.matlib.ones()

Hàm np.matlib.ones() được sử dụng để tạo ra một ma trận có kích thước m x n –  ma trận này sẽ là một ma trận một (số 1) – nghĩa là các phần tử trong ma trận sẽ mang giá trị 1.

Để khởi tạo một ma trận một chúng ta chỉ cần gọi hàm np.matlib.ones() và truyền kích thước ma trận cần tạo như sau:

import numpy.matlib 
import numpy as np 

# Tao ma tran mot kich thuoc 2 x 2 
a = np.matlib.ones((2,2)) 
print(a)

Kết quả:

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

4. Tạo ma trận bằng numpy.matlib.eye()

Hàm np.matlib.eye() được sử dụng để tạo ra một ma trận có kích thước m x n –  ma trận này sẽ là một ma trận có các phần tử ở đường chéo chính sẽ có giá trị là – các phần tử bên ngoài đường chéo chính sẽ có giá trị là 0.

Để khởi tạo một ma trận với các phần tử ở đường chéo bằng 1 chúng ta chỉ cần gọi hàm np.matlib.eye() và truyền kích thước ma trận vào trong hàm như sau:

import numpy.matlib 
import numpy as np 

# Tao ma tran cac gia tri tren duong cheo bang 1
a = np.matlib.eye(3,4)
print(a)

Kết quả:

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

5. Tạo ma trận bằng numpy.matlib.identity()

Hàm np.matlib.identity() được sử dụng để tạo ra một ma trận vuông có kích thước n x n –  ma trận này sẽ là một ma trận đơn vị – ma trận đơn vị nghĩa là các phần tử ở trên đường chéo chính có giá trị là và các phần tử ngoài đường chéo chính sẽ có giá trị là 0.

Để khởi tạo một ma trận đơn vị chúng ta chỉ cần gọi hàm np.matlib.identity() và truyền kích thước ma trận vào trong hàm như sau:

import numpy.matlib 
import numpy as np 

# Tao ma tran don vi kich thuoc 5 x 5
a = np.matlib.identity(5)
print(a)

Kết quả:

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

6. Tạo ma trận bằng numpy.matlib.rand()

Hàm np.matlib.rand() được sử dụng để tạo ra một ma trận ngẫu nhiên có kích thước m x n –  ma trận này sẽ là một ma trận với các phần tử bên trong sẽ là ngẫu nhiên.

Để khởi tạo một ma trận ngẫu nhiên chúng ta chỉ cần gọi hàm np.matlib.rand() và truyền kích thước ma trận vào trong hàm như sau:

import numpy.matlib 
import numpy as np 

# Tao ma tran ngau nhien voi kich thuoc 3 x 3
a = np.matlib.rand(3,3)
print(a)

Kết quả:

[[0.69992307 0.4790935  0.41457937]
 [0.07717672 0.79849434 0.85104746]
 [0.99333206 0.58630844 0.84937497]]