Python 在numpy中对不同形状的矩阵进行求和和和乘法

Python 在numpy中对不同形状的矩阵进行求和和和乘法,python,numpy,Python,Numpy,我有一个N*M的矩阵A和一个N长度的向量V。我想做一个+V,其中A行I中的每个元素与V中的元素I求和。怎么做 e、 g: 我想对乘法和除法也这样做。解决方案: V = V.reshape(-1,1) A + V 现在,它可以工作了。这里要查找的概念是。它使您能够在任意两个矩阵之间进行点式交互,只要它们的形状对应,或者在没有对应的轴上,至少有一条边退化,即大小1。在您的情况下,您需要向V添加一个轴。您可以按如下方式优雅地执行此操作 A + V[:, np.newaxis] 您需要告诉numpy

我有一个N*M的矩阵A和一个N长度的向量V。我想做一个+V,其中A行I中的每个元素与V中的元素I求和。怎么做

e、 g:

我想对乘法和除法也这样做。

解决方案:

V = V.reshape(-1,1)
A + V

现在,它可以工作了。

这里要查找的概念是。它使您能够在任意两个矩阵之间进行点式交互,只要它们的形状对应,或者在没有对应的轴上,至少有一条边退化,即大小
1
。在您的情况下,您需要向V添加一个轴。您可以按如下方式优雅地执行此操作

A + V[:, np.newaxis]

您需要告诉numpy它必须将向量
V
的维度扩展1,您可以使用特殊索引
np.newaxis
来完成。它看起来是这样的:

import numpy as np

A = np.array([[10,20],[100,200],[1000,2000]])
V = np.array([1,2,3])
A + V[:,np.newaxis]

array([[  11,   21],
       [ 102,  202],
       [1003, 2003]])
从:

选择元组中的每个newaxis对象用于将结果选择的维度扩展一个单位长度维度。添加的维度是newaxis对象在选择元组中的位置


你的例子不正确<未定义代码>a和
v
。你能编辑一下吗?
import numpy as np

A = np.array([[10,20],[100,200],[1000,2000]])
V = np.array([1,2,3])
A + V[:,np.newaxis]

array([[  11,   21],
       [ 102,  202],
       [1003, 2003]])