作者s90104123 (也许当时忙着微笑和哭泣)
看板Python
标题[问题] Numpy shape问题
时间Wed Jun 3 15:34:34 2020
我有两个都是1*3矩阵
[[0, 1, 0, 1, 0], [0, 0, 0, 0, 1], [0, 1, 1, 0, 1]]
[[1, 0, 1, 0, 1], [0, 1, 0, 1, 0],[1, 0, 1, 0, 1]]
把一个变成转置矩阵
3*1和1*3矩阵
变成各个元素相乘的3*3矩阵
https://i.imgur.com/5ptSPaZ.jpg
但是在numpy他好像把他看成3*5
https://i.imgur.com/3qxpx4o.jpg
请问有什麽改法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.141.63.209 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1591169676.A.005.html
※ 编辑: s90104123 (223.141.63.209 台湾), 06/03/2020 15:36:16
1F:推 skyconquer: array_1.shape 跟 array_2.shape 都给出 (3,5) 结果 06/03 16:24
2F:→ tsoahans: np.inner(a,b) 06/03 16:26
3F:→ skyconquer: 这样看来Python把它们视为有3个row跟5个column的矩阵 06/03 16:27
4F:→ skyconquer: 错误讯息是因为"array_1 = array_1.reshape( 06/03 16:28
5F:→ skyconquer: array_1.shape[0],1)"这行,改成array_1.reshape(5,3) 06/03 16:29
6F:→ skyconquer: 可过,但不是你要的。 06/03 16:30
7F:→ s90104123: 对 能否让两个array各自的shape从(3,5)变成(3,1)呢? 06/03 16:34
8F:推 skyconquer: 请问您最後的结果是要一个3*3矩阵,元素都是内积吗? 06/03 16:36
9F:→ s90104123: 像是左下角 10101乘以01010 会是[0*1,1*0,0*1,1*0,0*1] 06/03 16:42
10F:→ s90104123: 谢谢 06/03 16:42
11F:推 skyconquer: 如果是的话,可以用这个方式,看看结果如何: 06/03 16:42
12F:→ skyconquer: 喔喔,我再想一下,我以为元素都是纯量。 06/03 16:43
13F:推 robert09080: array2.reshape成(5, 3),然後np.dot(array1, array2 06/03 18:10
14F:→ robert09080: ),就是(3, 3)的答案了吧? 06/03 18:10
15F:推 robert09080: 没看到回应,那你输入的两个array改成三维的如何? 06/03 18:15
16F:→ s90104123: 感谢 三维解决了 06/03 19:25