2017-05-12 62 views
1

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

>>> 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内。

什么是最好和最快捷的方法呢?性能很重要。

谢谢。

+8

.........'a + b'? – Divakar

+2

你真的没试过'a + b'吗? – EdChum

+0

'a + b'是最快捷的解决方案吗?我实际上遇到了使用'a + b'的错误......但它适用于我的问题。 – Fomalhaut

回答

2

我认为评论缺少解释为什么a + b的作品。这就是所谓的broadcasting

基本上如果你有一个N×M的矩阵和NX1向量,就可以直接使用+运营商以“矢量添加到矩阵中的每一行。

,如果你有一个1xM这也适用矢量并希望纵列添加它。

广播还与其他运营商和其他矩阵尺寸。

看看文档,以充分了解broadcasting

相关问题