python - 如何将两个向量相乘并得到一个矩阵?

标签 python numpy matrix vector matrix-multiplication

在 numpy 操作中,我有两个向量,假设向量 A 是 4X1,向量 B 是 1X5,如果我使用 AXB,它应该产生一个大小为 4X5 的矩阵。

但我尝试了很多次,进行了多种 reshape 和转置,它们要么引发错误提示未对齐,要么返回单个值。

我应该如何得到我想要的矩阵的输出结果?

最佳答案

只要向量具有正确的形状,普通矩阵乘法就可以工作。请记住,Numpy 中的 *逐元素乘法,矩阵乘法可用于 numpy.dot()(或 @ 运算符,在 Python 3.5 中)

>>> numpy.dot(numpy.array([[1], [2]]), numpy.array([[3, 4]]))
array([[3, 4],
       [6, 8]])

这称为“外积”。您可以使用 numpy.outer() 使用纯向量获取它:

>>> numpy.outer(numpy.array([1, 2]), numpy.array([3, 4]))
array([[3, 4],
       [6, 8]])

关于python - 如何将两个向量相乘并得到一个矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28578302/

相关文章:

python - 适合 Django 初学者的快速 Python 教程?

python - 从 numpy 二维数组中删除 NAN

python - numpy 数组赋值比 python 列表慢

matlab - 检查数据是否存在于另一个矩阵中,如果存在,则替换它

python - 属性错误 : can't set attribute in python

python - 使用 Python 创建 HTML 标签云?

python - 如何构造一个适合 numpy 排序的数组?

python - 将用户/项目 View 数据转换为二维指标

matlab - 计算方阵的部分累积和

go - 是否有众所周知的四元数测试向量?惩罚幼稚实现的已知测试代码?