# NumPy - vdot() function

The NumPy vdot() function returns dot product of two vectors.

The vdot(a, b) function handles complex numbers differently than dot(a, b). If the first argument is complex the complex conjugate of the first argument is used for the calculation of the dot product.

The function does not perform a matrix product for multidimensional arrays. It flattens input arguments to 1-D vectors first and perform the dot product.

### Syntax

```numpy.vdot(a, b)
```

### Parameters

 `a` `Required. `Specify first array-like argument. If a is complex the complex conjugate is taken before calculation of the dot product. `b` `Required. `Specify second array-like argument.

### Return Value

Returns the dot product of a and b.

### Example: vdot() function with scalars

The example below shows the result when two scalars are used with vdot() function.

```import numpy as np
print(np.vdot(5, 10))
```

The output of the above code will be:

```50
```

### Example: vdot() function with 1-D arrays

When two 1-D arrays are used, the function returns inner product of the arrays.

```import numpy as np
Arr1 = [5, 8]
Arr2 = [10, 20]

#returns 5*10 + 8*20 = 210
print(np.vdot(Arr1, Arr2))
```

The output of the above code will be:

```210
```

### Example: vdot() function with complex numbers

When the first argument is complex the function takes the conjugate of the first argument for calculating the dot product. Consider the example below.

```import numpy as np
Arr1 = np.array([1+2j, 1+3j])
Arr2 = np.array([2+2j, 2+3j])

Arr3 = np.vdot(Arr1, Arr2)

print(Arr3)
```

The output of the above code will be:

```(17-5j)
```

The vdot product is calculated as:

```conjugate of Arr1 = [1-2j, 1-3j]

= (1-2j)*(2+2j) + (1-3j)*(2+3j)
= (6-2j) + (11-3j)
= (17-5j)
```

### Example: vdot() function with matrix

When two matrix are used, the function first flattens the matrix to 1-D array then performs inner product.

```import numpy as np
Arr1 = np.array([[1, 2],
[3, 4]])
Arr2 = np.array([[10, 20],
[30, 40]])
Arr3 = np.vdot(Arr1, Arr2)

print(Arr3)
```

The output of the above code will be:

```300
```

The vdot product is calculated as:

```#arrays after flattening
Arr1 = [1, 2, 3, 4]
Arr2 = [10, 20, 30, 40]

#vdot is calculated as
= 1*10 + 2*20 + 3*30 + 4*40
= 10 + 40 + 90 + 160
= 300
```

❮ NumPy - Functions

5