1. Trang chủ
  2. » Mẫu Slide

Slide Vector và Ma trận trong Python

27 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 199,54 KB

Nội dung

Ma trận: là một mảng 2 chiều. Trong Python mảng 2 chiều có thể xem là một List của List. Ví dụ: A= 1,2,3, 4,5,6, 7,8,9 Kích thước: Kích thước của 1 ma trận = số hàng số cột. Ví dụ: Ma trận B có 4 hàng và 3 cột, ta gọi là ma trận 4 x 3 Ta cũng có thể hiểu ma trận là một sheet với số hàng và số cột nhất định trong excel. Vector: là ma trận với 1 cột và nhiều hàng (n 1) Kích thước: (còn được gọi là chiều vector – vector dimension) là số hàng của vector.

Scientific Programming Language NGƠN NGỮ LẬP TRÌNH LẬP TRÌNH P TRÌNH KHOA HỌCC Nguyễn Mạnh Cường Scientific Programming Language BÀI TÍNH TỐN TRÊN VÉC TƠ VÀ MA TRẬN (VECTOR & MATRIX) Scientific Programming Language BÀI TÍNH TỐN TRÊN VÉC TƠ VÀ MA TRẬN BÀI - • o Array creating (tạo mảng) Creating o Array indexing (chỉ số mảng) Indexing Operation Numpy o Array operations (các thao tác mảng) • Scipy: high-level scientific computing (Đọc thêm) • Pandas: Python Data Analysis Library (Đọc thêm) Bài 5: Matrix & Vector Scientific Programming Language Create array – Tạo mảng • Tạo mảng với Numpy BÀI Creating Indexing Operation o import numpy as np o Khởi tạo mảng chiều (vector): A = np.array([1, 2, 3, 4, 5]) o Khởi tạo mảng hai chiều (matrix): B = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 8, 7, 6]]) o Các thông số: A.ndim, A.shape, len(A), A.itemsize, A.dtype, A.size Bài 5: Matrix & Vector Scientific Programming Language Create array – Tạo mảng • Tạo mảng với Numpy BÀI - o Hàm khởi tạo mảng  Creating np.arange(n), np.arange(start, end, step), Indexing Operation np.arange()  np.linspace() np.linspace(start, numpoints) np.linspace(start, end exclusive end, end, numpoints, endpoint=False) Bài 5: Matrix & Vector Scientific Programming Language Create array – Tạo mảng • Tạo mảng với Numpy BÀI - o Hàm khởi tạo mảng  Creating np.ones(), np.zeros(), np.eye(), np.diag() np.ones(n), np.ones((3,3)) np.zeros(n), np.zeros((3,3)) np.eye(n) ma trận đơn vị size n np.diag([1, 2, 3, 4]) ma trận đường Indexing Operation  np.random chéo Khởi tạo ngẫu nhiên np.random.rand(n) np.random.randn(n) Ngẫ u nhiên n phẫ n tư! [0, 1] Ngẫ u nhiên n phẫ n tư! theo phẫn bố) Gauss np.random.seed(n) Bật chê) đố) seed cho hàm random Bài 5: Matrix & Vector Scientific Programming Language Create array – Tạo mảng  BÀI TẬP 5.1 BÀI - o Tạo mảng numpy a(5) với phần tử nguyên In mảng hình; Tạo mảng b với n phần tử, phần tử nằm đoạn [1, 10] In mảng hình o Tạo ma trận c(3 x 5) số nguyên Cho biết: số chiều, kích thước chiều, kiểu phần tử mảng o Tạo ma trận đơn vị d(nxn) In ma trận hình; Tạo ma trận đường chéo e(nxn) với giá trị đường chéo lấy từ mảng chiều In mảng hình o Tạo mảng chiều f(n) với giá trị tuân theo phân bố chuẩn (Gauss) In mảng hình Creating Indexing Operation Bài 5: Matrix & Vector Scientific Programming Language Array index– Chỉ số mảng • Truy cập mảng theo số BÀI Creating Indexing Operation o Mảng 1-D a = np.array([1, 2, 3, 4, 5]) Index: i = 0, n-1 o Mảng 2-D b = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) b[0, 0] = 1, b[0, 1] = 2, b[1, 2] = 7, • Mảng 0-D hay Scalar: phần tử mảng a = 42 Bài 5: Matrix & Vector Scientific Programming Language Array index– Chỉ số mảng • Truy cập mảng theo số BÀI Creating o Slicing: sử dụng dấu ‘:’ list a = [1 5] • a[1:3]  [2 3], Indexing • a[:]  [1 5] Operation • a[2:]  [3 5] • a[:2]  [1 2] • a[start : end] • a[start : end step] : Bài 5: Matrix & Vector Scientific Programming Language Array index– Chỉ số mảng • Truy cập mảng theo số BÀI Creating o Slicing mảng hai chiều: • [6, 7, 8, 9, 10]]) Indexing Operation a = np.array([[1, 2, 3, 4, 5], • print(a[1, 1:4])  [7, 8, 9] a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) print(a[0:2, 2]) •  [3, 8] arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) print(arr[0:2, 1:4])  [[2 3 4] [7 8 9]] Bài 5: Matrix & Vector 10 Scientific Programming Language BÀI Creating Array operation – Thao tác mảng • Các thao tác mảng o Numerical operations: Các thao tác số học  Indexing Thao tác tất phần tử (Scalar) a=a+3 a = a-3 a=a+b a = a-b a>b a == b Operation  a = a*3 a = a*b a = a/3 a = a/b a = a**3 Nhân hai ma trận c = a.dot(b) Số cột a phải số dòng b Bài 5: Matrix & Vector 13 Scientific Programming Language BÀI Creating Indexing Array operation – Thao tác mảng • Các thao tác mảng o Reshape: Định hình lại mảng  Shape: số phần tử chiều  Reshape: From 1-D to 2-D a = Operation np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) Cẫ n đa!m ba!o số) phẫ n tư! cu!a ma!ng a b b = a.reshape(4, 3)  b(4×3)  flattening: from 2-D to 1-D a = np.array([[1, 2, 3], [4, 5, 6]]) b = np.reshape(a, -1) 6] b = a.flatten()  b = [1 Bài 5: Matrix & Vector 14 Scientific Programming Language BÀI Creating Indexing Operation Array operation – Thao tác mảng  BÀI TẬP 5.3 o Nhập vào từ bàn phím hai mảng số nguyên a(n) b(n) kích thước In hai mảng hình o Cho biết số mà hai phần tử tương ứng hai mảng o Tăng phần tử b lên đơn vị, in mảng kết hình o Chuyển mảng b thành mảng hai chiều, cho biết ndim shape mảng kết o Chuyển mảng hai chiều mảng chiều, in kết hình Bài 5: Matrix & Vector 15 Scientific Programming Language BÀI Creating Array operation – Thao tác mảng • Các thao tác mảng o Iterating Arrays: Duyệt mảng  Indexing Duyệt mảng chiều a = np.array([1, 2, 3]) for x in a:  print(x) #duyệt theo giá trị for i in range(a.size):  print(a[i]) Operation  số Duyệt mảng chiều #duyệt theo chi a = np.array([[1, 2, 3], [4, 5, 6]]) for x in a: for i in range(len(a)):   for y in x:      for j in range(a.itemsize): print(y)    print(a[i, j]) Bài 5: Matrix & Vector 16 Scientific Programming Language BÀI Creating Array operation – Thao tác mảng • Các thao tác mảng o Iterating Arrays: Duyệt mảng  a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(a): print(x) Indexing Operation Duyệt mảng nditer()  Duyệt mảng với số ndenumerate() a = np.array([1, 2, 3]) a = np.array([[1, 2, 3, 4], for idx, [5, 6, 7, 8]]) x in np.ndenumerate(a): for idx, x in np.ndenumerate(a):    print(idx, x)   print(idx, x) Bài 5: Matrix & Vector 17 Scientific Programming Language BÀI Creating Array operation – Thao tác mảng • Các thao tác mảng o Join & Split: Nối, tách mảng  Nối mảng với concatenate() a = np.array([1, 2, 3]) Indexing b = np.array([4, 5, 6]) c = np.concatenate((a, b)) Operation print(c)   c = [1 6] Nối mảng hai chiều: a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) axis=1 a b axis=0 a b c = np.concatenate((a, b), axis=1) Bài 5: Matrix & Vector 18 Scientific Programming Language BÀI Creating Indexing Array operation – Thao tác mảng • Các thao tác mảng o Join & Split: Nối, tách mảng  Tách mảng thành nhiều mảng với array_split() a = np.array([1, 2, 3, 4, 5, 6]) b = np.array_split(a, 3)  b chứa ma 2ng b[0] = [1 2], b[1] = [3 4], b[2] = [5 6] Operation  Tách mảng hai chiều: Tách theo chiều ngang a = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]) b = np.array_split(a, 3)  b[0](thêm = [[1 axis=12], tách[3 theo4]] chiều dọc) b[1] = [[5 6], [7 8]] Bài 5: Matrix & Vector 19 Scientific Programming Language BÀI Creating Indexing Operation Array operation – Thao tác mảng  BÀI TẬP 5.4 o Nhập vào mảng a gồm n phần tử nguyên từ phím Mảng a gọi tăng a[i] = a[i+1], tăng ngặt a[i] < a[i+1], giảm ngặt a[i] > a[i+1] i = n-1; lại chưa Hãy kiểm tra xem mảng a chưa? Sắp theo kiểu gì? o Tách mảng a thành mảng b, c, d In ba mảng kết hình o Nối ba mảng lại theo thứ tự d, c, b thu mảng e in kết hình o Chuyển mảng e thành mảng hai chiều, sau cắt hai dịng In kết Bài 5: Matrix & Vector 20

Ngày đăng: 27/07/2023, 23:50

w