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

回到顶部