2017-05-12 90 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

相關問題