减去矩阵中的某一行

时间:2015-04-14 14:43:15

标签: python matrix

所以我有一个4乘4的矩阵。 [[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]

我需要用[1,2,3,4]

减去第二行 如果可能的话,没有numpy。我是初学者,不知道如何使用

日Thnx

1 个答案:

答案 0 :(得分:0)

使用常规Python循环:

a = [[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]
b = [1,2,3,4]
for i in range(4):
    a[1][i] -= b[i]

只需循环遍历b列表中的条目,然后从a[1]中的相应条目中减去a矩阵的第二个列表(即行)。

但是,NumPy可以更快,更轻松地为您完成此操作,并且不难学习:

In [47]: import numpy as np
In [48]: a = np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]])

In [49]: a
Out[49]: 
array([[1, 2, 3, 4],
       [2, 3, 4, 5],
       [3, 4, 5, 6],
       [4, 5, 6, 7]])

In [50]: a[1] -= [1,2,3,4]

In [51]: a
Out[51]: 
array([[1, 2, 3, 4],
       [1, 1, 1, 1],
       [3, 4, 5, 6],
       [4, 5, 6, 7]])

请注意NumPy 矢量化它的许多操作(例如减法),因此所涉及的循环都是为你处理的(在快速的,预编译的C代码中)。