如何按列添加矩阵和向量?

时间:2017-02-01 23:41:07

标签: python numpy

请考虑以下事项:

>>> matrix = numpy.array([[1, 2, 3],
...                       [4, 5, 6],
...                       [7, 8, 9]])
>>> vector = numpy.array([10, 20, 30])
>>> matrix + vector
array([[11, 22, 33],
       [14, 25, 36],
       [17, 28, 39]])

这会添加向量和矩阵 row-wise (即每行都添加了向量)。

如何执行相同的列式?结果应该是

>>> ???
array([[11, 12, 13],
       [24, 25, 26],
       [37, 38, 39]])

我知道我可以使用

>>> (matrix.T + vector).T
array([[11, 12, 13],
       [24, 25, 26],
       [37, 38, 39]])

但是我有很多这样的添加,并且使用这种双转置将使代码非常难以理解。有没有办法配置ndarrays,以便它们将沿第一个轴(而不是最后一个轴)执行添加?

1 个答案:

答案 0 :(得分:2)

将向量设为列:

matrix + vector[:, None]