作者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/cn.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