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

标签 python numpy matrix

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

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

使用A 矩阵和binput 向量。 Ab是固定的,input是变化的。因此,我想将 Ab 简化为单个元素,向量或矩阵,然后可以通过乘法或点积与输入向量组合.可惜我不会写

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

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

最佳答案

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

Ab = A/b[:,None]

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

Ab.dot(input)

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

sample 运行-

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])

关于python - 矩阵和向量中的除法和乘法序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43425983/

相关文章:

python - ipython并行和非复制发送numpy数组

减少行梯队形式

python - 在python中求解矩形矩阵以获得具有任意参数的解决方案

c - Cuda C 上任意大小的矩阵转置(具有共享内存)

python - 如何配置python程序连接QUEUE MANAGE?

python - pipenv 无法创建虚拟环境

Python Numpy 逻辑回归

python - 计算矩阵的每个元素

python - 利布罗萨 0.8.0 |人声分离输出有效,但速度高达 200%

python - 如何在 python 中将数字作为具有一组位数的二进制字符串返回