numpy dot函数
1. numpy dot函数的介绍 numpy dot函数是numpy中最常用的函数之一,用于计算两个数组的点积。它能够对于一维、二维以及高维的数组进行计算,并且在计算过程中能够自动进行广播。
2. 函数参数 在使用numpy dot函数时,需要指定两个参数:第一个参数是要进行点积计算的左侧数组,第二个参数是要进行点积计算的右侧数组。需要注意,这两个数组的维度必须匹配,否则会出现ValueError错误。同时,如果两个数组的元素类型不一致,则进行点积计算时会自动进行类型转换。
3. 函数返回值 numpy dot函数的返回值是两个数组的点积结果。如果第一个数组的维度是m*n,第二个数组的维度是n*p,则结果数组的维度是m*p。如果两个数组的维度不符合点积计算的规则,则会出现ValueError错误。
4. 一维数组的点积计算 在对于一维数组进行点积计算时,numpy dot函数会将两个数组当做向量,并且对其进行内积计算。例如, import numpy as np x = np.array([1,2,3]) y = np.array([4,
5,6]) result = np.dot(x,y) print(result) 输出结果为: 32 此时的计算结果是1×4+2×5+3×6=32,即两个向量的内积。
5. 二维数组的点积计算 在对于二维数组进行点积计算时,numpy dot函数会将两个数组当做矩阵,并且对其进行矩阵乘法计算。例如, import numpy as np x = np.array([[1,2],[3,4]]) y = np.array([[5,6],[7,8]]) result = np.dot(x,y) print(result) 输出结果为: [[19 22]  [43 50]] 此时的计算结果是: 第1行、第1列:1×5+2×7=19 第1行、第2列:1×6+2×8=22 第2行、第1列:3×5+4×7=43 第2行、第2列:3×6+4×8=50 即两个矩阵的矩阵乘积。
6. 三维及以上数组的点积计算 在对于三维及以上数组进行点积计算时,numpy dot函数会将两个数组当做张量,并且对其进行张量乘法计算。例如, import numpy as np x = np.array([[[1,2],[3,4]],[[5,6],[7,8]]]) y = np.array([[[9,10],[11,12]],[[13,14],[15,16]]]) result = np.dot(x,y) print(result) 输出结果为: [[[ 35  40]  [ 81  92]]
[[ 73  84]  [171 196]]] 此时的计算结果是: 第1个张量中的第1个矩阵与第2个张量中的第1个矩阵进行点积计算得到第1个张量中的第1个矩阵。 第1个张量中的第2个矩阵与第2个张量中的第1个矩阵进行点积计算得到第1个张量中的第2个矩阵。 第1个张量中的第1个矩阵与第2
个张量中的第2个矩阵进行点积计算得到第2个张量中的第1个矩阵。 第1个张量中的第2个矩阵与第2个张量中的第2个矩阵进行点积计算得到第2个张量中的第2个矩阵。 即两个张量的点积计算。
7. 广播计算 当两个数组的维度不完全匹配时,numpy dot函数能够进行广播计算。广播计算的规则与numpy的广播机制相同,即对于每一个维度,如果满足以下条件之一,则认为数组在该维度上是“兼容的”:    1. 两个数组在该维度上的大小相同    2. 其中一个数组在该维度上的大小为1
numpy库统计函数如果两个数组在某一个维度上不兼容,则将在该维度上进行广播,使得两个数组在该维度上具有相同的大小。例如, import numpy as np x = np.array([1,2,3]) y = np.array([[4,5,6],[7,8,9]]) result = np.dot(x,y) print(result) 输出结果为: [29 32 35] 此时的计算相当于对于x的每一个元素,都分别与y的每一行进行内积计算。
8. 总结 numpy dot函数用于计算两个数组的点积,能够自动进行广播计算,是numpy中最常用的函数之一。在使用该函数时,需要注意传入的数组的维度是否匹配,以及广播计算是否符合预期。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。