作者odanaga (PixiyON)
看板Python
標題[問題] numpy新手問題 (np相乘與shape變換)
時間Mon Feb 19 19:55:29 2018
新年快樂
小弟python新手想問個numpy問題
今天我有一個shape = (40,3)的A
還有一個shape = (40,1)的B
利用np.multiply可以乘出一個shape = (40,3)的矩陣
若我今天有一個C.shape = (260,40,1)
我要怎樣才能(不用for迴圈)乘出一個(260,40,3)的矩陣呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.150.133.146
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1519041332.A.4DB.html
1F:推 iphone2003: 一樣直接np.multiply(A, C)就可了吧 broadcasting 02/19 20:24
謝謝 其實我原本是(260,40) 這樣好像無法
墊成(260,40,1)就可以
2F:→ iphone2003: 不然也可以用A[np.newaxis, :, :]先墊一個維度再做mul 02/19 20:27
3F:→ iphone2003: tiply,這樣就和第一個例子差不多了 02/19 20:27
這招沒試過 有機會試看看
4F:推 iphone2003: c.shape=(260, 40)時不行是因為broadcasting的規則是 02/19 20:47
5F:→ iphone2003: 把大小是1的那個維度拉到跟另外一個陣列一樣,那個時 02/19 20:47
6F:→ iphone2003: 候A和C完全沒有大小是1的維度所以才無法成功 02/19 20:47
原來還有這種操作!
※ 編輯: odanaga (118.150.133.146), 02/19/2018 20:54:01