我知道在numpy中,如果你有一个矩阵A,并且我通过执行A - v来减去一个向量v,则会进行广播,使v成为与A相同的维度,并执行逐元素的减法。
我想知道如果我需要对相同的A但不同的v执行上述操作多次,是否能够使用向量化进行操作。
一个朴素的实现方式如下:
输出应该是两个矩阵。
我想知道如果我需要对相同的A但不同的v执行上述操作多次,是否能够使用向量化进行操作。
一个朴素的实现方式如下:
def foo(A, V):
"""
@params: A, V
A - an n by m matrix
V - a list of n by 1 column vectors
@returns: result
"""
result = []
for v in V:
result.append(A-v)
return result
我知道可以将V作为一个n行p列的矩阵传入,其中每一列代表一个向量v。然而,我无法想到任何用线性代数描述上述操作的方式。
例如,如果
A = [[1 2 3],
[1 2 3]]
V = [[1 4],
[1 4]]
输出应该是两个矩阵。
[
[[0 1 2],
[0,1,2]],
[[-3 -2 -1],
[-3 -2, -1]]
]
result = [A - v for v in V]
- BLimitless[A-v[0], A-v[0]-v[1],...]
?A-np.cumsum(v, axis=1)
可能可以做到。 - hpaulj