---
title: dot
description: "两个数组的点积。具体来说："
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1106.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1106.html
indexId: acf8ae0b7e029cd9b66fc05b13902b237ef7bac5b7e17808047f9dc72700d3dd61
---
# dot

#### 功能描述

两个数组的点积。具体来说：

- 如果a和b都是一维数组，它是向量的内积（没有复数的共轭）。
- 如果a和b都是二维数组，则是矩阵乘法，但最好使用matmul或a @ b。
- 如果a或b是0-D（标量），则等价于乘法，最好使用multiply或a * b。
- 如果a是N-D数组，而b是1D数组，那么它是a的最后一个轴和b的乘积之和。
- 如果a是N-D数组，而b是M-D数组（其中M>=2），则它是a最后一个轴和b的倒数第二个轴的乘积之和。


#### 必选输入参数

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| a，b | array\_like | 做点积的数组。 |


#### 可选输入参数

| 参数名 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| out | ndarray | None | 输出参数。它必须具有正确的类型，必须是C\-连续的，其dtype必须是为dot(a,b)返回的dtype。为保证性能，如果不满足这些条件，就会抛出异常，而不是强行进行计算。 |


#### 返回数据

| 类型 | 说明 |
| --- | --- |
| ndarray | 返回a和b的点积。如果a和b都是标量或两个1D数组，则返回标量；否则返回数组。如果参数out非空，则返回out。 |


#### 示例

```
>>> import numpy as np
>>> np.dot(7, 9)
63
>>> 
>>> np.dot([2j,3j], [2j, 3j])
(-13+0j)
>>> 
>>> 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)
>>> a = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3))
>>> 
>>> 
>>> 
>>> 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
>>>
```
