Sản phẩm chấm trong python là gì?

Trong hướng dẫn này, bạn sẽ học cách sử dụng Numpy để tính toán tích vô hướng trong Python. Biết cách hiểu và tính toán tích vô hướng giữa vô hướng và vectơ là một kỹ năng quan trọng trong học máy. Bài đăng này sẽ đi vào chi tiết như sản phẩm chấm là gì và cách tính nó. Bạn sẽ tìm hiểu cách tính tích vô hướng giữa hai mảng 1 chiều, mảng 1 chiều và vô hướng và hai mảng 2 chiều

Câu trả lời nhanh. Sử dụng numpy.dot()

Sản phẩm chấm trong python là gì?

Mục lục

Sản phẩm chấm là gì?

Tích vô hướng, hoặc tích vô hướng, nhận hai vectơ có độ dài bằng nhau và trả về một đại lượng vô hướng. Sản phẩm chấm được hiển thị, đại số như thế này

s = x ⋅ y

ở đâu. s là tích vô hướng giữa hai vectơ và x và y là hai vectơ

Điều này có thể được đại diện như

Sản phẩm chấm trong python là gì?
Phương trình tích vô hướng

Hướng dẫn này sẽ khám phá ba kịch bản sản phẩm chấm khác nhau

  1. Chấm sản phẩm giữa mảng 1D và vô hướng. trả về một mảng 1D
  2. Chấm sản phẩm giữa hai mảng 1D. mà trả về một vô hướng d
  3. Chấm sản phẩm giữa hai mảng 2D. trả về một mảng 1D

Hãy đi sâu vào tìm hiểu cách sử dụng Python để tính tích vô hướng giữa mảng 1 chiều và vô hướng

Xem một số hướng dẫn Python khác về datagy, bao gồm hướng dẫn đầy đủ của chúng tôi về cách tạo kiểu cho Pandas và tổng quan toàn diện của chúng tôi về Pivot Tables trong Pandas

Cách sử dụng Numpy Dot để tính sản phẩm Python Dot

numpy, thư viện khoa học dữ liệu Python phổ biến đi kèm với một số hàm mảng hữu ích. Một trong những hàm này, dot(), có thể được sử dụng để tính toán tích vô hướng trong các tình huống khác nhau, như bạn sẽ học trong hướng dẫn này

Tích dot() xử lý cả tính toán tích vô hướng và phép nhân ma trận, tùy thuộc vào loại mảng và đại lượng vô hướng được truyền vào hàm

Hãy xem chức năng này trông như thế nào

import numpy as np
dot = np.dot(x, y)

Trong đoạn mã trên, trước tiên chúng tôi đã nhập numpy bằng bí danh

# Calculate the Dot Product in Python Between a 1D Vector and a Scalar
import numpy as np
x = 2
y = np.array([1, 2, 3])

dot = np.dot(x, y)
print(dot)

# Returns: [2 4 6]
1. Sau đó, chúng ta có thể truy cập hàm dot(), chấp nhận hai tham số bắt buộc, trong trường hợp này là
# Calculate the Dot Product in Python Between a 1D Vector and a Scalar
import numpy as np
x = 2
y = np.array([1, 2, 3])

dot = np.dot(x, y)
print(dot)

# Returns: [2 4 6]
3 và
# Calculate the Dot Product in Python Between a 1D Vector and a Scalar
import numpy as np
x = 2
y = np.array([1, 2, 3])

dot = np.dot(x, y)
print(dot)

# Returns: [2 4 6]
4

Tùy thuộc vào loại dữ liệu nào được chuyển vào các đối số, các phép tính khác nhau sẽ xảy ra – có thể là tích vô hướng hoặc phép nhân ma trận

Trong phần tiếp theo, bạn sẽ học cách sử dụng numpy của Python để tính tích vô hướng giữa một mảng 1 chiều và một mảng vô hướng.

Muốn tìm hiểu cách tính toán và sử dụng logarit tự nhiên trong Python. Hãy xem hướng dẫn của tôi tại đây, hướng dẫn này sẽ dạy cho bạn mọi thứ bạn cần biết về cách tính toán nó trong Python

Tính tích vô hướng giữa một mảng 1 chiều và một mảng vô hướng

Khi bạn tính tích vô hướng giữa mảng 1 chiều và đơn vị vô hướng, về cơ bản, bạn nhân từng phần tử trong mảng theo đại lượng vô hướng

Hãy xem xét một ví dụ. Bạn được cung cấp một mảng 1 chiều

# Calculate the Dot Product in Python Between a 1D Vector and a Scalar
import numpy as np
x = 2
y = np.array([1, 2, 3])

dot = np.dot(x, y)
print(dot)

# Returns: [2 4 6]
5 và một mảng vô hướng
# Calculate the Dot Product in Python Between a 1D Vector and a Scalar
import numpy as np
x = 2
y = np.array([1, 2, 3])

dot = np.dot(x, y)
print(dot)

# Returns: [2 4 6]
6. Khi bạn tính tích vô hướng giữa hai giá trị này, bạn nhân từng giá trị trong mảng với đại lượng vô hướng

Điều này sau đó trông như thế này.

# Calculate the Dot Product in Python Between a 1D Vector and a Scalar
import numpy as np
x = 2
y = np.array([1, 2, 3])

dot = np.dot(x, y)
print(dot)

# Returns: [2 4 6]
7

Bây giờ chúng ta đã hiểu tích vô hướng giữa vectơ 1 chiều và vô hướng trông như thế nào, hãy xem cách chúng ta có thể sử dụng Python và numpy để tính tích vô hướng

# Calculate the Dot Product in Python Between a 1D Vector and a Scalar
import numpy as np
x = 2
y = np.array([1, 2, 3])

dot = np.dot(x, y)
print(dot)

# Returns: [2 4 6]

Chúng ta có thể thấy cách dễ dàng numpy giúp tính toán tích vô hướng giữa vô hướng và vectơ. Hãy chia nhỏ những gì chúng ta đã làm ở đây

  1. Chúng tôi khởi tạo hai biến.
    # Calculate the Dot Product in Python Between a 1D Vector and a Scalar
    import numpy as np
    x = 2
    y = np.array([1, 2, 3])
    
    dot = np.dot(x, y)
    print(dot)
    
    # Returns: [2 4 6]
    3 đại diện cho một vô hướng và
    # Calculate the Dot Product in Python Between a 1D Vector and a Scalar
    import numpy as np
    x = 2
    y = np.array([1, 2, 3])
    
    dot = np.dot(x, y)
    print(dot)
    
    # Returns: [2 4 6]
    4 đại diện cho một mảng có nhiều mảng
  2. Sau đó, chúng tôi tính toán tích vô hướng giữa hai tích này bằng cách sử dụng hàm
    # Calculate the Dot Product in Python Between two 1-dimensional vectors
    import numpy as np
    x = np.array([2,4,6])
    y = np.array([3,5,7])
    
    dot = np.dot(x, y)
    print(dot)
    
    # Returns: 68
    0
  3. Khi chúng ta in kết quả, chúng ta có thể thấy rằng nó trả về một mảng 1 chiều chứa tích của từng giá trị trong mảng ban đầu và vô hướng.

Trong phần tiếp theo, bạn sẽ tìm hiểu cách tính tích vô hướng giữa hai mảng 1 chiều bằng Python và numpy

Bạn muốn tìm hiểu thêm về cách tính căn bậc hai trong Python?

Tính tích vô hướng giữa hai mảng 1 chiều

Khi bạn tính tích vô hướng giữa hai mảng 1 chiều, giá trị vô hướng được trả về. Cách tính toán này được xử lý là tính tổng của tích của từng giá trị trong hai mảng

Do đó, các mảng phải có cùng kích thước, nếu không thì không thể tính được tích vô hướng

Hãy cùng xem cách tính tích vô hướng giữa hai mảng

# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
1 và
# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
2

Khi chúng ta tính tích vô hướng của hai vectơ 1 chiều, chúng ta tính phép nhân vectơ của vectơ nắm tay và chuyển vị của vectơ thứ hai

Đối với điều này, chúng tôi tính toán như sau.

# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
3, rút ​​gọn thành
# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
4 và trả về số vô hướng
# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
5

Hãy xem cách chúng ta có thể tính tích vô hướng của hai vectơ một chiều bằng cách sử dụng numpy trong Python

# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68

Trong phần tiếp theo, bạn sẽ tìm hiểu cách tính tích vô hướng giữa hai mảng 2 chiều

Bạn muốn tìm hiểu thêm về vòng lặp for Python? . Thay vào đó, bạn muốn xem một video?

Tính Tích Vô hướng Giữa Hai Mảng 2 Chiều

Khi bạn tính tích vô hướng giữa hai mảng 2 chiều, bạn trả về một mảng 2 chiều. Cách tính toán này là sử dụng phép nhân ma trận giữa hai ma trận

Hãy xem một ví dụ nơi chúng ta có hai mảng.

# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
6 và
# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
7. Điều này thực sự trả về một mảng có kích thước
# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
8. Điều này là do tích vô hướng giữa hai mảng 2 chiều sẽ luôn trả về một ma trận có kích thước bằng số hàng của ma trận thứ nhất và số cột của ma trận thứ hai

Do đó, kích thước của ma trận thứ nhất phải bằng kích thước chuyển vị của ma trận thứ hai

Cách tính toán này sẽ xảy ra được hiển thị bên dưới

Sản phẩm chấm trong python là gì?

Bây giờ chúng ta đã hiểu về cách các ma trận sẽ được nhân lên, hãy xem cách chúng ta có thể sử dụng Python và numpy để tính tích vô hướng

# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]

Hãy khám phá những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã tải hai mảng numpy của mình
  2. Sau đó, chúng tôi đã áp dụng hàm
    # Calculate the Dot Product in Python Between two 1-dimensional vectors
    import numpy as np
    x = np.array([2,4,6])
    y = np.array([3,5,7])
    
    dot = np.dot(x, y)
    print(dot)
    
    # Returns: 68
    0, chuyển vào ma trận đầu tiên và chuyển vị của ma trận thứ hai

Nếu bạn muốn tìm hiểu thêm về cách tính toán chuyển vị bằng cách sử dụng numpy, hãy xem hướng dẫn chuyên sâu của tôi tại đây

Trong phần tiếp theo, bạn sẽ học cách sử dụng toán tử

# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]
0 của Python để tính tích vô hướng của các mảng có nhiều mảng

Cần kiểm tra xem một khóa có tồn tại trong từ điển Python không?

Sử dụng @ để tính sản phẩm chấm Python

Bắt đầu bằng Python 3. 5+, có một toán tử cho phép bạn tính tích vô hướng giữa hai mảng, toán tử

# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]
0. Toán tử tận dụng các thư viện khác nhau, chẳng hạn như numpy, để hỗ trợ tính toán tích vô hướng

Mặc dù phương pháp này vẫn sử dụng numpy, nhưng nó có thể giúp đơn giản hóa quy trình tính toán tích vô hướng. Bằng cách sử dụng một toán tử, chúng tôi đang đơn giản hóa cách tiếp cận và làm cho nó có cú pháp hơn

Thay vì sử dụng hàm

# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = np.dot(x, y)
print(dot)

# Returns: 68
0, chúng ta có thể sử dụng toán tử
# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]
0 như đã làm với ví dụ trên

Bạn muốn tìm hiểu cách lấy phần mở rộng của tệp bằng Python?

Tính tích vô hướng giữa hai mảng 1 chiều bằng cách sử dụng @

Hãy xem cách chúng ta có thể sao chép ví dụ tính tích vô hướng giữa mảng vô hướng và mảng 1 chiều bằng cách sử dụng toán tử

# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]
0

# Calculate the Dot Product in Python Between two 1-dimensional vectors
import numpy as np
x = np.array([2,4,6])
y = np.array([3,5,7])

dot = x @ y
print(dot)

# Returns: 68

Trong phần tiếp theo, bạn sẽ học cách sử dụng toán tử

# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]
0 để tính tích vô hướng của hai mảng 2 chiều trong Python

Bạn muốn tìm hiểu cách sử dụng hàm

# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]
6 của Python để lặp qua hai danh sách?

Tính tích vô hướng giữa hai mảng 2 chiều bằng cách sử dụng @

Bây giờ, hãy xem cách chúng ta có thể sử dụng toán tử

# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]
0 để tính tích vô hướng giữa hai mảng 2 chiều

# Calculate the Dot Product in Python Between two 2-dimensional vectors using @
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = x @ y.T
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]

Chúng ta có thể thấy ở đây điều này trả về kết quả tương tự

Cần tự động đổi tên tập tin? . Hơn cả một người học trực quan, toàn bộ hướng dẫn cũng có sẵn dưới dạng video trong bài đăng

Phần kết luận

Trong hướng dẫn này, bạn sẽ học cách tính tích vô hướng trong Python. Bạn đã biết tích vô cực đại diện cho điều gì và ba trường hợp khác nhau trong đó tích vô hướng có thể được tính toán. giữa một mảng vô hướng và một mảng, giữa hai mảng 1 chiều và giữa hai mảng 2 chiều

Bạn đã học cách sử dụng hàm numpy dot() cũng như toán tử

# Calculate the Dot Product in Python Between two 2-dimensional matrices
import numpy as np
x = np.array([[1,2,3], [4,5,6]])
y = np.array([[4,5,6], [7,8,9]])

dot = np.dot(x, y.T)
print(dot)

# Returns: 
# [[ 32  50]
#  [ 77 122]]
0 có sẵn trong Python 3. 5

Sản phẩm chấm đại diện cho cái gì?

Tích vô hướng, còn được gọi là tích vô hướng, là số đo mức độ gần nhau của hai vectơ, xét về hướng mà chúng chỉ ra . Thước đo là một số vô hướng (một giá trị) có thể được sử dụng để so sánh hai vectơ và để hiểu tác động của việc định vị lại một hoặc cả hai vectơ.

Chức năng sản phẩm chấm trong NumPy là gì?

Hàm này trả về tích vô hướng của hai mảng . Đối với các vectơ 2 chiều, nó tương đương với phép nhân ma trận. Đối với mảng 1-D, nó là sản phẩm bên trong của các vectơ. Đối với mảng N chiều, nó là một tích tổng trên trục cuối cùng của a và trục cuối cùng thứ hai của b.

Sự khác biệt giữa sản phẩm chấm và sản phẩm chéo Python là gì?

Mặc dù cả hai đều liên quan đến việc nhân độ lớn của hai vectơ, tích vô hướng dẫn đến một đại lượng vô hướng, biểu thị độ lớn chứ không phải hướng, trong khi tích chéo dẫn đến một vectơ, mà . .

Sản phẩm chấm của một mảng là gì?

Tích vô hướng của hai vectơ là tổng tích của các phần tử theo vị trí . Phần tử đầu tiên của vectơ thứ nhất được nhân với phần tử đầu tiên của vectơ thứ hai, v.v. Tổng của các sản phẩm này là sản phẩm chấm, có thể được thực hiện với np. chức năng dấu chấm ().