Sắp xếp ma trận trong python

Sử dụng ma trận Python với Numpy

Để thực hiện các thao tác dữ liệu ma trận, bạn có thể sử dụng gói numpy. NumPy là thư viện được viết bằng Python nhằm phục vụ cho việc tính toán khoa học, hỗ trợ nhiều kiểu dữ liệu đa chiều giúp cho việc tính toán, lập trình, làm việc với các hệ cơ sở dữ liệu cực kì thuận tiện. Bạn có thể sử dụng các các phép toán và mảng (array) được định nghĩa trong numpy để tạo ma trận. Array này là một đối tượng mảng đa chiều thuần nhất tức là mọi phần tử đều cùng 1 kiểu.

Một số thao tác phép toán trong Numpy

  1. add (): - Hàm này được sử dụng để thực hiện phép cộng ma trận phần tử wise 
  2. subtract (): - Hàm này dùng để thực hiện phép trừ ma trận phần tử .
  3. split (): - Hàm này được sử dụng để thực hiện phép chia ma trận phần tử wise.

Ví dụ

# Python code to demonstrate matrix operations

# add(), subtract() and divide()

# importing numpy for matrix operations

import numpy

# initializing matrices

x = numpy.array([[1, 2], [4, 5]])

y = numpy.array([[7, 8], [9, 10]])

# using add() to add matrices

print ("The element wise addition of matrix is : ")

print (numpy.add(x,y))

# using subtract() to subtract matrices

print ("The element wise subtraction of matrix is : ")

print (numpy.subtract(x,y))  

# using divide() to divide matrices

print ("The element wise division of matrix is : ")

print (numpy.divide(x,y))

Kết quả

The element wise addition of matrix is : 

[[ 8 10]

 [13 15]]

The element wise subtraction of matrix is : 

[[-6 -6]

 [-5 -5]]

The element wise division of matrix is : 

[[ 0.14285714  0.25      ]

 [ 0.44444444  0.5       ]]

  1. Nhân (): - Hàm này được sử dụng để thực hiện phép nhân ma trận phần tử .
  2. dot (): - Hàm này được sử dụng để tính toán phép nhân ma trận, chứ không phải phép nhân phần tử wise .
  3. sqrt (): - Hàm này dùng để tính căn bậc hai của từng phần tử của ma trận.
  4. sum (x, axis): - Hàm này dùng để cộng tất cả các phần tử trong ma trận . Đối số "trục" tùy chọn tính tổng cột nếu trục là 0 và tổng hàng nếu trục là 1 .
  5. “T”: - Đối số này được sử dụng để chuyển vị trí của ma trận được chỉ định.

Sắp xếp ma trận trong python

Ví dụ đơn giản về ma trận trong Python

Ta sẽ xem xét trường hợp ghi nhiệt độ trong một tuần được đo vào buổi sáng, giữa ngày, buổi tối và giữa đêm. Trường hợp này có thể được trình bày dưới dạng ma trận 7x5 bằng cách sử dụng mảng và phương pháp định hình có sẵn trong Numpy như sau:

from numpy import * 

a = array([['Mon',18,20,22,17],['Tue',11,18,21,18],

  ['Wed',15,21,20,19],['Thu',11,20,22,21],

  ['Fri',18,17,23,22],['Sat',12,22,20,18],

  ['Sun',13,15,19,16]])

m = reshape(a,(7,5))

print(m)

Dữ liệu trên có thể được biểu diễn dưới dạng một mảng hai chiều như bên dưới.

[['Mon' '18' '20' '22' '17']

 ['Tue' '11' '18' '21' '18']

 ['Wed' '15' '21' '20' '19']

 ['Thu' '11' '20' '22' '21']

 ['Fri' '18' '17' '23' '22']

 ['Sat' '12' '22' '20' '18']

 ['Sun' '13' '15' '19' '16']]

Khi đoạn mã trên được thực thi, nó sẽ cho ra kết quả như sau:

['Wed', 15, 21, 20, 19]

23

>>> Xem thêm: Từ điển trong Python - Cách sử dụng từ điển trong Python

Một số thao tác tạo ma trận trong Python

from numpy import * 

m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],

  ['Wed',15,21,20,19],['Thu',11,20,22,21],

  ['Fri',18,17,23,22],['Sat',12,22,20,18],

  ['Sun',13,15,19,16]])  

m_r = append(m,[['Avg',12,15,13,11]],0)

print(m_r)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

[['Mon' '18' '20' '22' '17']

 ['Tue' '11' '18' '21' '18']

 ['Wed' '15' '21' '20' '19']

 ['Thu' '11' '20' '22' '21']

 ['Fri' '18' '17' '23' '22']

 ['Sat' '12' '22' '20' '18']

 ['Sun' '13' '15' '19' '16']

 ['Avg' '12' '15' '13' '11']]

>>> Xem thêm: Khóa học lập trình Python

Thêm một cột trong ma trận Python

Chúng ta có thể thêm cột vào ma trận bằng phương thức insert (). ở đây chúng ta phải đề cập đến chỉ mục nơi chúng ta muốn thêm cột và một mảng chứa các giá trị mới của các cột được thêm vào. Trong ví dụ dưới đây, một cột mới đã được thêm từ vị trí thứ 5

from numpy import * 

m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],

  ['Wed',15,21,20,19],['Thu',11,20,22,21],

  ['Fri',18,17,23,22],['Sat',12,22,20,18],

  ['Sun',13,15,19,16]])

m_c = insert(m,[5],[[1],[2],[3],[4],[5],[6],[7]],1)

print(m_c)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

[['Mon' '18' '20' '22' '17' '1']

 ['Tue' '11' '18' '21' '18' '2']

 ['Wed' '15' '21' '20' '19' '3']

 ['Thu' '11' '20' '22' '21' '4']

 ['Fri' '18' '17' '23' '22' '5']

 ['Sat' '12' '22' '20' '18' '6']

 ['Sun' '13' '15' '19' '16' '7']]

Xóa một hàng tạo thành một Ma trận Python

Chúng ta có thể xóa một hàng khỏi ma trận bằng phương thức delete (). Chúng ta phải chỉ định chỉ số của hàng và giá trị trục là 0 cho một hàng và 1 cho một cột.

from numpy import * 

m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],

  ['Wed',15,21,20,19],['Thu',11,20,22,21],

  ['Fri',18,17,23,22],['Sat',12,22,20,18],

  ['Sun',13,15,19,16]])

m = delete(m,[2],0)

print(m)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

[['Mon' '18' '20' '22' '17']

 ['Tue' '11' '18' '21' '18']

 ['Thu' '11' '20' '22' '21']

 ['Fri' '18' '17' '23' '22']

 ['Sat' '12' '22' '20' '18']

 ['Sun' '13' '15' '19' '16']]

Xóa một cột khỏi Ma trận Python

Chúng ta có thể xóa một cột khỏi ma trận bằng phương thức delete (). Chúng ta phải chỉ định chỉ số của cột và giá trị trục là 0 cho một hàng và 1 cho một cột.

from numpy import * 

m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],

  ['Wed',15,21,20,19],['Thu',11,20,22,21],

  ['Fri',18,17,23,22],['Sat',12,22,20,18],

  ['Sun',13,15,19,16]])

m = delete(m,s_[2],1)

print(m)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

[['Mon' '18' '22' '17']

 ['Tue' '11' '21' '18']

 ['Wed' '15' '20' '19']

 ['Thu' '11' '22' '21']

 ['Fri' '18' '23' '22']

 ['Sat' '12' '20' '18']

 ['Sun' '13' '19' '16']]

Cập nhật một hàng trong Ma trận Python

Để cập nhật các giá trị trong hàng của ma trận, chúng ta chỉ cần gán lại các giá trị tại chỉ mục của hàng. Trong ví dụ dưới đây, tất cả các giá trị cho dữ liệu của ngày thứ hai được đánh dấu là 0. Chỉ số cho hàng này là 3.

from numpy import * 

m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],

  ['Wed',15,21,20,19],['Thu',11,20,22,21],

  ['Fri',18,17,23,22],['Sat',12,22,20,18],

  ['Sun',13,15,19,16]])

m[3] = ['Thu',0,0,0,0]

print(m)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

[['Mon' '18' '20' '22' '17']

 ['Tue' '11' '18' '21' '18']

 ['Wed' '15' '21' '20' '19']

 ['Thu' '0' '0' '0' '0']

 ['Fri' '18' '17' '23' '22']

 ['Sat' '12' '22' '20' '18']

 ['Sun' '13' '15' '19' '16']]

Kết luận: Việc sử dụng NumPy trong việc tạo ma trận thay vì Nested list sẽ giúp bạn lập trình một cách dễ dàng hơn, đặc biệt trong việc nghiên cứu dữ liệu, khoa học.

Nguồn tham khảo: Tutorialspoint, Geeksforgeeks