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