繁体   English   中英

Numpy:向矩阵列添加向量

[英]Numpy: add a vector to matrix column wise

a
Out[57]: 
array([[1, 2],
       [3, 4]])

b
Out[58]: 
 array([[5, 6],
       [7, 8]])

In[63]: a[:,-1] + b
Out[63]: 
array([[ 7, 10],
       [ 9, 12]])

这是行添加。 如何将列添加到列中以获取

In [65]: result
Out[65]: 
array([[ 7,  8],
       [11, 12]])

我不想转置整个数组,添加然后转置回来。 还有其他方法吗?

a[:,-1]的末尾添加newaxis,使其具有形状(2,1) 然后用b将沿着列(第二轴)而不是行(这是默认值) 广播

In [47]: b + a[:,-1][:, np.newaxis]
Out[47]: 
array([[ 7,  8],
       [11, 12]])

a[:,-1]具有形状(2,) b具有形状(2,2) 默认情况下,广播在左侧添加新轴。 所以当NumPy计算a[:,-1] + b它的广播机制会使a[:,-1]的形状变为(1,2)并广播到(2,2) ,其值为长度为1的轴(即沿其行)将被广播。

相反, a[:,-1][:, np.newaxis]具有形状(2,1) 因此,广播将其形状改变为(2,2) ,其沿着其长度为1的轴(即,沿其列)被广播。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM