Trong bài học này chúng ta sẽ tạo mảng bằng lệnh lặp, sau này chúng ta sẽ thấy cách sử dụng Numpy
Ma trận Python – bài tập đầu tiên
Trong bài tập đầu tiên này, chúng ta sử dụng vòng lặp for kép để tạo mảng với các số ngẫu nhiên
Cụ thể, chúng tôi sẽ tạo ma trận 3 x 3, nhưng sau đó chúng tôi sẽ tổng quát hóa thuật toán bằng cách tạo ma trận có kích thước tùy chỉnh
Đầu tiên do phải tạo số ngẫu nhiên nên mình import module random và cụ thể là randint
Sau đó, tôi tạo một danh sách trống và với vòng lặp for đầu tiên, tôi duyệt qua tất cả các dòng. Đối với mỗi dòng, nó sử dụng một vòng lặp khác và tôi tạo một danh sách gồm 3 số ngẫu nhiên. Ở cuối vòng lặp trong cùng, tôi sử dụng phương thức chắp thêm của Python để nối danh sách đã tạo vào ma trận bắt đầu
Đây là một giải pháp khả thi để tạo ma trận trong Python
from random import randint matrix = [] for i in range(3): n = [] for j in range(3): number = randint(1,100) n.insert(i,number) matrix.append(n) print(matrix)Chúng ta có thể điền vào một mảng bằng vòng lặp while, nhưng đó không phải là giải pháp tối ưu. Trên thực tế, hãy nhớ rằng khi chúng ta biết chính xác số lần vòng lặp phải được thực hiện, chúng ta sử dụng for. Trong khi được sử dụng thay thế khi tôi cần đáp ứng một điều kiện
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix)Bây giờ chúng ta hãy tạo một hàm trong Python để tạo ma trận
from random import randint def matrix(x,y): matrix = [] for i in range(x): n = [] for j in range(y): number = randint(1,100) n.insert(i,number) matrix.append(n) return matrix print(matrix(3,3))Bằng cách này, chúng ta có thể tạo ma trận có kích thước bất kỳ
Ma trận Python – bài tập thứ hai
Chúng tôi yêu cầu người dùng làm đầu vào cho kích thước của ma trận được tạo
from random import randint def matrix(x,y): matrix = [] for i in range(x): n = [] for j in range(y): number = randint(1,100) n.insert(i,number) matrix.append(n) return matrix x = int(input('enter the x dimension of the matrix ')) y = int(input('enter the y dimension of the matrix ')) print(matrix(x,y))Hãy thử mã vừa được tạo trong trình biên dịch bên dưới
Trong bài học Python này, chúng ta đã phát triển một ma trận đơn giản bằng cách sử dụng vòng lặp for kép. Trong vài bài tới chúng ta sẽ nghiên cứu về Numpy
Không nên sử dụng lớp này nữa, ngay cả đối với đại số tuyến tính. Thay vào đó hãy sử dụng các mảng thông thường. Lớp học có thể bị xóa trong tương lai
Trả về một ma trận từ một đối tượng dạng mảng hoặc từ một chuỗi dữ liệu. Ma trận là một mảng 2-D chuyên dụng vẫn giữ được bản chất 2-D của nó thông qua các phép toán. Nó có một số toán tử đặc biệt, chẳng hạn như from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 4 (nhân ma trận) và from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 5 (lũy thừa ma trận)
Thông số . dữ liệu array_like hoặc stringNếu from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 6 là một chuỗi, nó được hiểu là một ma trận có dấu phẩy hoặc dấu cách để phân tách các cột và dấu chấm phẩy phân tách các hàng
dtype loại dữ liệuKiểu dữ liệu của ma trận đầu ra
bản sao boolNếu from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 6 đã là một from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 8, thì cờ này xác định liệu dữ liệu có được sao chép (mặc định) hay liệu chế độ xem có được tạo hay không
Xem thêm
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 9ví dụ
>>> a = np.matrix('1 2; 3 4') >>> a matrix([[1, 2], [3, 4]])
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]])
Thuộc tính . from random import randint def matrix(x,y): matrix = [] for i in range(x): n = [] for j in range(y): number = randint(1,100) n.insert(i,number) matrix.append(n) return matrix print(matrix(3,3)) 0Trả về self như một đối tượng from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 8
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]]) 0Trả lại bản thân như một from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 8 phẳng
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]]) 2Trả về chuyển vị liên hợp (phức tạp) của self
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]]) 3Trả về nghịch đảo (nhân) của tự nghịch đảo
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]]) 4Trả về chuyển vị của ma trận
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]]) 5Đối tượng cơ sở nếu bộ nhớ là từ một số đối tượng khác
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]]) 6Một đối tượng để đơn giản hóa sự tương tác của mảng với mô-đun ctypes
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 6Đối tượng bộ đệm Python trỏ đến đầu dữ liệu của mảng
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]]) 8Kiểu dữ liệu của các phần tử trong mảng
>>> np.matrix([[1, 2], [3, 4]]) matrix([[1, 2], [3, 4]]) 9Thông tin về cách bố trí bộ nhớ của mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 40Trình lặp 1-D trên mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 41Phần ảo của mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 42Độ dài của một phần tử mảng theo byte
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 43Tổng số byte được tiêu thụ bởi các phần tử của mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 44Số kích thước mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 45Phần thực của mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 46Một bộ kích thước mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 47Số phần tử trong mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 48Tuple byte để bước vào mỗi chiều khi duyệt qua một mảng
phương pháp
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 49([trục, ngoài])
Kiểm tra xem tất cả các phần tử ma trận dọc theo một trục nhất định có đánh giá là True hay không
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 50([trục, ngoài])
Kiểm tra xem bất kỳ phần tử mảng nào dọc theo một trục đã cho có đánh giá là True hay không
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 51([trục, ngoài])
Chỉ số của các giá trị tối đa dọc theo một trục
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 52([trục, ngoài])
Chỉ số của các giá trị tối thiểu dọc theo một trục
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 53(kth[, trục, loại, thứ tự])
Trả về các chỉ mục sẽ phân vùng mảng này
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 54([trục, loại, thứ tự])
Trả về các chỉ mục sẽ sắp xếp mảng này
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 55(dtype[, order, cast, subok, copy])
Bản sao của mảng, chuyển sang một loại được chỉ định
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 56([tại chỗ])
Hoán đổi byte của các phần tử mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 57(lựa chọn[, ngoài, chế độ])
Sử dụng một mảng chỉ mục để xây dựng một mảng mới từ một tập hợp các lựa chọn
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 58([tối thiểu, tối đa, hết])
Trả về một mảng có giá trị giới hạn ở from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 59
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 60(điều kiện[, trục, ngoài])
Trả về các lát đã chọn của mảng này dọc theo trục đã cho
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 61()
Phức hợp-liên hợp tất cả các yếu tố
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 62()
Trả về liên hợp phức tạp, yếu tố khôn ngoan
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 63([đặt hàng])
Trả về một bản sao của mảng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 64([axis, dtype, out])
Trả về tích lũy của các phần tử dọc theo trục đã cho
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 65([axis, dtype, out])
Trả về tổng tích lũy của các phần tử dọc theo trục đã cho
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 66([offset, axis1, axis2])
Trả về các đường chéo đã chỉ định
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 67 (tập tin)
Kết xuất một mảng của mảng vào tệp đã chỉ định
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 68()
Trả về dưa của mảng dưới dạng một chuỗi
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 69 (giá trị)
Điền vào mảng với một giá trị vô hướng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 60([đặt hàng])
Trả về một bản sao phẳng của ma trận
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 61()
Trả về self như một đối tượng from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 8
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 63()
Trả lại bản thân như một from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 8 phẳng
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 65()
Trả về chuyển vị liên hợp (phức tạp) của self
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 66()
Trả về nghịch đảo (nhân) của tự nghịch đảo
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 67()
Trả về chuyển vị của ma trận
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 68(dtype[, offset])
Trả về một trường của mảng đã cho dưới dạng một loại nhất định
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 69(*đối số)
Sao chép một phần tử của một mảng sang một đại lượng Python tiêu chuẩn và trả về nó
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 80(*đối số)
Chèn vô hướng vào một mảng (vô hướng được chuyển thành dtype của mảng, nếu có thể)
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 81([trục, ngoài])
Trả về giá trị lớn nhất dọc theo một trục
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 82([axis, dtype, out])
Trả về giá trị trung bình của các phần tử ma trận dọc theo trục đã cho
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 83([trục, ngoài])
Trả về giá trị nhỏ nhất dọc theo một trục
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 84([new_order])
Trả về mảng có cùng dữ liệu được xem với thứ tự byte khác
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 85()
Trả về các chỉ số của các phần tử khác không
from random import randint matrix = [] i=0 while i < 3: j = 0 n = [] while j < 3: number = randint(1,100) n.insert(i,number) j = j+1 matrix.append(n) i = i+1 print(matrix) 86(kth[, trục, loại, thứ tự])
Sắp xếp lại các phần tử trong mảng sao cho giá trị của phần tử ở vị trí thứ k bằng vị trí của nó trong một mảng đã sắp xếp