作者Bondrewd (The Novel)
看板Python
标题[问题] 请问python numpy的矩阵格式
时间Sat Apr 7 14:58:40 2018
我以前用过matlab 现在在学python
想请问 numpy中的array
shape是(n,1) 跟 (n,) 要怎麽分辨?
要怎麽知道np.dot出来的会是(n,1) 还是 (n,)?
我知道要把(n,1)转成 (n,)要用 np.squeeze
可是计算时两者不能一起计算 系统会报错dimension不合
我想要知道python里面是怎麽决定np.dot出来会是(n,1)还是(n,)?
我知道我这问题可能很菜
看到stackoverflow上面也有人问过
stackoverflow.com/questions/17869840/numpy-vector-n-1-dimension-n-dimension
-conversion
可是我知道怎麽转换 (np.squeeze)
问题是我想要知道np.dot怎麽决定出来是(n,1)还是(n,) 这个决定的规则?
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.164.115.168
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1523084324.A.760.html
1F:推 iphone2003: (n,)是个向量,(n,1)是个n*1的矩阵或是说是column vec 04/07 15:34
2F:→ iphone2003: tor 04/07 15:34
3F:→ Bondrewd: 恩对 所以要怎麽知道np.dot运算的output会写成向量还是 04/07 17:14
4F:→ Bondrewd: 矩阵? 04/07 17:14
5F:→ Bondrewd: 如果input是矩阵 output就会是矩阵 应该是这样吧? 04/07 17:14
6F:推 vfgce: ndarray.ndim可以看出维度.... 04/07 18:54
7F:推 goldflower: 你把(n,m)和(m,1)做dot就是(n,1) (n,)就网址那种吧 04/07 20:35
8F:→ goldflower: 不过想借标题问一下 我其实不太清楚(n,)这种表示法 04/07 20:36
9F:→ goldflower: 好处在哪里 除了可以直接内积得scalar以外 04/07 20:36
10F:→ goldflower: 不然我一般使用都转成2d array对我来说运算比较直觉 04/07 20:37
11F:→ goldflower: 而且要内积直接np.sum(np.multiply(...))也可以 04/07 20:38
12F:→ goldflower: 不晓得(n,)到底有啥优势@@ 04/07 20:38
13F:推 vfgce: (n,)是一维,(n,1)是二维...观念清楚就不会不知道结果.. 04/07 20:56
14F:→ vfgce: (n,)就一维啊... 如果用不到二维就不用写成(n,1) 04/07 20:56
15F:→ Panthalassa: (n,) 好处: 转 list 会直接变成 [float] 04/07 20:57
16F:→ Panthalassa: (n,)好处: 取值的时候不用 [n,0] 直接 [n] 就好 04/07 20:59
17F:推 goldflower: 写数学时不会特别把nx1当作二维吧(虽然numpy上是如此) 04/07 21:23
18F:→ goldflower: 不过可能就我自己很少不搭配矩阵用所以比较钻牛角尖 04/07 21:23
19F:→ goldflower: P大讲的的确我会flatten完後做类似操作 04/07 21:24
20F:→ goldflower: 感觉上是在纯向量运算上这种表示法code会比较乾净 04/07 21:25
21F:推 goldflower: 想了下觉得纯向量下nx1和1xn似乎都不太好 04/07 21:27
22F:→ goldflower: 毕竟这些是在定义矩阵运算後才会出现的结果 04/07 21:27
23F:→ goldflower: 突然觉得这种表示法其实比较严谨了哈哈 感谢二位 04/07 21:28
24F:→ Bondrewd: 谢谢楼上几位大德 04/08 00:50