[问题] 请问python numpy的矩阵格式

楼主: Bondrewd (The Novel)   2018-04-07 14:58:40
我以前用过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,) 这个决定的规则?
谢谢大家
作者: iphone2003 (307)   2018-04-07 15:34:00
(n,)是个向量,(n,1)是个n*1的矩阵或是说是column vector
楼主: Bondrewd (The Novel)   2018-04-07 17:14:00
恩对 所以要怎么知道np.dot运算的output会写成向量还是矩阵?如果input是矩阵 output就会是矩阵 应该是这样吧?
作者: vfgce (小兵)   2018-04-07 18:54:00
ndarray.ndim可以看出维度....
作者: goldflower (金色小黄花)   2018-04-07 20:35:00
你把(n,m)和(m,1)做dot就是(n,1) (n,)就网址那种吧不过想借标题问一下 我其实不太清楚(n,)这种表示法好处在哪里 除了可以直接内积得scalar以外不然我一般使用都转成2d array对我来说运算比较直觉而且要内积直接np.sum(np.multiply(...))也可以不晓得(n,)到底有啥优势@@
作者: vfgce (小兵)   2018-04-07 20:56:00
(n,)是一维,(n,1)是二维...观念清楚就不会不知道结果..(n,)就一维啊... 如果用不到二维就不用写成(n,1)
作者: Panthalassa   2018-04-07 20:57:00
(n,) 好处: 转 list 会直接变成 [float](n,)好处: 取值的时候不用 [n,0] 直接 [n] 就好
作者: goldflower (金色小黄花)   2018-04-07 21:23:00
写数学时不会特别把nx1当作二维吧(虽然numpy上是如此)不过可能就我自己很少不搭配矩阵用所以比较钻牛角尖P大讲的的确我会flatten完后做类似操作感觉上是在纯向量运算上这种表示法code会比较干净想了下觉得纯向量下nx1和1xn似乎都不太好毕竟这些是在定义矩阵运算后才会出现的结果突然觉得这种表示法其实比较严谨了哈哈 感谢二位
楼主: Bondrewd (The Novel)   2018-04-08 00:50:00
谢谢楼上几位大德

Links booklink

Contact Us: admin [ a t ] ucptt.com