请考虑以下事项:
>>> 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,以便它们将沿第一个轴(而不是最后一个轴)执行添加?
答案 0 :(得分:2)
将向量设为列:
matrix + vector[:, None]