Hướng dẫn dot product two vectors python - sản phẩm chấm hai vectơ python

numpy.dot (a, b, out = none)#dot(a, b, out=None)#

Sản phẩm chấm của hai mảng. Đặc biệt,

  • Nếu cả A và B là mảng 1-D, thì đó là sản phẩm bên trong của các vectơ (không liên hợp phức tạp).

  • Nếu cả A và B là mảng 2-D, thì đó là phép nhân ma trận, nhưng sử dụng matmul hoặc a @ b được ưa thích.

  • Nếu A hoặc B là 0-D (vô hướng), nó tương đương với multiply và sử dụng numpy.multiply(a, b) hoặc a * b được ưu tiên.

  • Nếu A là mảng N-D và B là mảng 1-D, thì đó là một sản phẩm tổng trong 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ảng M-D (trong đó M>=2), thì đó là một sản phẩm tổng trên trục cuối cùng của A và trục thứ hai của B:

    dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
    

Parametersaarray_likeaarray_like

Đối số đầu tiên.

barray_likearray_like

Đối số thứ hai.

Outndarray, tùy chọnndarray, optional

Đối số đầu ra. Điều này phải có loại chính xác sẽ được trả lại nếu nó không được sử dụng. Cụ thể, nó phải có đúng loại, phải là C-TIÊU CHUẨN và DTYPE của nó phải là DTYPE sẽ được trả về cho DOT (A, B). Đây là một tính năng hiệu suất. Do đó, nếu các điều kiện này không được đáp ứng, một ngoại lệ được nêu ra, thay vì cố gắng linh hoạt.

ReturnSoutputNdArrayoutputndarray

Trả về sản phẩm DOT của a và b. Nếu A và B là cả hai vô hướng hoặc cả hai mảng 1-D thì một vô hướng được trả về; nếu không một mảng được trả về. Nếu ra ngoài được đưa ra, thì nó được trả lại.

RAISEVALUEERROR

Nếu kích thước cuối cùng của A không có cùng kích thước với kích thước thứ hai đến cuối của b.

Xem thêm

>>> np.dot([2j, 3j], [2j, 3j])
(-13+0j)
0

Sản phẩm DOT liên hợp phức tạp.

>>> np.dot([2j, 3j], [2j, 3j])
(-13+0j)
1

Tổng sản phẩm trên các trục tùy ý.

>>> np.dot([2j, 3j], [2j, 3j])
(-13+0j)
2

Công ước tổng kết Einstein.

matmul

Toán tử@@là phương thức với tham số OUT.

>>> np.dot([2j, 3j], [2j, 3j])
(-13+0j)
4

Chained Dot Sản phẩm.

Ví dụ

Không đối số nào được kết hợp phức tạp:

>>> np.dot([2j, 3j], [2j, 3j])
(-13+0j)

Đối với các mảng 2 chiều, đó là sản phẩm ma trận:

>>> a = [[1, 0], [0, 1]]
>>> b = [[4, 1], [2, 2]]
>>> np.dot(a, b)
array([[4, 1],
       [2, 2]])

>>> a = np.arange(3*4*5*6).reshape((3,4,5,6))
>>> b = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3))
>>> np.dot(a, b)[2,3,2,1,2,2]
499128
>>> sum(a[2,3,2,:] * b[1,2,:,2])
499128