Cách khai báo ma trận trong Python

Trong thế giới lập trình, ma trận được biểu diễn dưới dạng mảng 2 chiều được sử dụng để biểu diễn dữ liệu theo hàng và cột. Chúng được sử dụng trong các hoạt động toán học và thống kê khác nhau và chúng giữ nguyên hình dạng của chúng. Ma trận có số hàng và số cột bằng nhau được gọi là ma trận vuông

Để tạo ma trận trong Python, chúng ta có thể sử dụng các mảng hoặc danh sách numpy. Chúng ta sẽ thảo luận về cách tạo ma trận trong Python trong bài viết này

Sử dụng danh sách để tạo ma trận trong Python

Một danh sách cũng lưu trữ một tập hợp các phần tử tại các vị trí cụ thể. Một danh sách có thể lưu trữ các phần tử thuộc các loại khác nhau trong một danh sách và các phép toán không thể được áp dụng trực tiếp vào danh sách

Chúng ta có thể sử dụng nó để tạo ma trận trong Python

Sử dụng danh sách lồng nhau để tạo ma trận

Danh sách lồng nhau là danh sách trong danh sách và có thể được sử dụng để tạo ma trận trong Python

Một ví dụ rất đơn giản được hiển thị dưới đây

1

2

3

4

5

 

m = [[4,1,2],[7,5,3],[9,6,9]]

cho i trong m.

    in(i)    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   1 ,   2 ]

[ 7 ,   5 ,   3 ]

[ 9 ,   6 ,   9 ]    

 

Trong ví dụ trên, chúng tôi đã tạo một danh sách lồng nhau đơn giản đại diện cho một ma trận

Lưu ý rằng chúng tôi không in trực tiếp danh sách. Điều này được thực hiện bởi vì điều đó sẽ in danh sách trong một dòng. Đó là lý do tại sao chúng tôi lặp qua từng hàng riêng lẻ. Chúng ta cũng có thể làm điều này rõ ràng hơn với hàm join()

Xem mã dưới đây

1

2

3

4

5

 

m = [[4,1,2],[7,5,3],[9,6,9]]

cho i trong m.

    in(' '. tham gia(str(i)))    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   1 ,   2 ]

[ 7 ,   5 ,   3 ]

[ 9 ,   6 ,   9 ]    

 

Sự khác biệt trong việc sử dụng phương thức này để in ma trận là nó nối các phần tử của một hàng thành một chuỗi trước khi in nó.

đọc thêm

Khởi tạo ma trận trong Python

Đọc thêm →

In ma trận bằng Python

Đọc thêm →

Sử dụng vòng lặp for để tạo ma trận

Chúng ta có thể sử dụng vòng lặp for để tạo ma trận trong Python bằng cách sử dụng danh sách trong Python. Nếu chúng ta có một danh sách duy nhất thì chúng ta có thể lặp lại nó với số lần cần thiết trong danh sách và nó sẽ thay đổi thành một danh sách lồng nhau hoạt động như một ma trận

Ví dụ,

1

2

3

4

5

 

m = [[4,8,9] for i in range(3)]

cho i trong m.

    in(' '. tham gia(str(i)))    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 4 ,   8 ,   9 ]

[ 4 ,   8 ,   9 ]

[ 4 ,   8 ,   9 ]    

 

Phương pháp này lấy một danh sách duy nhất và thay đổi nó thành một ma trận có hình dạng được yêu cầu

Có một cách khác để sử dụng vòng lặp for để tạo ma trận trong Python

Ví dụ,

1

2

3

4

5

6

7

8

9

10

11

 

lst = []

m = []

cho i trong phạm vi(0,3):

    cho j trong phạm vi(0,3):

        ls. chắp thêm(0)      <

    m. nối(lst)    <

    lst = []

cho i trong m.

    in(' '. tham gia(str(i)))    

 

đầu ra

đầu ra

1

2

3

4

5

 

[ 0 ,   0 ,   0 ]

[ 0 ,   0 ,   0 ]

[ 0 ,   0 ,   0 ]    

 

Trong ví dụ trên,

  • Đầu tiên chúng tôi khởi tạo hai danh sách trống. Một cái sẽ hoạt động như một hàng và cái kia sẽ hoạt động như ma trận cuối cùng
  • Chúng tôi chạy một vòng lặp lồng nhau. Vòng lặp bên trong thêm một phần tử vào danh sách lst
  • Trong vòng lặp bên ngoài, lst được thêm vào danh sách ma trận m dưới dạng một hàng
  • Sau đó, chúng tôi khởi tạo lst dưới dạng danh sách trống và vòng lặp chạy lại cho hàng tiếp theo

Phương pháp này rất thuận tiện nếu chúng tôi muốn lấy đầu vào từ người dùng cho mọi phần tử trong danh sách. Đối với điều này, chúng ta chỉ cần yêu cầu đầu vào trong vòng lặp bên trong trước khi thêm phần tử vào danh sách lst

Danh sách cuối cùng được thảo luận trong các ví dụ trên có thể được chuyển đổi trực tiếp thành một mảng numpy bằng cách sử dụng hàm join()1 hoặc hàm join()2. Những phương pháp này sẽ được thảo luận dưới đây

Sử dụng mảng numpy để tạo ma trận trong Python

Mảng numpy được sử dụng để lưu trữ một tập hợp các phần tử cùng kiểu. Tuy nhiên, chúng ta có thể áp dụng các phép toán trực tiếp cho một mảng và chúng có thể lưu trữ một chuỗi dữ liệu dài hơn một cách hiệu quả. Đó là lý do tại sao nó được coi là một cách tiếp cận tốt hơn để sử dụng mảng numpy cho ma trận trong Python

Hãy để chúng tôi thảo luận về các phương pháp khác nhau để tạo ma trận trong Python bằng cách sử dụng mảng numpy

Sử dụng hàm join()1 để tạo ma trận trong Python

Chúng ta có thể tạo một mảng 2-D numpy bằng cách sử dụng hàm join()1 trong Python

Ví dụ,

1

2

3

4

5

6

 

nhập numpy as np

m = np. mảng([[4,1,2],[7,5,3],[9,6,9]])

in("Ma trận. \n", m)

in("Kích thước. \n", m. hình dạng)    

 

đầu ra

đầu ra

1

2

3

4

5

6

7

8

 

Ma trận.

[[4 1 2]

[7 5 3]

[9 6 9]]

Kích thước.

(3, 3)    

 

Trong ví dụ trên, chúng tôi đã tạo một ma trận đơn giản bằng Python. Chúng tôi đã xác minh điều này bằng cách hiển thị hình dạng của ma trận, cho thấy đó là mảng 2 chiều có 3 cột và 3 hàng

Sử dụng hàm join()2 để tạo ma trận trong Python

Hàm join()2 được sử dụng để trả về mảng 2 chiều. Nó hoạt động tương tự như chức năng join()1 đã thảo luận trước đó

Ví dụ,

1

2

3

4

5

6

 

nhập numpy as np

m = np. ma trận([[4,1,2],[7,5,3],[9,6,9]])

in("Ma trận. \n", m)

in("Kích thước. \n", m. hình dạng)        

 

đầu ra

đầu ra

1

2

3

4

5

6

7

8

 

Ma trận.

[[4 1 2]

[7 5 3]

[9 6 9]]

Kích thước.

(3, 3)    

 

Sử dụng hàm for3 để tạo ma trận trong Python

for3 cũng có thể được sử dụng để tạo ma trận trong Python. Chức năng này có thể được sử dụng để thay đổi hình dạng của mảng. Chúng ta có thể sử dụng nó để thay đổi hình dạng của mảng 1-D thành mảng 2-D mà không thay đổi các phần tử của nó

Xem mã dưới đây

1

2

3

4

5

6

 

nhập numpy as np

m = np. mảng([[4 . ,1,2,7,5,3,9,6,9]]).định hình lại(3,3)

in("Ma trận. \n", m)

in("Kích thước. \n", m. hình dạng)    

 

đầu ra

đầu ra

1

2

3

4

5

6

7

8

 

Ma trận.

[[4 1 2]

[7 5 3]

[9 6 9]]

Kích thước.

(3, 3)    

 

Hãy để chúng tôi thảo luận về những gì đã xảy ra trong ví dụ trên

  • Chúng tôi đã có một mảng 1-D bao gồm tổng cộng chín phần tử
  • Hàm for5 đã sửa đổi mảng này thành mảng 2 chiều có hình dạng là for6
  • Tất cả các phần tử được sắp xếp trong ma trận 3 hàng 3 cột

Lưu ý rằng chúng ta phải cẩn thận về số lượng phần tử trong một mảng trước khi thay đổi hình dạng của nó. Vì một ma trận có hình dạng for6 sẽ có 9 phần tử, ví dụ trên sẽ không hoạt động nếu tổng các phần tử trong mảng 1-D không phải là 9

Sử dụng hàm for8 để tạo ma trận trong Python

Chúng ta có thể sử dụng hàm for8 để tạo ma trận trong Python từ một mảng hiện có. Cách chúng tôi đạt được điều này là nối thêm các hàng vào một mảng hiện có