numpy通过向量减去矩阵的每一行
所以我有一个 矩阵和一个 向量。我正在尝试编写代码以向量减去矩阵中的每一行。
我目前有一个 循环遍历该循环,并 通过向量减去矩阵中的-th行。
谢谢!
当前代码:
for i in xrange( len( X1 ) ): X[i,:] = X1[i,:] - X2
这是 矩阵的 第-行, 是向量。我可以这样做,这样就不需要 循环了吗?
回答:
在作品numpy
,但 。这是从矩阵成功减去向量的示例:
In [27]: print m; m.shape[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
Out[27]: (4, 3)
In [28]: print v; v.shape
[0 1 2]
Out[28]: (3,)
In [29]: m - v
Out[29]:
array([[0, 0, 0],
[3, 3, 3],
[6, 6, 6],
[9, 9, 9]])
之所以可行,是因为两者的尾轴具有相同的尺寸(3)。
在您的情况下,引导轴具有相同的尺寸。这是使用与v
上面相同的示例,说明如何解决该问题:
In [35]: print m; m.shape[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
Out[35]: (3, 4)
In [36]: (m.transpose() - v).transpose()
Out[36]:
array([[0, 1, 2, 3],
[3, 4, 5, 6],
[6, 7, 8, 9]])
此处将详细解释广播轴的规则。
以上是 numpy通过向量减去矩阵的每一行 的全部内容, 来源链接: utcz.com/qa/411470.html