Bạn có thể nhân hai mảng trong Python không?
Đôi khi, bạn có thể cần lưu cục bộ đối tượng Python của mình để sử dụng sau hoặc Chuyển mạng. Python có các thư viện tuyệt vời để tuần tự hóa như Json và Pickle Show
Tuần tự hóa đang lưu trữ các cấu trúc dữ liệu trong chương trình để chúng không biến mất sau khi chương trình kết thúc Ngoài ra còn có thư viện soái ca nhưng nó nguyên thủy hơn và không thể xử lý một số kỹ thuật nhất định như thể hiện lớp và đệ quy. Marshal gần với json hơn trong phạm vi tuần tự hóa của nó Vì vậy, khi nào bạn sẽ sử dụng dưa chua, cpickle, json hoặc ujson? cpickle và ujson là các phiên bản nhanh hơn của các thư viện tương ứng tận dụng lợi thế của việc triển khai C trong Python. Vì vậy, chúng sẽ luôn thuận lợi vì lý do tốc độ Ngoài ra, json là một phiên bản tuần tự hóa an toàn và dễ đọc hơn so với pickle đi kèm với chi phí tốc độ Mặc dù bạn có thể xử lý hầu hết mọi cấu trúc dữ liệu trong Python bằng Json nhưng nó sẽ không hiệu quả với các tệp lớn hoặc các đối tượng không phổ biến. Mặt khác, Pickle hoạt động ở một điểm tuyệt vời, nơi bạn muốn làm việc với các tệp lớn (nhiều GB) và vẫn không muốn bị làm phiền với các giải pháp cơ sở dữ liệu Vấn đề là tùy thuộc vào ứng dụng của bạn, bạn có thể phải coi chừng các lỗ hổng bảo mật mà dưa đưa vào hệ thống, vì vậy, thông thường nên tìm kiếm các giải pháp cơ sở dữ liệu hoặc json trước khi sử dụng dưa khi có thể Đây là câu trả lời của câu hỏi. NumPy cho phép bạn nhân hai mảng mà không cần vòng lặp for. Đây là một ví dụ về _
Câu hỏi trên có liên quan đến “Trắc nghiệm kỹ năng LinkedIn (Ngôn ngữ lập trình) của LinkedIn“. Bạn có thể tìm thấy tất cả các câu hỏi và câu trả lời được cập nhật liên quan đến “Bài kiểm tra kỹ năng LinkedIn (Ngôn ngữ lập trình) của LinkedIn” trên trang “Bài kiểm tra kỹ năng LinkedIn (Ngôn ngữ lập trình) của LinkedIn”. Nếu bạn tìm thấy bản cập nhật trong câu hỏi hoặc câu trả lời, hãy bình luận trên trang này và cho chúng tôi biết. Chúng tôi sẽ cập nhật đáp án trong thời gian sớm nhất Trong hướng dẫn này, tôi sẽ giải thích cách sử dụng hàm nhân Numpy – AKA np. nhân – để nhân các ma trận với nhau Tôi sẽ giải thích cú pháp của np. nhân lên, cách thức hoạt động của hàm và cách sử dụng nó Nếu bạn cần một cái gì đó cụ thể, bạn có thể nhấp vào bất kỳ liên kết nào sau đây Mục lục Vâng. Chúng ta hãy đi đến đó Giới thiệu nhanh về Numpy MultiplyNhư bạn có thể đoán, hàm nhân Numpy nhân các ma trận với nhau Bạn có thể sử dụng np. nhân để nhân hai mảng có cùng kích thước với nhau. Cái này tính toán một thứ gọi là sản phẩm Hadamard. Trong tích Hadamard, hai đầu vào có hình dạng giống nhau và đầu ra chứa tích từng phần tử của mỗi giá trị đầu vào Bạn cũng có thể sử dụng np. nhân để nhân một ma trận với một vectơ. Nếu bạn nhân một ma trận với một vectơ (e. g. , mảng nhiều chiều bằng mảng ít chiều hơn), Numpy sẽ thực hiện quảng bá Cả hai kỹ thuật đều khá đơn giản và tôi sẽ chỉ cho bạn các ví dụ về cả hai Nhưng trước tiên, hãy xem cú pháp Cú pháp của np. nhânCú pháp của hàm nhân Numpy rất đơn giản Hãy nhớ rằng cú pháp này giả định rằng bạn đã nhập Numpy bằng mã # CREATE 1D 'VECTOR' vector_1d = np.array([10,20,30]) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9 numbers_1_to_9 = np.arange(start = 1, stop = 10) matrix_2d_ordered = numbers_1_to_9.reshape((3,3)) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED np.random.seed(22) matrix_2d_random = np.random.choice(size = (3,3), a = numbers_1_to_9, replace = False)0 Định dạng của các mảng đầu vàoLưu ý rằng có hai đối số đầu vào cho hàm mà tôi đã đặt tên là # CREATE 1D 'VECTOR' vector_1d = np.array([10,20,30]) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9 numbers_1_to_9 = np.arange(start = 1, stop = 10) matrix_2d_ordered = numbers_1_to_9.reshape((3,3)) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED np.random.seed(22) matrix_2d_random = np.random.choice(size = (3,3), a = numbers_1_to_9, replace = False)1 và # CREATE 1D 'VECTOR' vector_1d = np.array([10,20,30]) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9 numbers_1_to_9 = np.arange(start = 1, stop = 10) matrix_2d_ordered = numbers_1_to_9.reshape((3,3)) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED np.random.seed(22) matrix_2d_random = np.random.choice(size = (3,3), a = numbers_1_to_9, replace = False)1. Đây phải là các mảng Numpy hoặc các đối tượng giống như mảng, chẳng hạn như danh sách Python Ngoài ra, có một số hạn chế về hình dạng của mảng đầu vào Một cách để sử dụng np. nhân lên, là để hai mảng đầu vào có hình dạng giống hệt nhau (i. e. , chúng có cùng số hàng và số cột). Nếu các mảng đầu vào có cùng hình dạng, thì hàm nhân Numpy sẽ nhân các giá trị của đầu vào theo cặp Ngoài ra, nếu hai mảng đầu vào không có cùng kích thước, thì một trong các mảng phải có hình dạng có thể được truyền qua mảng kia Truyền phát hơi phức tạp để hiểu nếu bạn là người mới bắt đầu sử dụng Numpy, vì vậy tôi sẽ chỉ cho bạn một ví dụ thông số bổ sungNgoài hai đối số đầu vào, có một vài tham số tùy chọn cho hàm nhân Numpy
Những thứ này hơi hiếm khi được sử dụng, nhưng vì vậy tôi sẽ không giải thích chúng ở đây Đầu ra của np. nhânĐầu ra của np. multi là một mảng Numpy mới chứa tích phần tử của các mảng đầu vào Phải nói rằng, có một trường hợp đặc biệt cho vô hướng. nếu cả hai đầu vào cho np. nhân là các giá trị vô hướng, thì đầu ra sẽ là một giá trị vô hướng ví dụ. cách tính nhân các mảng Numpy với nhauBây giờ, chúng ta hãy xem xét một số ví dụ ví dụ mã sơ bộ. Nhập Numpy và tạo mảngTrước khi chạy bất kỳ ví dụ nào, bạn sẽ cần chạy một số mã sơ bộ Cụ thể, trước khi bạn chạy bất kỳ ví dụ nào, bạn sẽ cần nhập Numpy và bạn sẽ cần tạo một số mảng Numpy mà chúng ta có thể làm việc với Nhập NumpyĐầu tiên, chúng ta cần nhập Numpy trước khi có thể sử dụng bất kỳ chức năng nào của Numpy Bạn có thể làm điều đó với đoạn mã sau import numpy as np Tạo mảngTiếp theo, chúng ta cần tạo một số mảng có nhiều mảng mà chúng ta có thể thao tác trên đó Ở đây, chúng ta sẽ tạo một số đối tượng Numpy
Để làm điều này, chúng ta sẽ sử dụng một vài hàm Numpy, như hàm mảng Numpy, hàm sắp xếp Numpy, phương thức định hình lại Numpy và lựa chọn ngẫu nhiên Numpy. (Nếu bạn không chắc chắn về những gì chúng tôi đang làm ở đây, bạn nên đọc các hướng dẫn khác. ) # CREATE 1D 'VECTOR' vector_1d = np.array([10,20,30]) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9 numbers_1_to_9 = np.arange(start = 1, stop = 10) matrix_2d_ordered = numbers_1_to_9.reshape((3,3)) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED np.random.seed(22) matrix_2d_random = np.random.choice(size = (3,3), a = numbers_1_to_9, replace = False) Khi bạn đã nhập Numpy và khi bạn đã tạo các mảng, bạn sẽ sẵn sàng chạy các ví dụ VÍ DỤ 1. Sử dụng nhân Numpy trên hai vô hướngĐầu tiên, chúng ta sẽ bắt đầu với trường hợp đơn giản nhất Ở đây, chúng tôi sẽ sử dụng np. nhân để nhân hai giá trị vô hướng np.multiply(3,4) NGOÀI 12 Giải trìnhRõ ràng, điều này rất đơn giản và dễ dàng Ở đây, chúng ta chỉ đơn giản là nhân 3 với 4. Kết quả là 12 VÍ DỤ 2. Nhân một mảng với một vô hướngTiếp theo, chúng ta sẽ nhân một mảng Numpy 2 chiều với một vô hướng (i. e. , chúng ta sẽ nhân một ma trận với một đại lượng vô hướng) np.multiply(matrix_2d_ordered, 2) NGOÀI ________số 8_______Giải trìnhVậy chuyện gì đã xảy ra ở đây? Chúng tôi đã gọi np. nhân với hai đối số. mảng Numpy # CREATE 1D 'VECTOR' vector_1d = np.array([10,20,30]) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9 numbers_1_to_9 = np.arange(start = 1, stop = 10) matrix_2d_ordered = numbers_1_to_9.reshape((3,3)) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED np.random.seed(22) matrix_2d_random = np.random.choice(size = (3,3), a = numbers_1_to_9, replace = False)3 và giá trị vô hướng 2 Đối với đầu ra, np. nhân nhân mỗi giá trị của # CREATE 1D 'VECTOR' vector_1d = np.array([10,20,30]) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9 numbers_1_to_9 = np.arange(start = 1, stop = 10) matrix_2d_ordered = numbers_1_to_9.reshape((3,3)) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED np.random.seed(22) matrix_2d_random = np.random.choice(size = (3,3), a = numbers_1_to_9, replace = False)3 với 2 Nó khá thẳng về phía trước VÍ DỤ 3. Nhân hai mảng Numpy có cùng kích thướcBây giờ, hãy nhân hai mảng có cùng kích thước Ở đây, chúng ta sẽ nhân # CREATE 1D 'VECTOR' vector_1d = np.array([10,20,30]) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9 numbers_1_to_9 = np.arange(start = 1, stop = 10) matrix_2d_ordered = numbers_1_to_9.reshape((3,3)) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED np.random.seed(22) matrix_2d_random = np.random.choice(size = (3,3), a = numbers_1_to_9, replace = False)3 với # CREATE 1D 'VECTOR' vector_1d = np.array([10,20,30]) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9 numbers_1_to_9 = np.arange(start = 1, stop = 10) matrix_2d_ordered = numbers_1_to_9.reshape((3,3)) # CREATE 2D MATRIX OF NUMBERS, 1 TO 9, RANDOMIZED np.random.seed(22) matrix_2d_random = np.random.choice(size = (3,3), a = numbers_1_to_9, replace = False)6 np.multiply(matrix_2d_ordered, matrix_2d_random) NGOÀI array([[ 9, 4, 12], [12, 35, 6], [56, 40, 54]]) Giải trìnhỞ đây, np. nhân là nhân các giá trị của từng ma trận đầu vào, theo từng phần tử Đầu ra là một ma trận có cùng kích thước với đầu vào, chứa tích phần tử của các giá trị của ma trận đầu vào (Đây được gọi là sản phẩm Hadamard. ) VÍ DỤ 4. Nhân một ma trận với một vectơ (i. e. , phát thanh truyền hình)Cuối cùng, hãy làm một ví dụ nữa Ở đây, chúng ta sẽ nhân một trong các mảng đầu vào 2 chiều với mảng 1 chiều. Thực tế, điều này giống như nhân một ma trận với một vectơ np.multiply(matrix_2d_ordered, vector_1d) NGOÀI array([[ 10, 40, 90], [ 40, 100, 180], [ 70, 160, 270]]) Giải trìnhTrong ví dụ này, chúng tôi đã nhân ma trận 2 chiều với vectơ 1 chiều. (TÔI. e. , chúng tôi đã nhân mảng Numpy 2D với mảng Numpy 1D) Khi chúng tôi làm điều này, Numpy thực hiện cái được gọi là “phát sóng. ” Thực tế, nó lấy vectơ 1D, coi nó là một hàng dữ liệu và nhân vectơ đó với mỗi hàng trong mảng 2D Vì vậy, nó nhân hàng 1 của ma trận với vectơ, phần tử khôn ngoan. Sau đó, nó nhân hàng 2 của ma trận với vectơ. Và như thế Hãy nhớ rằng khi bạn làm điều này, vectơ phải có hình dạng sao cho nó có thể được phát trên ma trận Để lại câu hỏi khác của bạn trong các ý kiến dưới đâyBạn có câu hỏi nào khác về cách nhân mảng Numpy không? Nếu vậy, hãy để lại câu hỏi của bạn trong phần bình luận bên dưới Tham gia khóa học của chúng tôi để tìm hiểu thêm về NumpyTrong hướng dẫn này, tôi đã giải thích cách nhân mảng trong Numpy với np. nhân Điều này sẽ giúp bạn thực hiện phép nhân mảng, nhưng nếu bạn thực sự muốn học Numpy, thì còn rất nhiều điều cần học Nếu bạn nghiêm túc về việc thành thạo Numpy và nghiêm túc về khoa học dữ liệu trong Python, bạn nên cân nhắc tham gia khóa học cao cấp của chúng tôi có tên là Numpy Mastery Numpy Mastery sẽ dạy cho bạn mọi thứ bạn cần biết về Numpy, bao gồm
Hơn nữa, khóa học này sẽ cho bạn thấy một hệ thống thực hành giúp bạn thành thạo cú pháp trong vòng vài tuần. Chúng tôi sẽ chỉ cho bạn một hệ thống thực hành cho phép bạn ghi nhớ tất cả cú pháp Numpy mà bạn đã học. Nếu bạn gặp khó khăn trong việc ghi nhớ cú pháp Numpy, đây là khóa học bạn đang tìm kiếm Bạn có thể nhân các mảng với nhau không?Phép nhân mảng
. Các phương pháp nhân ma trận này bao gồm phép nhân theo phần tử, tích vô hướng và tích chéo. NumPy array can be multiplied by each other using matrix multiplication. These matrix multiplication methods include element-wise multiplication, the dot product, and the cross product.
Làm cách nào để nhân hai mảng NumPy?Có ba cách chính để thực hiện phép nhân ma trận NumPy. . dấu chấm (mảng a, mảng b). trả về tích vô hướng hoặc vô hướng của hai mảng matmul(mảng a, mảng b). trả về tích ma trận của hai mảng nhân (mảng a, mảng b). trả về phép nhân ma trận phần tử của hai mảng NumPy có cho phép bạn nhân 2 mảng mà không cần vòng lặp for không?Trả lời. Câu trả lời. NumPy cho phép bạn nhân hai mảng mà không cần vòng lặp for. đây là một ví dụ về vector hóa . |