看板 Python 關於我們 聯絡資訊
我以前用過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://www.ptt.cc/bbs/Python/M.1523084324.A.760.html
iphone2003: (n,)是個向量,(n,1)是個n*1的矩陣或是說是column vec 04/07 15:34
iphone2003: tor 04/07 15:34
Bondrewd: 恩對 所以要怎麼知道np.dot運算的output會寫成向量還是 04/07 17:14
Bondrewd: 矩陣? 04/07 17:14
Bondrewd: 如果input是矩陣 output就會是矩陣 應該是這樣吧? 04/07 17:14
vfgce: ndarray.ndim可以看出維度.... 04/07 18:54
goldflower: 你把(n,m)和(m,1)做dot就是(n,1) (n,)就網址那種吧 04/07 20:35
goldflower: 不過想借標題問一下 我其實不太清楚(n,)這種表示法 04/07 20:36
goldflower: 好處在哪裡 除了可以直接內積得scalar以外 04/07 20:36
goldflower: 不然我一般使用都轉成2d array對我來說運算比較直覺 04/07 20:37
goldflower: 而且要內積直接np.sum(np.multiply(...))也可以 04/07 20:38
goldflower: 不曉得(n,)到底有啥優勢@@ 04/07 20:38
vfgce: (n,)是一維,(n,1)是二維...觀念清楚就不會不知道結果.. 04/07 20:56
vfgce: (n,)就一維啊... 如果用不到二維就不用寫成(n,1) 04/07 20:56
Panthalassa: (n,) 好處: 轉 list 會直接變成 [float] 04/07 20:57
Panthalassa: (n,)好處: 取值的時候不用 [n,0] 直接 [n] 就好 04/07 20:59
goldflower: 寫數學時不會特別把nx1當作二維吧(雖然numpy上是如此) 04/07 21:23
goldflower: 不過可能就我自己很少不搭配矩陣用所以比較鑽牛角尖 04/07 21:23
goldflower: P大講的的確我會flatten完後做類似操作 04/07 21:24
goldflower: 感覺上是在純向量運算上這種表示法code會比較乾淨 04/07 21:25
goldflower: 想了下覺得純向量下nx1和1xn似乎都不太好 04/07 21:27
goldflower: 畢竟這些是在定義矩陣運算後才會出現的結果 04/07 21:27
goldflower: 突然覺得這種表示法其實比較嚴謹了哈哈 感謝二位 04/07 21:28
Bondrewd: 謝謝樓上幾位大德 04/08 00:50