首页 > 解决方案 > 转置 Numpy 数组(向量)

问题描述

a = np.array([0,1,2])
b = np.array([3,4,5,6,7])

...

c = np.dot(a,b)

我想转置 b,以便计算 a 和 b 的点积。

标签: pythonnumpy

解决方案


您可以为此使用 numpy 的广播:

import numpy as np

a = np.array([0,1,2])
b = np.array([3,4,5,6,7])


In [3]: a[:,None]*b
Out[3]: 
array([[ 0,  0,  0,  0,  0],
       [ 3,  4,  5,  6,  7],
       [ 6,  8, 10, 12, 14]])

不过,这与点积无关。但在你说的评论中,你想要这个结果。

您还可以使用 numpy 函数outer

In [4]: np.outer(a, b)
Out[4]: 
array([[ 0,  0,  0,  0,  0],
       [ 3,  4,  5,  6,  7],
       [ 6,  8, 10, 12, 14]])

推荐阅读