Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按列添加矩阵和向量?_Python_Numpy - Fatal编程技术网

Python 如何按列添加矩阵和向量?

Python 如何按列添加矩阵和向量?,python,numpy,Python,Numpy,考虑以下几点: >>> matrix = numpy.array([[1, 2, 3], ... [4, 5, 6], ... [7, 8, 9]]) >>> vector = numpy.array([10, 20, 30]) >>> matrix + vector array([[11, 22, 33], [14, 25, 36],

考虑以下几点:

>>> matrix = numpy.array([[1, 2, 3],
...                       [4, 5, 6],
...                       [7, 8, 9]])
>>> vector = numpy.array([10, 20, 30])
>>> matrix + vector
array([[11, 22, 33],
       [14, 25, 36],
       [17, 28, 39]])
这将按行添加向量和矩阵(即每行添加向量)

如何按列执行相同的操作?结果应该是

>>> ???
array([[11, 12, 13],
       [24, 25, 26],
       [37, 38, 39]])
我知道我可以使用

>>> (matrix.T + vector).T
array([[11, 12, 13],
       [24, 25, 26],
       [37, 38, 39]])

然而,我有许多这样的补充,使用这种双重转置将使代码非常不可读。是否有办法配置nArray,使其沿第一个轴(而不是最后一个轴)执行加法操作?

将矢量设为列:

matrix + vector[:, None]

也许这会有所帮助:它的可读性并没有太大提高……您也可以使用
vector.shape=(-1,1)
来实现这一点(可以说更清晰)。
-1
基本上是为“保持向量的大小”而编码,或者直接定义
vector=np.array([[10]、[20]、[30]])
一旦你习惯了它,
[:,None]
版本就清晰易用了。