gpt4 book ai didi

python - numpy.dot 如何用二维数组计算一维数组

转载 作者:太空狗 更新时间:2023-10-30 00:45:16 24 4
gpt4 key购买 nike

numpy.dot 文档字符串说:

For 2-D arrays it is equivalent to matrix multiplication, and for 1-D arrays to inner product of vectors (without complex conjugation). For N dimensions it is a sum product over the last axis of a and the second-to-last of b

但是没有说明numpy.dot是如何用二维数组计算一维数组的。那么Numpy是如何用二维数组(矩阵)来处理一维数组(向量)的呢?

我做了一些测试:

In [27]: a
Out[27]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

In [28]: b
Out[28]: array([0, 1, 2])

In [29]: np.dot(a,b)
Out[29]: array([ 5, 14, 23])

In [30]: np.dot(a, b.reshape(-1,1))
Out[30]:
array([[ 5],
[14],
[23]])

In [31]: np.dot(a, b.reshape(-1,1)).ravel() # same as np.dot(a,b)
Out[31]: array([ 5, 14, 23])

In [32]: np.dot(b,a)
Out[32]: array([15, 18, 21])

In [33]: np.dot(b.reshape(1,-1), a)
Out[33]: array([[15, 18, 21]])

In [34]: np.dot(b.reshape(1,-1), a).ravel() # same as np.dot(b,a)
Out[34]: array([15, 18, 21])

以上测试表明 numpy.dot 可以用二维数组处理一维数组。这样对吗?

最佳答案

一维数组和二维数组作为矩阵-向量(或向量-矩阵)乘积处理。该实现实际上使用 BLAS *gemv 函数来处理浮点输入的这种情况。

关于python - numpy.dot 如何用二维数组计算一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20121610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com