[問題] numpy新手問題 (np相乘與shape變換)

看板Python作者 (PixiyON)時間7年前 (2018/02/19 19:55), 7年前編輯推噓2(2010)
留言12則, 4人參與, 7年前最新討論串1/1
新年快樂 小弟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://www.ptt.cc/bbs/Python/M.1519041332.A.4DB.html

02/19 20:24, 7年前 , 1F
一樣直接np.multiply(A, C)就可了吧 broadcasting
02/19 20:24, 1F
謝謝 其實我原本是(260,40) 這樣好像無法 墊成(260,40,1)就可以

02/19 20:27, 7年前 , 2F
不然也可以用A[np.newaxis, :, :]先墊一個維度再做mul
02/19 20:27, 2F

02/19 20:27, 7年前 , 3F
tiply,這樣就和第一個例子差不多了
02/19 20:27, 3F
這招沒試過 有機會試看看

02/19 20:47, 7年前 , 4F
c.shape=(260, 40)時不行是因為broadcasting的規則是
02/19 20:47, 4F

02/19 20:47, 7年前 , 5F
把大小是1的那個維度拉到跟另外一個陣列一樣,那個時
02/19 20:47, 5F

02/19 20:47, 7年前 , 6F
候A和C完全沒有大小是1的維度所以才無法成功
02/19 20:47, 6F
原來還有這種操作! ※ 編輯: odanaga (118.150.133.146), 02/19/2018 20:54:01

03/02 16:06, 7年前 , 7F

03/02 16:45, 7年前 , 8F

03/06 03:40, 7年前 , 9F
03/06 03:40, 9F

03/06 04:18, 7年前 , 10F
03/06 04:18, 10F

03/06 04:31, 7年前 , 11F
03/06 04:31, 11F

03/06 04:42, 7年前 , 12F
文章代碼(AID): #1QYhiqJR (Python)
文章代碼(AID): #1QYhiqJR (Python)