Ma trận Python và Giới thiệu về NumPy – hình dạng của trăn ma trận

Bạn có thể coi các danh sách của một danh sách (danh sách lồng nhau) là ma trận trong Python. Tuy nhiên, có một cách tốt hơn để làm việc với ma trận Python bằng cách sử dụng gói NumPy. NumPy là một gói dành cho máy tính khoa học có hỗ trợ cho một đối tượng mảng N-chiều mạnh mẽ.

Bạn đang xem : hình dạng của python ma trận

Ma trận là một hai chiều cấu trúc dữ liệu nơi các số được sắp xếp thành các hàng và cột. Ví dụ:

Ma trận này là ma trận 3×4 (phát âm là “ba x bốn”) vì nó có 3 hàng và 4 cột.

Ma trận Python

Python không có kiểu cài sẵn cho ma trận. Tuy nhiên, chúng ta có thể coi một danh sách là một ma trận. Ví dụ:

 A = [[1, 4, 5],
    [-5, 8, 9]]
 

Chúng ta có thể coi danh sách danh sách này như một ma trận có 2 hàng và 3 cột.

Hãy nhớ tìm hiểu về danh sách Python trước khi tiếp tục bài viết này.

Hãy xem cách làm việc với danh sách lồng nhau.

 A = [[1, 4, 5, 12],
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]]

print ("A =", A)
print ("A [1] =", A [1]) # hàng thứ 2
print ("A [1] [2] =", A [1] [2]) # phần tử thứ 3 của hàng thứ 2
print ("A [0] [- 1] =", A [0] [- 1]) # Phần tử cuối cùng của Hàng đầu tiên

cột = []; # danh sách trống
cho hàng trong A:
  column.append (row [2])

print ("Cột thứ 3 =", cột)
 

Khi chúng tôi chạy chương trình, đầu ra sẽ là:

A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]
A [1] = [-5, 8, 9, 0]
A [1] [2] = 9
A [0] [- 1] = 12
Cột thứ 3 = [5, 9, 11]

Dưới đây là một số ví dụ khác liên quan đến ma trận Python sử dụng danh sách lồng nhau.

Sử dụng danh sách lồng nhau dưới dạng ma trận hoạt động cho các tác vụ tính toán đơn giản, tuy nhiên, có một cách tốt hơn để làm việc với ma trận trong Python bằng cách sử dụng gói NumPy .

Mảng NumPy

NumPy là một gói dành cho máy tính khoa học có hỗ trợ cho một đối tượng mảng N-chiều mạnh mẽ. Trước khi có thể sử dụng NumPy, bạn cần cài đặt nó. Để biết thêm thông tin,

  • Truy cập: Cách cài đặt NumPy?
  • Nếu bạn đang sử dụng Windows, hãy tải xuống và cài đặt anaconda Distribution bằng Python. Nó đi kèm với NumPy và một số gói khác liên quan đến khoa học dữ liệu và học máy.

Sau khi NumPy được cài đặt, bạn có thể nhập và sử dụng nó.

NumPy cung cấp mảng số nhiều chiều (thực chất là một đối tượng). Hãy lấy một ví dụ:

 nhập numpy dưới dạng np
a = np.array ([1, 2, 3])
print (a) # Đầu ra: [1, 2, 3]
print (type (a)) # Đầu ra: & lt; class 'numpy.ndarray' & gt;
 

Như bạn có thể thấy, lớp mảng của NumPy được gọi là ndarray .

Cách tạo mảng NumPy?

Có một số cách để tạo mảng NumPy.

1. Mảng số nguyên, số thực và số phức

 nhập numpy dưới dạng np

A = np.array ([[1, 2, 3], [3, 4, 5]])
in (A)

A = np.array ([[1.1, 2, 3], [3, 4, 5]]) # Mảng float
in (A)

A = np.array ([[1, 2, 3], [3, 4, 5]], dtype = complex) # Mảng số phức
in (A)
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:

[[1 2 3]
 [3 4 5]]

[[1.1 2. 3.]
 [3. 4. 5.]]

[[1 + 0.j 2. + 0.j 3. + 0.j]
 [3. + 0.j 4. + 0.j 5. + 0.j]]

2. Mảng các số không và một số

 nhập numpy dưới dạng np

zeors_array = np.zeros ((2, 3))
print (zeors_array)

''
 Đầu ra:
 [[0. 0. 0.]
  [0. 0. 0.]]
''

ones_array = np.ones ((1, 5), dtype = np.int32) // chỉ định dtype
print (ones_array) # Đầu ra: [[1 1 1 1 1]]
 

Ở đây, chúng tôi đã chỉ định dtype thành 32 bit (4 byte). Do đó, mảng này có thể nhận các giá trị từ -2-31 đến 2-31-1 .

3. Sử dụng arange () và shape ()

 nhập numpy dưới dạng np

A = np.arange (4)
print ('A =', A)

B = np.arange (12) .reshape (2, 6)
print ('B =', B)

''
Đầu ra:
A = [0 1 2 3]
B = [[0 1 2 3 4 5]
 [6 7 8 9 10 11]]
''
 

Tìm hiểu thêm về các cách khác để tạo mảng NumPy .

Các phép toán ma trận

Trên đây, chúng tôi đã cung cấp cho bạn 3 ví dụ: phép cộng hai ma trận, phép nhân hai ma trận và chuyển vị của một ma trận. Chúng tôi đã sử dụng danh sách lồng nhau trước đây để viết các chương trình đó. Hãy xem cách chúng ta có thể thực hiện tác vụ tương tự bằng cách sử dụng mảng NumPy.

Phép cộng hai ma trận

Chúng tôi sử dụng toán tử + để thêm các phần tử tương ứng của hai ma trận NumPy.

 nhập numpy dưới dạng np

A = np.array ([[2, 4], [5, -6]])
B = np.array ([[9, -3], [3, 6]])
C = A + B # phần tử bổ sung khôn ngoan
in (C)

''
Đầu ra:
[[11 1]
 [8 0]]
 '' ' 

Phép nhân hai ma trận

Để nhân hai ma trận, chúng tôi sử dụng phương thức dot () . Tìm hiểu thêm về cách hoạt động của numpy.dot .

Lưu ý: * được sử dụng cho phép nhân mảng (phép nhân các phần tử tương ứng của hai mảng) không phải phép nhân ma trận.

 nhập numpy dưới dạng np

A = np.array ([[3, 6, 7], [5, -3, 0]])
B = np.array ([[1, 1], [2, 1], [3, -3]])
C = A.dot (B)
in (C)

''
Đầu ra:
[[36 -12]
 [-1 2]]
''
 

Chuyển vị của ma trận

Chúng tôi sử dụng numpy.transpose để tính toán chuyển vị của ma trận.

 nhập numpy dưới dạng np

A = np.array ([[1, 1], [2, 1], [3, -3]])
in (A.transpose ())

''
Đầu ra:
[[1 2 3]
 [1 1 -3]]
''
 

Như bạn có thể thấy, NumPy đã làm cho nhiệm vụ của chúng tôi trở nên dễ dàng hơn nhiều.

Truy cập các phần tử, hàng và cột của ma trận

Phần tử ma trận truy cập

Tương tự như danh sách, chúng ta có thể truy cập các phần tử ma trận bằng cách sử dụng chỉ mục. Hãy bắt đầu với mảng NumPy một chiều.

 nhập numpy dưới dạng np
A = np.array ([2, 4, 6, 8, 10])

print ("A [0] =", A [0]) # phần tử đầu tiên
print ("A [2] =", A [2]) # Phần tử thứ ba
print ("A [-1] =", A [-1]) # phần tử cuối cùng
 

Khi bạn chạy chương trình, kết quả đầu ra sẽ là:

A [0] = 2
A [2] = 6
A [-1] = 10

Bây giờ, hãy xem cách chúng ta có thể truy cập các phần tử của mảng hai chiều (về cơ bản là một ma trận).

 nhập numpy dưới dạng np

A = np.array ([[1, 4, 5, 12],
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]])

# Phần tử đầu tiên của hàng đầu tiên
print ("A [0] [0] =", A [0] [0])

# Phần tử thứ ba của hàng thứ hai
print ("A [1] [2] =", A [1] [2])

# Phần tử cuối cùng của hàng cuối cùng
print ("A [-1] [- 1] =", A [-1] [- 1])
 

Khi chúng tôi chạy chương trình, đầu ra sẽ là:

A [0] [0] = 1
A [1] [2] = 9
A [-1] [- 1] = 19

Truy cập các hàng của Ma trận

 nhập numpy dưới dạng np

A = np.array ([[1, 4, 5, 12],
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]])

print ("A [0] =", A [0]) # Hàng đầu tiên
print ("A [2] =", A [2]) # Hàng thứ ba
print ("A [-1] =", A [-1]) # Hàng cuối cùng (hàng thứ 3 trong trường hợp này)  

Khi chúng tôi chạy chương trình, đầu ra sẽ là:

A [0] = [1, 4, 5, 12]
A [2] = [-6, 7, 11, 19]
A [-1] = [-6, 7, 11, 19]

Truy cập các cột của Ma trận

 nhập numpy dưới dạng np

A = np.array ([[1, 4, 5, 12],
    [-5, 8, 9, 0],
    [-6, 7, 11, 19]])

print ("A [:, 0] =", A [:, 0]) # Cột đầu tiên
print ("A [:, 3] =", A [:, 3]) # Cột thứ tư
print ("A [:, - 1] =", A [:, - 1]) # Cột Cuối cùng (cột thứ 4 trong trường hợp này)
 

Khi chúng tôi chạy chương trình, đầu ra sẽ là:

A [:, 0] = [1 -5 -6]
A [:, 3] = [12 0 19]
A [:, - 1] = [12 0 19]

Nếu bạn không biết mã ở trên hoạt động như thế nào, hãy đọc phần ma trận của bài viết này.

Cắt ma trận

Việc cắt mảng NumPy một chiều tương tự như một danh sách. Nếu bạn không biết cách cắt lát cho danh sách hoạt động, hãy truy cập Tìm hiểu ký hiệu lát cắt của Python .

Hãy lấy một ví dụ:

 nhập numpy dưới dạng np
chữ cái = np.array ([1, 3, 5, 7, 9, 7, 5])

# Phần tử thứ 3 đến thứ 5
print (chữ cái [2: 5]) # Đầu ra: [5, 7, 9]

# Phần tử thứ 1 đến thứ 4
print (chữ cái [: - 5]) # Đầu ra: [1, 3]

Từ thứ 6 đến phần tử cuối cùng
print (chữ cái [5:]) # Đầu ra: [7, 5]

# Phần tử đầu tiên đến cuối cùng
print (các chữ cái [:]) # Đầu ra: [1, 3, 5, 7, 9, 7, 5]

# đảo ngược danh sách
print (các chữ cái [:: - 1]) # Đầu ra: [5, 7, 9, 7, 5, 3, 1]
 

Bây giờ, hãy xem cách chúng ta có thể phân chia một ma trận.

 nhập numpy dưới dạng np

A = np.array ([[1, 4, 5, 12, 14],
    [-5, 8, 9, 0, 17],
    [-6, 7, 11, 19, 21]])

print (A [: 2,: 4]) # hai hàng, bốn cột

'' 'Đầu ra:
[[1 4 5 12]
 [-5 8 9 0]]
''


print (A [: 1,]) # hàng đầu tiên, tất cả các cột

'' 'Đầu ra:
[[1 4 5 12 14]]
''

print (A [:, 2]) # tất cả các hàng, cột thứ hai

'' 'Đầu ra:
[5 9 11]
''

print (A [:, 2: 5]) # tất cả các hàng, từ cột thứ ba đến cột thứ năm

'' 'Đầu ra:
[[5 12 14]
 [9 0 17]
 [11 19 21]]
''
 

Như bạn có thể thấy, việc sử dụng NumPy (thay vì danh sách lồng nhau) giúp làm việc với ma trận dễ dàng hơn rất nhiều và chúng tôi thậm chí còn chưa hoàn thiện những điều cơ bản. Chúng tôi khuyên bạn nên khám phá gói NumPy một cách chi tiết, đặc biệt nếu bạn đang cố gắng sử dụng Python cho khoa học / phân tích dữ liệu.

Tài nguyên NumPy mà bạn có thể thấy hữu ích:


Xem thêm những thông tin liên quan đến chủ đề hình dạng của trăn ma trận

File I/O: Tích ma trận với chuyển vị của nó

  • Tác giả: thân triệu
  • Ngày đăng: 2016-05-29
  • Đánh giá: 4 ⭐ ( 9675 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn lập trình căn bản. tích ma trận với ma trận. tích ma trận với ma trận chuyển vị. thao tác với file, tập tin. thông tin đầu vào nhập từ file. viết chương trình tính tích ma trận với ma trận chuyển vị của nó.
    thân triệu channel – Let’s Grow Together!

Các dạng toán về hạng của ma trận và phương pháp giải

  • Tác giả: sangtaotrongtamtay.vn
  • Đánh giá: 3 ⭐ ( 4661 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết này Vted giới thiệu đến bạn đọc lý thuyết và hạng của ma trận kèm các ví dụ và phân loại các dạng toán từ cơ bản đến nâng cao về hạng của ma trận:

Trăn trở của một giáo viên dạy Toán

  • Tác giả: www.mathvn.com
  • Đánh giá: 4 ⭐ ( 6938 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Các Dạng Toán Về Hạng Của Ma Trận Là Gì, Hạng Của Ma Trận Là Gì

  • Tác giả: megaelearning.vn
  • Đánh giá: 5 ⭐ ( 2490 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết này Vted giới thiệu đến bạn đọc lý thuyết và hạng của ma trận kèm các ví dụ và phân loại các dạng toán từ cơ bản đến nâng cao về hạng của ma trận:1, Tìm hạng của ma trận cho trướcVí dụ 1: Tìm hạng của ma trận $A = left( {egin{array}{*{20}{c}} 1&0&{ – 1}&2&{ – 1}\ 2&{ – 1}&3&1&3\ 3&2&0&{ – 1}&2\ 2&3&{ – 4}&0&{ – 2} end{array}}
    ight)

Các dạng toán về hạng của ma trận và phương pháp giải

  • Tác giả: vted.vn
  • Đánh giá: 5 ⭐ ( 8083 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết này Vted giới thiệu đến bạn đọc lý thuyết và hạng của ma trận kèm các ví dụ và phân loại…

Phân tích hình dạng mode của dao động Phân tích tần số theo ma trận mềm

  • Tác giả: toc.123docz.net
  • Đánh giá: 3 ⭐ ( 8623 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: – Tại 123doc thư viện tài liệu trực tuyến Việt Nam

  • Tác giả: sami.hust.edu.vn
  • Đánh giá: 3 ⭐ ( 9214 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Tạo các số ngẫu nhiên duy nhất từ ​​1 đến 100 - số ngẫu nhiên javascript từ 1 đến 100