Skip to main content
`Ctrl`+`K`

# numpy.vdot

numpy.vdot(a, b, /)

  Return the dot product of two vectors.

  The `vdot` function handles complex numbers differently than `dot`: if the first argument is complex, it is replaced by its complex conjugate in the dot product calculation. `vdot` also handles multidimensional arrays differently than `dot`: it does not perform a matrix product, but flattens the arguments to 1-D arrays before taking a vector dot product.

  Consequently, when the arguments are 2-D arrays of the same shape, this function effectively returns their Frobenius inner product (also known as the trace inner product or the standard inner product on a vector space of matrices).

  Parameters:
    a array_like

      If a is complex the complex conjugate is taken before calculation of the dot product.

    b array_like

      Second argument to the dot product.

  Returns:
    output ndarray

      Dot product of a and b. Can be an int, float, or complex depending on the types of a and b.

  See also

  `dot`

    Return the dot product without using the complex conjugate of the first argument.

  Examples

      >>> import numpy as np
      >>> a = np.array([1+2j,3+4j])
      >>> b = np.array([5+6j,7+8j])
      >>> np.vdot(a, b)
      (70-8j)
      >>> np.vdot(b, a)
      (70+8j)

  Note that higher-dimensional arrays are flattened!

      >>> a = np.array([[1, 4], [5, 6]])
      >>> b = np.array([[4, 1], [2, 2]])
      >>> np.vdot(a, b)
      30
      >>> np.vdot(b, a)
      30
      >>> 1*4 + 4*1 + 5*2 + 6*2
      30