Python tính toán sản phẩm chấm như thế nào?

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách sử dụng hàm Numpy dot (np. dot), để tính toán các sản phẩm dấu chấm trong Numpy

Tôi sẽ giải thích chính xác chức năng của hàm này, cách thức hoạt động của cú pháp và tôi sẽ chỉ cho bạn các ví dụ rõ ràng về cách sử dụng np. dấu chấm

Mục lục

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 ở trên và nó sẽ đưa bạn đến phần hướng dẫn thích hợp

Phải nói rằng, nếu bạn là người mới sử dụng Numpy hoặc cần xem lại nhanh về các tích chấm toán học, có lẽ bạn nên đọc toàn bộ hướng dẫn

Giới thiệu nhanh về Numpy Dot

Trước hết, hãy bắt đầu với những điều cơ bản

Numpy dot làm gì?

Ở cấp độ cao, Numpy dot tính toán tích vô hướng của hai mảng Numpy

Tuy nhiên, nếu bạn chưa quen với Numpy hoặc nếu bạn không hoàn toàn hiểu các sản phẩm chấm, điều đó có thể không hoàn toàn hợp lý

Vì vậy, hãy nhanh chóng xem xét một số điều cơ bản về Numpy và về các sản phẩm chấm

Numpy dot hoạt động trên mảng Numpy

Hãy bắt đầu với Numpy

Như bạn có thể biết, Numpy là một gói tiện ích bổ sung dành cho ngôn ngữ lập trình Python

Chúng tôi chủ yếu sử dụng Numpy để thao tác dữ liệu và tính toán khoa học, nhưng chúng tôi sử dụng Numpy trên các loại dữ liệu cụ thể trong các cấu trúc dữ liệu cụ thể

Numpy là Gói để làm việc với Dữ liệu số trong Python

Đặc biệt, Numpy tạo và hoạt động trên mảng Numpy

Mảng Numpy là cấu trúc dữ liệu lưu trữ dữ liệu số theo cấu trúc hàng và cột

Vì vậy, ví dụ, một mảng Numpy 2 chiều trông giống như thế này

An example of a Numpy array with 3 rows and 4 columns, containing random integers.

Mảng Numpy có thể có nhiều hình dạng và kích cỡ khác nhau. Ví dụ: ta có thể xây dựng mảng 1 chiều, mảng 2 chiều, mảng n chiều

Ngoài ra, chúng ta có thể tạo các mảng Numpy trong đó các Số có nhiều thuộc tính khác nhau. Ví dụ: chúng ta có thể tạo các mảng chứa các số có phân phối chuẩn, các số được rút ra từ một phân phối đồng đều, các số có cùng giá trị, chỉ để đặt tên cho một số

Vì vậy, Numpy có nhiều chức năng để tạo mảng Numpy với các loại thuộc tính khác nhau

Numpy có các hàm để thực hiện tính toán với mảng Numpy

Ngoài chức năng tạo mảng Numpy, gói Numpy còn có chức năng thao tác và tính toán với mảng Numpy

Vì vậy, Numpy có nhiều hàm để thực hiện các phép tính toán học, như tính tổng của một mảng, tính các hàm mũ của các giá trị mảng, v.v.

Ngoài ra, Numpy có các hàm để thực hiện các phép toán nâng cao hơn, như các phép toán từ đại số tuyến tính

np. dấu chấm tính toán các sản phẩm dấu chấm trong Numpy

Vậy chức năng Numpy dot làm gì?

Giải thích đơn giản là

np.dot(2,3)
2 tính các tích

Để diễn giải mục nhập trên Wikipedia, tích vô hướng là một phép toán lấy hai chuỗi số có độ dài bằng nhau và trả về một số duy nhất

Phải nói rằng, chức năng Numpy dot hoạt động hơi khác một chút tùy thuộc vào đầu vào chính xác

Có ba trường hợp rộng mà chúng ta sẽ xem xét với

np.dot(2,3)
2

  • cả hai đầu vào là mảng 1D
  • cả hai đều là mảng 2D
  • một đầu vào là vô hướng và một đầu vào là một mảng

Hãy cùng xem cách Numpy dot hoạt động cho những trường hợp khác nhau này

Nếu các mảng đầu vào đều là mảng 1 chiều, np. dot tính tích véc tơ dot

Giả sử chúng ta có hai mảng Numpy, \mathbf{a}\mathbf{b} và mỗi mảng có 3 giá trị.

An image that shows two Numpy arrays, each with 3 numbers.

Cho hai mảng 1 chiều,

np.dot(2,3)
2 sẽ tính tích vô hướng

Sản phẩm chấm có thể được tính như sau

A visual example of computing the dot product of two Numpy arrays with 3 elements each.

Chú ý những gì đang xảy ra ở đây. Các mảng này có cùng độ dài và mỗi mảng có 3 giá trị

Khi tính tích vô hướng, chúng tôi nhân giá trị đầu tiên của \mathbf{a} với giá trị đầu tiên của \mathbf{b}. Chúng ta nhân giá trị thứ hai của \mathbf{a} với giá trị thứ hai của \mathbf{b}. Và chúng tôi nhân giá trị thứ ba của \mathbf{a} với giá trị thứ ba của \mathbf{b}. Sau đó, chúng tôi lấy các giá trị kết quả và tổng hợp chúng.

Đầu ra là một giá trị vô hướng duy nhất … trong ví dụ này, \mathbf{a} \cdot \mathbf{b} = 98.

Về mặt toán học, chúng ta có thể khái quát hóa ví dụ trên. Nếu chúng ta có hai vectơ \mathbf{a}\mathbf{b} và mỗi vectơ có n phần tử, thì tích vô hướng \mathbf{a} \cdot \mathbf{b} is given by the equation:

(1)   \begin{equation*}     \mathbf{a} \cdot \mathbf{b} = \sum_{i = 1}^{n} a_i b_i \end{equation*}

Về cơ bản, khi lấy tích vô hướng của hai mảng Numpy, chúng ta đang tính tổng các tích theo cặp của hai mảng

Nếu một trong các đầu vào là vô hướng, np. dấu chấm thực hiện phép nhân vô hướng

Trường hợp thứ hai là khi một đầu vào là một giá trị vô hướng r và một đầu vào là một mảng Numpy, mà ở đây chúng ta sẽ gọi là \mathbf{b}.

An image of a scalar, r, and a vector (i.e., an array), b.  We'll use these in the following example of scalar multiplication.

Nếu chúng ta sử dụng dấu chấm Numpy trên các đầu vào này với mã

np.dot(2,3)
5 thì Numpy sẽ thực hiện phép nhân vô hướng trên mảng

A visual example showing

Vì vậy, khi chúng ta sử dụng dấu chấm Numpy với một vô hướng và một mảng Numpy, nó sẽ nhân mọi giá trị của mảng với vô hướng và xuất ra một mảng Numpy mới

Nếu cả hai đầu vào là mảng 2D, np. dấu chấm thực hiện phép nhân ma trận

Trường hợp cuối cùng mà chúng ta sẽ đề cập là khi cả hai mảng đầu vào đều là mảng 2 chiều

Trong trường hợp này với 2 mảng 2D thì hàm

np.dot(2,3)
2 sẽ thực hiện phép nhân ma trận

Giải thích đầy đủ về phép nhân ma trận nằm ngoài phạm vi của hướng dẫn này, nhưng hãy xem một ví dụ nhanh

Giả sử bạn có hai mảng 2D, \mathbf{A}\mathbf{B}.

An example of two 2D arrays, A and B.

Tiếp theo, hãy nhân các mảng đó với nhau bằng phép nhân ma trận

Trong khi nhân ma trận, chúng ta nhân giá trị của các hàng của \mathbf{A} với giá trị của các cột của \mathbf{B} và tính tổng chúng theo cách sau.

An example of using matrix multiplication to compute the product of two matrices, AB.

Và đây là kết quả tính toán cuối cùng

An example of the finalized output of the matrix multiplication process, which computed the product AB.

Lưu ý rằng mảng đầu ra, \mathbf{C} = \mathbf{AB}, có cùng số hàng với \mathbf{A} và cùng số cột với \mathbf{B}.

Ngoài ra, mỗi giá trị trong mảng đầu ra \mathbf{C} được tính bằng tổng tích của hàng thứ i của \mathbf{A} và hàng thứ j của \mathbf{B}.

Tổng quát hơn, để tính toán mảng đầu ra \mathbf{C} = \mathbf{AB}, mỗi giá trị của mảng đầu ra C_{i,j} được định nghĩa là.

(2)   \begin{equation*}    C_{i,j}  = \sum_{k}A_{i,k} B_{k,j} \end{equation*}

Nếu bạn không quen thuộc với đại số tuyến tính nói chung và đại số ma trận nói riêng, tôi nhận thấy rằng các phương trình này có thể hơi khó hiểu. thậm chí có thể hơi đáng sợ

Điều đó nói rằng, nếu bạn muốn tìm hiểu thêm về các phép toán này, tôi khuyên bạn nên đọc cuốn sách Đại số tuyến tính và các ứng dụng của nó, của David Lay và các đồng nghiệp. Đây là một cuốn sách rất dễ tiếp cận về đại số tuyến tính sẽ giúp bạn hiểu một số phép toán mà chúng ta đang thực hiện với Numpy dot

Vâng. Vì vậy, bây giờ chúng ta đã xem xét Numpy dot làm gì, hãy xem xét kỹ hơn cú pháp

Cú pháp của Numpy Dot

Sau đây, tôi sẽ giải thích cú pháp của hàm Numpy dot

Một lưu ý nhanh

Một điều trước khi chúng ta xem xét cú pháp

Để sử dụng các hàm Numpy, trước tiên bạn cần nhập Numpy. Bạn có thể làm điều đó với đoạn mã sau

import numpy as np

Điều này rất quan trọng, vì cách bạn nhập Numpy sẽ ảnh hưởng đến cú pháp

Quy ước chung giữa các nhà khoa học dữ liệu Python là nhập Numpy với bí danh '

np.dot(2,3)
7' và chúng tôi sẽ gắn bó với quy ước đó tại đây

np. cú pháp dấu chấm

Cú pháp của

np.dot(2,3)
2 thực sự rất đơn giản

Giả sử rằng bạn đã nhập Numpy với bí danh

np.dot(2,3)
7, bạn gọi hàm là
6
0

A picture that explains the syntax of the np.dot function.

Sau đó, bên trong dấu ngoặc đơn, có một vài tham số cho phép bạn cung cấp đầu vào cho hàm

Hãy xem những đầu vào đó

Các thông số của np. dấu chấm

Có 2 tham số cốt lõi cho hàm

6
0

  • 6
    
    2
  • 6
    
    3

Hãy nhanh chóng xem qua từng cái một

6
2 (bắt buộc)

Tham số

6
2 cho phép bạn chỉ định giá trị hoặc mảng đầu vào đầu tiên cho hàm

Về mặt kỹ thuật, đối số cho tham số này có thể là một giá trị vô hướng hoặc bất kỳ đối tượng "giống như mảng" nào

Bởi vì nó cho phép các đối tượng giống như mảng, đây có thể là một mảng Numpy thích hợp hoặc nó có thể là một danh sách Python, một bộ, v.v. Một giá trị vô hướng như

6
6 hoặc
6
7 cũng sẽ hoạt động

Hãy nhớ rằng bạn phải cung cấp một đối số cho tham số này

6
3 (bắt buộc)

Tham số

6
3 cho phép bạn chỉ định giá trị đầu vào thứ hai hoặc mảng cho hàm

Tương tự như tham số

6
2, đối số của
6
3 có thể là một giá trị vô hướng hoặc bất kỳ đối tượng "giống như mảng" nào. Vì vậy, các đối số có thể chấp nhận được đối với tham số này bao gồm mảng Numpy, danh sách Python và bộ dữ liệu. Các giá trị vô hướng như
6
6 hoặc
6
7 cũng được chấp nhận

Hãy nhớ rằng bạn phải cung cấp một đối số cho tham số này

np.dot(2,3)
34 (tùy chọn)

Lưu ý rằng

6
0 cũng có tham số
np.dot(2,3)
34. Điều này hơi hiếm khi được sử dụng, vì vậy chúng tôi sẽ không đề cập đến nó ở đây. Để biết thêm thông tin về tham số này, hãy xem lại tài liệu chính thức

Đầu ra của np. dấu chấm

Đầu ra của

6
0 phụ thuộc vào đầu vào

Có một vài trường hợp

  • Nếu cả hai đầu vào đều là số vô hướng, thì
    6
    
    0 sẽ nhân các số vô hướng với nhau và xuất ra một số vô hướng
  • Nếu một đầu vào là vô hướng và một là mảng, thì
    6
    
    0 sẽ nhân mọi giá trị của mảng với vô hướng (i. e. , nhân bản vô tính)
  • Nếu cả hai đầu vào đều là mảng 1 chiều,
    6
    
    0 sẽ tính tích vô hướng của các đầu vào
  • Nếu cả 2 đầu vào đều là mảng 2 chiều thì
    6
    
    0 sẽ thực hiện phép nhân ma trận

Như bạn có thể thấy, đầu ra thực sự phụ thuộc vào cách bạn sử dụng chức năng

Với ý nghĩ đó, chúng ta hãy xem một số ví dụ để bạn có thể thấy nó hoạt động như thế nào và xem các loại đầu ra khác nhau mà

6
0 tạo ra với một số loại đầu vào nhất định

ví dụ. Cách tính các sản phẩm chấm trong Numpy

Vâng. Hãy làm việc thông qua một số ví dụ từng bước

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 và nó sẽ đưa bạn đến ví dụ phù hợp

ví dụ

Chạy mã này trước

Trước khi bạn chạy bất kỳ ví dụ nào, trước tiên bạn cần nhập Numpy

Bạn có thể làm điều đó với đoạn mã sau

import numpy as np

Khi bạn đã làm điều đó, bạn nên sẵn sàng để đi

VÍ DỤ 1. Nhân hai số

Vâng. Hãy bắt đầu với một ví dụ đơn giản

Ở đây, chúng ta sẽ sử dụng hai số (i. e. , giá trị vô hướng) làm đầu vào cho

6
0

np.dot(2,3)

NGOÀI

6
Giải thích

Điều này có thể hơi bất ngờ, nhưng rất đơn giản

Ở đây, chúng tôi đã gọi

6
0 với hai giá trị vô hướng là 2 và 3

Khi chúng ta gọi

6
0 với hai số vô hướng, nó chỉ cần nhân chúng với nhau

Rõ ràng là

np.dot(2,3)
86

VÍ DỤ 2. Nhân một số và một mảng

Tiếp theo, hãy cung cấp một mảng và vô hướng làm đầu vào

Ở đây, chúng tôi thực sự sẽ cung cấp một vô hướng (một số nguyên) và một danh sách Python. Thay vì một danh sách Python, chúng tôi cũng có thể cung cấp một mảng Numpy, nhưng tôi đã sử dụng một danh sách Python thay vì nó làm cho thao tác dễ hiểu hơn một chút ở đây

Hãy cùng xem

np.dot(2,3)
3

NGOÀI

np.dot(2,3)
8Giải thích

Một lần nữa, điều này rất đơn giản

Đối số đầu tiên của hàm là giá trị vô hướng 2

Đối số thứ hai của hàm là danh sách Python

np.dot(2,3)
87

Khi chúng tôi cung cấp một vô hướng làm một đầu vào và một danh sách (hoặc mảng Numpy) làm đầu vào khác,

6
0 chỉ cần nhân các giá trị của mảng với vô hướng

Về mặt toán học, chúng tôi coi đây là phép nhân vô hướng của một vectơ hoặc ma trận

VÍ DỤ 3. Tính toán sản phẩm chấm của hai mảng 1D

Tiếp theo, hãy nhập hai danh sách 1 chiều

Ở đây, chúng tôi sẽ sử dụng hai danh sách Python, nhưng chúng tôi cũng có thể sử dụng mảng 1D Numpy. Tôi đang sử dụng danh sách Python vì nó giúp thao tác dễ hiểu hơn một chút trong nháy mắt

Hãy cùng xem

np.dot(2,3)
3

NGOÀI

np.dot(2,3)
4Giải thích

Những gì đang xảy ra ở đây?

Ở đây,

6
0 đang tính toán tích vô hướng của hai đầu vào

Các đầu vào này là danh sách Python 1 chiều. Và như tôi đã nói trước đó, chúng ta cũng có thể sử dụng mảng 1D Numpy

Về mặt toán học, danh sách 1D và mảng Numpy 1D giống như vectơ

Khi chúng ta làm việc với các vectơ và lấy tích vô hướng, tích vô hướng được tính bằng cái mà chúng ta đã thấy trước đó

    \[     \mathbf{a} \cdot \mathbf{b} = \sum_{i = 1}^{n} a_i b_i \]

Vì vậy, khi Numpy dot có hai danh sách hoặc mảng 1D làm đầu vào…

An image that shows two Numpy arrays, each with 3 numbers.

… nó lấy tích của các phần tử theo cặp, rồi cộng chúng lại với nhau

A visual example of computing the dot product of two Numpy arrays with 3 elements each.

Và đầu ra là một giá trị vô hướng. Trong trường hợp này, kết quả là 98

VÍ DỤ 4. Thực hiện phép nhân ma trận trên hai mảng 2D

Cuối cùng, hãy xem điều gì sẽ xảy ra khi chúng ta sử dụng Numpy dot trên hai mảng 2 chiều

Tạo mảng

Đầu tiên, hãy tạo hai mảng Numpy 2 chiều

Để làm điều này, chúng tôi sẽ sử dụng hàm

np.dot(2,3)
30 để tạo một chuỗi số, sau đó sử dụng phương pháp định hình lại Numpy để định hình lại các số thành hình dạng 2D

np.dot(2,3)
7

Và hãy in chúng ra, để bạn có thể xem nội dung

np.dot(2,3)
8

NGOÀI

import numpy as np
0
import numpy as np
1

NGOÀI

import numpy as np
2

Lưu ý rằng cả hai mảng Numpy này đều là 2 chiều. Phải nói rằng, số lượng hàng trong

np.dot(2,3)
31 giống như số lượng cột trong
np.dot(2,3)
32

sử dụng np. dấu chấm

Vâng. Bây giờ hãy sử dụng hàm Numpy dot trên hai mảng này

import numpy as np
3

NGOÀI

import numpy as np
4Giải thích

Vậy chuyện gì đã xảy ra ở đây?

Trong trường hợp này, chúng tôi đã sử dụng hai mảng Numpy 2 chiều làm đầu vào

An example of two 2D arrays, A and B.

Khi chúng tôi sử dụng mảng 2D làm đầu vào,

6
0 sẽ tính tích ma trận của các mảng

Khi thực hiện điều này, nó sẽ tính toán các giá trị của mảng đầu ra theo phương trình 2 mà chúng ta

    \[    C_{i,j}  = \sum_{k}A_{i,k} B_{k,j} \]

Vì vậy, về cơ bản, đây là những gì Numpy đang làm khi chúng tôi chạy mã

np.dot(2,3)
35

An example of using matrix multiplication to compute the product of two matrices, AB.

Quan sát cẩn thận. Trong hình trên, bạn có thể thấy rằng phép tính nhân các giá trị của các hàng của A với các giá trị của các cột của B, tính tổng chúng và đặt chúng vào mảng đầu ra cuối cùng, với các giá trị sau

An example of the finalized output of the matrix multiplication process, which computed the product AB.

Hoạt động này được gọi là sản phẩm ma trận

Vì vậy, một lần nữa. khi chúng ta sử dụng Numpy dot trên hai mảng 2 chiều,

6
0 sẽ tính tích ma trận

Tôi hiểu rằng điều này có thể hơi khó hiểu nếu bạn không có nhiều kinh nghiệm về đại số tuyến tính. Nếu đúng như vậy, tôi khuyên bạn nên đọc một số bài về đại số tuyến tính nói chung và phép nhân ma trận nói riêng

Câu hỏi thường gặp về Numpy Dot

Bây giờ chúng ta đã xem xét một số ví dụ, hãy xem xét một số câu hỏi phổ biến về hàm

6
0

Các câu hỏi thường gặp

Câu hỏi 1. Đâu là sự khác biệt giữa 6 0 và np.dot(2,3) 39 ?

Numpy dot và Numpy matmul tương tự nhau, nhưng chúng hoạt động khác nhau đối với một số loại đầu vào

Hai sự khác biệt lớn là dành cho

  • nhân với vô hướng
  • phép nhân mảng Numpy chiều cao

Hãy xem xét từng cái một

Nhân với vô hướng

Sự khác biệt đầu tiên giữa

6
0 và
np.dot(2,3)
39 là
6
0 cho phép bạn nhân với các giá trị vô hướng, nhưng
np.dot(2,3)
39 thì không

Như chúng ta đã thấy trong , khi chúng ta sử dụng

6
0 với một số vô hướng (e. g. , một số nguyên) và một mảng/danh sách, Numpy dot sẽ chỉ nhân mọi giá trị của mảng với giá trị vô hướng

np.dot(2,3)
3

NGOÀI

np.dot(2,3)
8

Tuy nhiên, nếu bạn cố gắng làm điều này với

np.dot(2,3)
39, bạn sẽ gặp lỗi

import numpy as np
7

NGOÀI

import numpy as np
8Phép nhân mảng nhiều chiều

Lĩnh vực thứ hai mà

6
0 và
np.dot(2,3)
39 khác nhau là khi chúng hoạt động trên mảng chiều cao

Theo tài liệu…

Khi bạn sử dụng

np.dot(2,3)
2

Nếu a là mảng N-D và b là mảng 1-D, thì đó là tích tổng trên trục cuối cùng của a và b

Nếu a là một mảng N-D và b là một mảng M-D (trong đó M>=2), nó là một tích tổng trên trục cuối cùng của a và trục thứ hai đến trục cuối cùng của b

Nhưng khi bạn sử dụng

np.dot(2,3)
73

Nếu một trong hai đối số là N-D, N > 2, thì nó được coi là một chồng ma trận nằm trong hai chỉ mục cuối cùng và phát sóng tương ứng

Cuối cùng,

6
0 và
np.dot(2,3)
39 hoạt động khác nhau đối với phép nhân vô hướng và đối với phép nhân của các đầu vào có chiều cao hơn

Câu hỏi 2. Đâu là sự khác biệt giữa 6 0 và np.dot(2,3) 41 ?

6
0 và
np.dot(2,3)
41 rất giống nhau và thực hiện hiệu quả các hoạt động giống nhau

Sự khác biệt là

6
0 là một hàm Python và
np.dot(2,3)
41 là một phương thức mảng Numpy

Vì vậy, họ thực sự làm điều tương tự, nhưng bạn gọi họ theo một cách hơi khác

Giả sử chúng ta có hai mảng 2 chiều

np.dot(2,3)
7

Chúng ta có thể gọi hàm

6
0 như sau

import numpy as np
3

Nhưng chúng tôi sử dụng cái gọi là "cú pháp dấu chấm" để gọi phương thức

np.dot(2,3)
83

np.dot(2,3)
1

Đầu ra giống nhau, nhưng cú pháp hơi khác một chút

Nếu bạn vẫn còn bối rối về điều này, hãy nhớ đọc thêm về sự khác biệt giữa hàm Python và phương thức Python

Để lại câu hỏi khác của bạn trong các ý kiến ​​​​dưới đây

Bạn vẫn còn thắc mắc về chức năng Numpy dot?

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ề Numpy

Trong hướng dẫn này, tôi đã giải thích cách sử dụng hàm

6
0 để tính tích vô hướng của mảng 1D và thực hiện phép nhân ma trận của mảng 2D

Điều này sẽ giúp bạn hiểu về

np.dot(2,3)
2, 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

  • Cách tạo mảng Numpy
  • Chức năng “Numpy random seed” làm gì
  • Cách định hình lại, tách và kết hợp các mảng Numpy của bạn
  • Cách sử dụng các hàm ngẫu nhiên Numpy
  • Cách thực hiện các phép toán trên mảng Numpy
  • và hơn thế nữa …

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

Sản phẩm chấm được tính như thế nào?

Tích vô hướng của vectơ . a. và. b. được đưa ra dưới dạng . a. b. cos θ , trong đó θ biểu thị góc giữa các vectơ a và b theo hướng của các vectơ.

Làm thế nào để numpy tính toán sản phẩm chấm?

Để tính tích vô hướng của các mảng có nhiều mảng, bạn có thể sử dụng numpy. hàm dấu chấm() . cục mịch. các hàm dot() chấp nhận hai mảng numpy làm đối số, tính toán tích vô hướng của chúng và trả về kết quả.

Tại sao sản phẩm numpy dot lại nhanh như vậy?

Bởi vì np. dot thực thi các phép toán số học thực tế và vòng lặp kèm theo trong mã được biên dịch , nhanh hơn nhiều so với trình thông dịch Python.

Sự khác biệt giữa sản phẩm chấm và phép nhân ma trận trong Python là gì?

Tóm lại, tích vô hướng là tổng tích của các giá trị trong hai vectơ có cùng kích thước và phép nhân ma trận là phiên bản ma trận của tích vô hướng với hai ma trận.