Python 如何在numpy中求二维和一维数组的和?

Python 如何在numpy中求二维和一维数组的和?,python,arrays,numpy,Python,Arrays,Numpy,假设我有二维和一维numpy数组。我想将第二个数组添加到第一个数组的每个子数组中,并得到一个新的2d数组作为结果 >>> import numpy as np >>> a = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) >>> b = np.array([2, 3]) >>> c = ... # <-- What should be here? >>> c a

假设我有二维和一维numpy数组。我想将第二个数组添加到第一个数组的每个子数组中,并得到一个新的2d数组作为结果

>>> import numpy as np
>>> a = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
>>> b = np.array([2, 3])
>>> c = ... # <-- What should be here?
>>> c
array([[3, 5],
       [5, 7],
       [7, 9],
       [9, 22]])
>>将numpy作为np导入
>>>a=np.数组([[1,2],[3,4],[5,6],[7,8]]
>>>b=np.数组([2,3])
>>>c=…#>>C
数组([[3,5],
[5, 7],
[7, 9],
[9, 22]])
我可以使用循环,但我认为在numpy中有标准的方法来实现

做这件事最好最快的方法是什么?业绩很重要


谢谢。

我认为这些评论没有解释a+b的工作原理。它叫

基本上,如果您有一个NxM矩阵和一个Nx1向量,您可以直接使用
+
操作符“将向量添加到矩阵的每一行

如果您有一个1xM向量,并且希望按列添加它,那么这也可以使用

广播还与其他运营商和其他矩阵维度合作


查看文档以完全理解

a+b
?您真的没有尝试
a+b
?a+b是最快的解决方案吗?我实际上在使用
a+b
时遇到了一个错误……但它解决了我的问题。numpy包含了函数式编程的元素,因此很容易错过
a+b
来自plain-old-python。对于您的实际情况,
a.dtype
有什么好处?