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
>>>
父主题: 统计基础函数