Python vẽ mảng hai chiều

Để vẽ đồ thị bằng Python, chúng ta sẽ sử dụng thư viện Matplotlib. Matplotlib được sử dụng cùng với dữ liệu NumPy để vẽ bất kỳ loại biểu đồ nào. Từ matplotlib, chúng tôi sử dụng chức năng cụ thể i. e. pyplot[], được sử dụng để vẽ dữ liệu hai chiều

Các chức năng khác nhau được sử dụng được giải thích bên dưới

  • np. sắp xếp [bắt đầu, kết thúc]. Hàm này trả về các giá trị cách đều nhau từ khoảng [bắt đầu, kết thúc]
  • plt. Tiêu đề[]. Nó được sử dụng để đặt tiêu đề cho biểu đồ. Tiêu đề được truyền dưới dạng tham số cho chức năng này
  • plt. xnhãn []. Nó đặt tên nhãn ở trục X. Tên của trục X được truyền làm đối số cho hàm này
  • plt. nhãn y []. Nó đặt tên nhãn ở trục Y. Tên của trục Y được truyền làm đối số cho hàm này
  • plt. kịch bản[]. Nó vẽ các giá trị của các tham số được truyền cho nó cùng nhau
  • plt. buổi bieu diễn[]. Nó hiển thị tất cả các biểu đồ cho bàn điều khiển

ví dụ 1

Python3




y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
5

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
6
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
7

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
6
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
9

 

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
0

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
1
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
2
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
3
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
4
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
61
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
62

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
63______92
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
1____866
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
1

 

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
68

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
69
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
70
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
62

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
72
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
73
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
62

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
75
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
76______862

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
78
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
2____860
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
62

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
62

 
Đầu ra.

ví dụ 2

Python3




y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
63

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
6
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
7

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
6
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
9

 

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
0

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
1
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
2
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
3
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
4
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
61
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
62

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
63
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
2
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
98
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
99
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
01
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
03
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
05
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
07
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
09
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
11
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
13
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
15
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
60
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
99
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
18

Tuần này liên quan đến mảng 2 chiều [2-d]. Mảng 2 chiều rất hữu ích vì chúng cho phép biểu diễn dữ liệu phức tạp hơn trong máy tính, chẳng hạn như ma trận và hình ảnh. Chúng cũng cho phép dữ liệu liên quan [ví dụ: phần mở rộng và lực trong thí nghiệm định luật Hooke] được căn chỉnh. Trong công việc của tuần này, bạn sẽ tạo một số mảng và ma trận 2 chiều và thực hiện một số phép tính, củng cố tài liệu mà bạn đã gặp trong các lớp toán

Tóm tắt cú pháp

Xác định mảng 2 chiều

HàmCú phápXác định mảng 2 chiều
y,x = mgrid[0:5, 0:5]
print[x]
print[y]
8Xác định mảng 2 chiều gồm các số 0
y,x = mgrid[0:5, 0:5]
print[x]
print[y]
9Xác định mảng 2 chiều gồm các số 1
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
0Xác định lưới 2 chiều gồm các số
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
1Xếp chồng các mảng 1 chiều để tạo thành mảng 2 chiều
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
2

Xác định mảng 2 chiều

HàmCú phápTrả về mục nhập của mảng 2-d
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
3Trả về một phần của mảng 2-d
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
4trả về mục nhập có bước lớn hơn một
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
51d lát của mảng 2-d
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
6trả về tất cả mục nhập dưới dạng mảng 1-d
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
7

ma trận

HàmCú pháptạo ma trận
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
8đảo ngược ma trận
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
9chuyển vị trí ma trận
y,x = mgrid[0:5, 0:5]
print[x]
print[y]
20giá trị riêng và vectơ riêng của ma trận
y,x = mgrid[0:5, 0:5]
print[x]
print[y]
21

Vẽ mảng 2 chiều

HàmCú pháptạo biểu đồ đường viền của dữ liệu 2 chiều
y,x = mgrid[0:5, 0:5]
print[x]
print[y]
22hiển thị mảng 2 chiều
y,x = mgrid[0:5, 0:5]
print[x]
print[y]
23Hiển thị thanh màu
y,x = mgrid[0:5, 0:5]
print[x]
print[y]
24

bảng tính

mảng hai chiều

Mảng một chiều là một "danh sách" các số được lập chỉ mục, vì vậy mỗi "khối" trong mảng chứa một số. Mảng hai chiều mở rộng khái niệm này sao cho mỗi "khối" trong mảng một chiều chứa một mảng một chiều khác

Mảng 1 chiều

Chỉ số012345678Value12. 32. 35. 277. 311. 255. 274. 22. 99

Để nhập cái này vào Python, chúng ta sẽ gõ

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
7

Ghi chú. Ở trên, đầu vào của hàm

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
25 là một danh sách các số [được biểu thị bằng dấu ngoặc vuông]

Vì mảng 2 chiều là "danh sách các mảng", trong đó mỗi hàng là một mảng và nó được thể hiện tốt trên bảng 2 chiều

012012. 32. 35. 2122. 323. 2862-2. 333

Tạo mảng 2 chiều

Như với mảng 1-d, có một số cách để tạo mảng 2-d

  1. Rõ ràng điền vào các yếu tố bạn mong muốn. Ví dụ: để tạo mảng 2 chiều được cung cấp ở trên trong python, bạn sẽ nhập
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    9
  2. Chúng tôi cũng có thể cung cấp một mảng 2D gồm 0 hoặc 1 cho bất kỳ số lượng hàng và cột nhất định nào [ví dụ: 32 hàng và 40 cột] bằng cách sử dụng các hàm
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    26 và
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    27 của NumPy.
    y,x = mgrid[0:5:0.1, 0:5:0.1]
    print[x]
    print[y]
    2
  3. Hàm mgrid[] có thể được sử dụng để tạo mảng 2 chiều theo cách tương tự mà hàm
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    28 có thể được sử dụng cho mảng 1 chiều.
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    29 sẽ trả về hai mảng 2 chiều, một mảng chứa tọa độ x và mảng còn lại chứa tọa độ y. Ví dụ.
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    Lưu ý. chúng tôi đã cố tình yêu cầu y,x = mgrid[0. 5, 0. 5] chứ không phải x,y =. Hãy cẩn thận với điều này.
    Điều này sẽ cho mảng x sẽ có 5 hàng, mỗi hàng chứa [0 1 2 3 4], trong khi mảng y sẽ có một hàng [0 0 0 0 0] theo sau là [1 1 . Đây giống như một phiên bản hai chiều của arange trong đó arange[0, 5] sẽ cho [0 1 2 3 4].
    Giống như với arange, bạn có thể thay đổi kích thước bước [mặc định là 1], vì vậy_______2sẽ trả về hai mảng có các mục 50x50. x sẽ có các giá trị, cách đều nhau từ 0 đến 5, theo các bước 0. 1, theo hướng của hàng. Tương tự, y sẽ có giá trị từ 0 đến 5 nhưng theo hướng cột. Trong các ví dụ ở đây, chúng tôi đã chọn để có một mảng vuông [cùng số điểm trong x và y], nhưng điều đó là không cần thiết.
  4. y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    29 cũng có thể cho mảng với số điểm xác định, tương tự như
    y,x = mgrid[0:5:0.1, 0:5:0.1]
    print[x]
    print[y]
    81. Ví dụ: để tạo một mảng có 10 điểm theo hướng x và 6 điểm theo hướng y.
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    2

Truy cập các mục trong mảng 2 chiều

Tương tự như mảng 1D, các phần tử mảng 2D có thể được xử lý riêng lẻ hoặc có thể xử lý các phần phụ, cả để đặt giá trị hoặc trả về giá trị. Ở đây, chúng tôi giới thiệu các cách truy vấn mảng 2 chiều, nhiều cách trong số đó đã quen thuộc với các phương pháp chúng ta đã học đối với mảng 1 chiều trước đây

  1. Bạn có thể in nội dung của mảng 2d bằng print____28
  2. Có một số cách khác nhau để hiểu kích thước của mảng. Lệnh size sẽ cung cấp cho bạn tổng số mục trong mảng.
    y,x = mgrid[0:5:0.1, 0:5:0.1]
    print[x]
    print[y]
    1Lệnh shape cho bạn biết độ dài của từng kích thước trong mảng, ví dụ
    y,x = mgrid[0:5:0.1, 0:5:0.1]
    print[x]
    print[y]
    2Lệnh len cho biết độ dài của kích thước đầu tiên trong mảng -- nó không cung cấp thông tin về bất kỳ kích thước bổ sung nào
    y,x = mgrid[0:5:0.1, 0:5:0.1]
    print[x]
    print[y]
    3
  3. Như với mảng 1d, bạn có thể truy cập bất kỳ mục nhập nào bạn muốn, Thứ tự phải quen thuộc từ các ma trận trong đó M21 xác định mục nhập ở hàng thứ hai, cột đầu tiên. Sự khác biệt với python là việc đánh số bắt đầu từ số không. Ví dụ
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    90
  4. Bạn cũng có thể truy cập các mục bắt đầu từ cuối, e. g.
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    91
  5. Bạn có thể truy cập vào một loạt các mục nhập bằng cách chỉ định phạm vi mà bạn quan tâm, ví dụ_______192
  6. Tổng quát hơn, bạn cũng có thể chỉ định mọi mục nhập khác, mọi mục nhập thứ 5, v.v. Trong trường hợp 1D, bạn đã sử dụng cú pháp [bắt đầu. dừng lại. bươc]. Trong trường hợp 2D, cú pháp là [start_row. dừng_hàng. step_row, start_column. cột dừng. bước_cột]. Như một ví dụ, ______193Ghi chú. Trong ví dụ trên, chỉ có kích thước bước là 2 được chỉ định - hàng/cột bắt đầu và kết thúc không được chỉ định, trong trường hợp đó, chúng được coi là cột đầu tiên và cột cuối cùng của mảng 2d

Mảng cắt lát

Mảng 2D có thể được "cắt" để trả về mảng 1D chứa một hàng hoặc cột của bản gốc. Vì vậy, ví dụ, hàng hoặc cột thứ 0 [Python bắt đầu mảng với chỉ số 0] được cung cấp bởi

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
94

Thường rất hữu ích khi trích xuất các lát 1 chiều của mảng 2 chiều để nghiên cứu thêm

Tính toán với mảng 2d

Mảng 2-d có thể được nhân giống như mảng 1-d; . e. số đơn] [cộng, trừ, chia, nâng lên lũy thừa, tội lỗi, v.v. ] làm việc với mảng 2D theo từng phần tử

Có thể tìm mục nhập tối đa trong mảng 2 chiều, tuy nhiên, nếu bạn thử sử dụng hàm

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
82 của python, bạn sẽ gặp lỗi

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
95

Giá trịError. Giá trị thật của một mảng có nhiều hơn một phần tử là không rõ ràng. Sử dụng một. bất kỳ [] hoặc một. tất cả các[]. Điều này là do hàm

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
82 của Python không thể hoạt động với các đối tượng mảng NumPy 2d

Để tính giá trị tối đa trong mảng NumPy 2d, thay vào đó, bạn phải sử dụng phương thức max[] của mảng

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
96

Bạn có thể tính tổng các mục của mảng 2 chiều bằng cách sử dụng tính tổng và cũng có thể chỉ tính tổng các hàng hoặc cột bằng cách chỉ định trục mà bạn muốn tính tổng theo

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
97

Ví dụ, kiểm tra sự thật cũng hoạt động với mảng 2 chiều

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
98

Lưu ý rằng dòng đầu tiên trả về mảng 2 chiều của

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
84 trong khi dòng thứ hai trả về mảng giá trị 1 chiều. Ví dụ, bạn cũng có thể cắt một mảng dựa trên các giá trị có trong mảng thứ hai

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
99

Đoạn mã trên được mô tả thêm bằng sơ đồ bên dưới

Đọc và Viết mảng 2 chiều

Đọc mảng 2 chiều từ tệp

Trong nhiều trường hợp, dữ liệu trong tệp hoặc bảng tính sẽ có nhiều cột và đây có nhiều khả năng là loại dữ liệu bạn tạo trong phòng thí nghiệm. Tuần trước, chúng ta đã học cách đọc và ghi dữ liệu 1-d, ở đây chúng ta xem xét dữ liệu 2-d

Ví dụ: chúng tôi đã tạo một tệp có dữ liệu đã được sử dụng trước đó cho biểu đồ định luật Hooke. Nó nằm trong tệp "Dữ liệu định luật Hooke. xls" và được lưu lại dưới dạng cả hai tab [. txt] và được phân tách bằng dấu phẩy [. tệp csv]. Mở bất kỳ thứ nào trong số này trong Excel, tất cả chúng đều giống nhau. Nhưng bây giờ, nếu bạn nhìn vào Notepad, bạn sẽ thấy một số khác biệt. bên trong. txt, các cột được phân tách bằng các tab trong khi. tệp csv có dấu phẩy phân tách

Có thể đọc các tệp được phân tách bằng dấu phẩy hoặc tab bằng cách sử dụng

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
85, bạn chỉ cần chỉ định dấu phân cách [dấu phẩy, tab, dấu cách, khác] để máy tính biết cách ngắt dòng

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
20

Ghi chú. Trong trường hợp đầu tiên, dấu phân cách không cần thiết vì tab [hoặc bất kỳ khoảng trắng nào] là định dạng dự kiến

Nhìn vào spring trong biến explorer, bạn sẽ thấy đó là một mảng 2 chiều có 7 hàng và 2 cột

Ngoài ra, chúng ta có thể sử dụng một thủ thuật nữa để khiến

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
85 trả về một tập hợp các mảng 1-d. Để làm điều này, chúng tôi sử dụng tham số "unpack=True" như

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
21

Điều này đã giải nén từng cột thành một mảng 1-d riêng biệt

Hàm

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
85 có các tùy chọn hữu ích khác, chẳng hạn như đặt loại dữ liệu hoặc chỉ sử dụng các cột nhất định. Chúng tôi sẽ giới thiệu những thứ này trong những tuần sau

Viết một số cột dữ liệu

Bạn có thể sử dụng

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
88 để ghi mảng 2 chiều vào tệp. Để ghi dữ liệu mùa xuân vào một tệp mới, chỉ cần làm như sau

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
22

Nếu bạn đã "giải nén" dữ liệu thành mảng 1-d khi đọc nó, bạn cần "đóng gói lại" [i. e xếp 2 mảng 1D thành ma trận 2D] khi viết. Điều này được thực hiện bằng hàm

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
89

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
23

Vì vậy, để đặt mọi thứ lại với nhau

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
24

Tùy chọn fmt chỉ định định dạng của mỗi dòng là một dấu phẩy được in đến hai chữ số thập phân, theo sau là một tab và dấu phẩy thứ hai được in đến hai chữ số thập phân

Vẽ dữ liệu 2 chiều

Mảng 2 chiều có thể biểu thị hình ảnh "bitmap". Mỗi phần tử trong mảng 2d có thể đại diện cho một độ sáng, dễ hình dung việc tạo ảnh thang độ xám theo cách này. Hình ảnh đầy đủ màu sắc thực sự lưu trữ 3 giá trị, "đỏ", "xanh" và "xanh" cho mỗi giá trị, do đó có thể được coi là ba mảng 2D. Ngoài ra, một mảng 3D, ví dụ: 1200 phần tử x 800 phần tử [tức là độ phân giải màn hình 1200x800] x 3 phần tử có thể biểu thị hình ảnh đủ màu trên màn hình

Để tạo một hình ảnh như thế này, trước tiên chúng tôi muốn tạo các mảng x và y bằng cách sử dụng

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
29, sau đó tính giá trị "chiều cao", z, tại mỗi điểm trong x và y. Cuối cùng, chúng tôi vẽ một biểu đồ đường viền bằng cách sử dụng các giá trị của z để đưa ra các màu. Mã để làm điều này được đưa ra dưới đây

Python có thể hiển thị những hình ảnh như vậy. Mã ví dụ bên dưới tạo ra một mảng 2D lớn, sau đó tạo ra một mẫu trong đó

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
25

Hình 1. Ví dụ về biểu đồ đường viền được điền, được tạo bằng mã ở trên.

Ghi chú. Giá trị 100 trong hàm

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
11 xác định số đường viền có màu khác nhau để vẽ. Ví dụ: nếu bạn giảm giá trị này xuống 10 thì cốt truyện sẽ trở nên kém mượt mà hơn

Ghi chú. Để thay thế cho

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
11, bạn có thể sử dụng
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
13

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
26

Tại đây, bạn cần chỉ định phạm vi của x và y bằng cách sử dụng phạm vi, đồng thời yêu cầu gốc tọa độ ở phía dưới bên trái [mặc định là phía trên bên trái]. Chúng tôi cũng đã tắt nội suy dữ liệu. điều này vẽ sơ đồ dữ liệu như trong mảng, thay vì làm mịn nó trước

Tạo sơ đồ bề mặt

Một cách khác để hiển thị mảng 2 chiều là đồ thị bề mặt 3 chiều. Matplotlib, thư viện vẽ sơ đồ mà chúng tôi sử dụng trong python, có khả năng tạo nhiều loại cốt truyện 3d khác nhau, bạn có thể xem ví dụ về các loại này tại đây. Một ví dụ như vậy được hiển thị trong đoạn mã sau

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
27

Hình 2. Ví dụ về biểu đồ bề mặt khung dây có màu, được tạo bằng mã ở trên.

Ghi chú. sử dụng các tham số

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
14,
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
15 để vẽ mọi phần tử thứ n của mảng 2d. Điều này rất hữu ích khi bạn cố gắng tạo các ô bề mặt của các mảng rất lớn

Ghi chú. Các ô 3D có tính tương tác. Bạn có thể xoay chế độ xem bằng cách nhấp và kéo vào cốt truyện

ma trận

NumPy biết về một loại mảng 2D đặc biệt, ma trận. Một ma trận có thể được thiết lập giống như một mảng 2D, chỉ với hàm matrix[] thay vì array[]. Một phương pháp thay thế cũng tồn tại, yêu cầu gõ ít hơn một chút. Vì vậy, một ma trận 2D có thể được tạo bằng

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
28

Khi một ma trận đã được nhập, NumPy cho phép bạn nhân ma trận, nhân vectơ [tức là mảng 1D. ] bằng ma trận, xác định phép đổi vị, định thức và nghịch đảo. Chúng tôi sẽ lần lượt giới thiệu tất cả những điều này dưới đây

Như với tất cả các mảng trong Python, các phép toán có thể được thực hiện trên các mảng và ma trận 2D, nhưng chỉ khi chúng có hình dạng chính xác. [Hình dạng là tên trăn cho kích thước của mảng. ] Cố gắng kết hợp [cộng, trừ, v.v.] hai mảng không tương thích dẫn đến thông báo lỗi ValueError. hình dạng không phù hợp. các đối tượng không thể được phát đến một hình dạng duy nhất

Bổ sung ma trận

Chúng ta có thể thêm hai ma trận như

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
29

Phép nhân ma trận

Chúng ta có thể nhân một ma trận với một hằng số bằng cách sử dụng

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
0

và nhân các ma trận như

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
1

Hãy thử điều này với cả mảng và ma trận và đảm bảo rằng bạn hiểu sự khác biệt. Để làm điều này với mảng, bạn có thể nhập lại ma trận ở trên dưới dạng mảng hoặc đơn giản là thực hiện

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
2

nghịch đảo

Chúng ta có thể tính nghịch đảo của ma trận bằng cách sử dụng

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
3

và kiểm tra xem a nhân với nghịch đảo của nó có cho ma trận đơn vị không

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
4

Bản ngã

Chúng ta có thể tính định thức bằng cách sử dụng

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
5

chuyển vị

Xác định chuyển vị

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
6

Ghi chú. Chuyển vị là một phương thức của lớp ma trận. Nhớ lại rằng bạn đã gặp các phương pháp tuần trước. Có một số phương thức hữu ích trong lớp ma trận

MethodResult
y,x = mgrid[0:5, 0:5]
print[x]
print[y]
20Transpose
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
9Inverse
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
18[phức tạp] chuyển vị liên hợp

Vectơ riêng

Các giá trị riêng và vectơ riêng cũng có thể được xác định một cách đơn giản

y,x = mgrid[0:5, 0:5]
print[x]
print[y]
7

y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
19 sẽ là một mảng các giá trị riêng.
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
20 là một mảng 2 chiều với cột
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
21 chứa vectơ riêng đơn vị tương ứng với giá trị riêng
y,x = mgrid[0:5:0.1, 0:5:0.1]
print[x]
print[y]
22

bài tập

Hãy lưu lại các chương trình mà bạn viết để giải bài tập. Chúng tôi có thể yêu cầu bạn cho chúng tôi xem mã và chạy nó để tạo lại kết quả

1. Đọc và phân tích dữ liệu 2 cột [1 ½ điểm]

Tập tin "dữ liệu. txt" chứa tập hợp hai cột dữ liệu có tiêu đề. Chỉnh sửa mã phù hợp với đường thẳng của bạn thành

  1. Sử dụng đúng nhãn x và y, dựa trên tiêu đề trong tệp. Không cần phải viết mã để làm điều này -- bạn chỉ cần mở tệp bằng trình soạn thảo văn bản, đọc tiêu đề và nhập các giá trị trong mã của mình theo cách thủ công
  2. Đọc dữ liệu từ phần còn lại của tệp
  3. Sử dụng thông tin này để tạo một biểu đồ dữ liệu [với các trục được gắn nhãn] và thêm một đường phù hợp nhất vào đó
  4. Tạo một tệp văn bản đầu ra có chứa thông tin sau
    • Tên các cột dữ liệu đầu vào
    • Độ dài của dữ liệu
    • Cực đại và cực tiểu của dữ liệu x và y
    • Chặn và độ dốc được tính toán của đường phù hợp nhất cùng với các lỗi của chúng
    • Điện trở trong mạch

Sử dụng các kỹ thuật định dạng chuỗi để viết ra một số vị trí thập phân thích hợp trong câu trả lời của bạn

2. Vẽ mảng 2 chiều [2 điểm]

Nhớ lại rằng công thức tính độ cao của sóng có biên độ A, số sóng k và tần số góc ω là y=A sin[kx-ωt] đối với sóng truyền sang phải và y=A sin[kx+ωt] đối với sóng

  1. Sử dụng
    y,x = mgrid[0:5, 0:5]
    print[x]
    print[y]
    29, tạo mảng 2 chiều cho cả x và t trong khoảng từ 0 đến 2 theo các bước 0. 01
  2. Tạo mảng 2 chiều y cho chiều cao của sóng có biên độ đơn vị trong khi số sóng và tần số góc bằng 2π
  3. Tạo biểu đồ đường bao bằng cách sử dụng
    y,x = mgrid[0:5:0.1, 0:5:0.1]
    print[x]
    print[y]
    11 biên độ sóng so với x [trên trục x] và t [trên trục y]
  4. Tạo biểu đồ biên độ 1-d so với x tại t=0, 0. 25 và 0. 5. [Dấu. , dùng cũng được mà e. g. t==0. 25 để chọn các mục thích hợp]
  5. Tạo sóng dừng bằng cách thêm sóng thứ hai vào y với cùng biên độ, số sóng và tần số, nhưng di chuyển sang phải
  6. Vẽ biểu đồ đường bao của biên độ sóng dừng theo x và t
  7. Tạo biểu đồ biên độ 1-d so với x tại t=0, 0. 25 và 0. 5

3. Thao tác ma trận [1 ½ điểm]

Ma trận A và B được cho bởi

$$A = \begin{pmatrix} 1. 5 & ​​2\\ 0. 5 & ​​1 \end{pmatrix} B = \begin{pmatrix} 3 & -2\\ -7 & 5 \end{pmatrix} $$

Viết chương trình hỏi người dùng 8 số trên một dòng. Tách chúng và đặt chúng vào ma trận A và B. Sau đó, chương trình sẽ tính toán như sau và in ra câu trả lời

  1. A-1
  2. B-1
  3. AB
  4. [AB]-1
  5. B-1 A-1
  6. Các giá trị riêng và vectơ riêng của A

Ghi chú. chúng tôi đã không học cách in ma trận bằng cách sử dụng định dạng chuỗi từ tuần 5 [tôi. e. các "{. 2f}"], vì vậy đừng lo lắng về điều này. Ngoài ra, hãy đảm bảo bạn xác định A và B là ma trận, không phải mảng

Khi người biểu diễn đánh dấu điều này, họ sẽ nhập dữ liệu khác với A và B như đã xác định ở trên. Các ma trận trên là dữ liệu "kiểm tra" hợp lý để đảm bảo chương trình của bạn hoạt động

Bạn có thể vẽ một mảng 2D trong python không?

Matplotlib và Numpy cung cấp các mô-đun và hàm để trực quan hóa mảng 2D trong python . Để trực quan hóa một mảng hoặc danh sách trong matplotlib, chúng ta phải tạo dữ liệu mà thư viện NumPy có thể thực hiện, sau đó vẽ dữ liệu bằng matplotlib.

Làm thế nào để vẽ một mảng trong python?

Khoa học dữ liệu thực tế sử dụng Python .
Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô con
Tạo hai mảng, x và y, sử dụng numpy
Đặt tiêu đề của đường cong bằng phương thức title[]
Vẽ các điểm dữ liệu x và y, với màu đỏ
Để hiển thị hình, sử dụng phương thức show[]

Làm cách nào để vẽ một mảng d trong python?

MatPlotLib với Python .
Khởi tạo giá trị y
Tạo các điểm dữ liệu x và y bằng cách sử dụng numpy. zeros_like giúp trả về một mảng các số 0 có cùng hình dạng và kiểu như một mảng đã cho và thêm giá trị y cho các điểm dữ liệu y
Vẽ x và y với linestyle=dotted, color=red, và linewidth=5
Để hiển thị hình, sử dụng phương thức show[]

Chủ Đề