矩阵和向量中的除法和乘法序列

时间:2017-04-15 12:18:47

标签: python numpy matrix

我有(在python中)以下操作(使用numpy表示矩阵和向量):

result = (A.dot(input)/b)

使用A矩阵和binput向量。 Ab已修复,input正在发生变化。因此,我想将Ab简化为单个元素,向量或矩阵,然后可以通过乘法或点积与输入向量组合。不幸的是我不能写

result = (A/b).dot(input)

之后会导致错误的值。我怎样才能将Ab连接成一个元素?

1 个答案:

答案 0 :(得分:2)

使用None/np.newaxisb扩展为2D,然后将A除以它:

Ab = A/b[:,None]

然后使用矩阵乘法在这些迭代中重复使用Ab,其中input作为唯一变量:

Ab.dot(input)

作为旁注,尽量避免使用也是Python内置函数名的变量名,在本例中为input

示例运行 -

In [164]: A = np.random.rand(4,5)

In [165]: input1 = np.random.rand(5)

In [166]: b = np.random.rand(4)

In [167]: (A.dot(input1)/b)
Out[167]: array([ 2.80446671,  4.49821539,  3.73365285,  1.83176278])

In [168]: Ab = A/b[:,None]

In [169]: Ab.dot(input1)
Out[169]: array([ 2.80446671,  4.49821539,  3.73365285,  1.83176278])