[問題] 請問python numpy的矩陣格式

看板Python作者 (The Novel)時間7年前 (2018/04/07 14:58), 編輯推噓6(6018)
留言24則, 5人參與, 7年前最新討論串1/1
我以前用過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

04/07 15:34, 7年前 , 1F
(n,)是個向量,(n,1)是個n*1的矩陣或是說是column vec
04/07 15:34, 1F

04/07 15:34, 7年前 , 2F
tor
04/07 15:34, 2F

04/07 17:14, 7年前 , 3F
恩對 所以要怎麼知道np.dot運算的output會寫成向量還是
04/07 17:14, 3F

04/07 17:14, 7年前 , 4F
矩陣?
04/07 17:14, 4F

04/07 17:14, 7年前 , 5F
如果input是矩陣 output就會是矩陣 應該是這樣吧?
04/07 17:14, 5F

04/07 18:54, 7年前 , 6F
ndarray.ndim可以看出維度....
04/07 18:54, 6F

04/07 20:35, 7年前 , 7F
你把(n,m)和(m,1)做dot就是(n,1) (n,)就網址那種吧
04/07 20:35, 7F

04/07 20:36, 7年前 , 8F
不過想借標題問一下 我其實不太清楚(n,)這種表示法
04/07 20:36, 8F

04/07 20:36, 7年前 , 9F
好處在哪裡 除了可以直接內積得scalar以外
04/07 20:36, 9F

04/07 20:37, 7年前 , 10F
不然我一般使用都轉成2d array對我來說運算比較直覺
04/07 20:37, 10F

04/07 20:38, 7年前 , 11F
而且要內積直接np.sum(np.multiply(...))也可以
04/07 20:38, 11F

04/07 20:38, 7年前 , 12F
不曉得(n,)到底有啥優勢@@
04/07 20:38, 12F

04/07 20:56, 7年前 , 13F
(n,)是一維,(n,1)是二維...觀念清楚就不會不知道結果..
04/07 20:56, 13F

04/07 20:56, 7年前 , 14F
(n,)就一維啊... 如果用不到二維就不用寫成(n,1)
04/07 20:56, 14F

04/07 20:57, 7年前 , 15F
(n,) 好處: 轉 list 會直接變成 [float]
04/07 20:57, 15F

04/07 20:59, 7年前 , 16F
(n,)好處: 取值的時候不用 [n,0] 直接 [n] 就好
04/07 20:59, 16F

04/07 21:23, 7年前 , 17F
寫數學時不會特別把nx1當作二維吧(雖然numpy上是如此)
04/07 21:23, 17F

04/07 21:23, 7年前 , 18F
不過可能就我自己很少不搭配矩陣用所以比較鑽牛角尖
04/07 21:23, 18F

04/07 21:24, 7年前 , 19F
P大講的的確我會flatten完後做類似操作
04/07 21:24, 19F

04/07 21:25, 7年前 , 20F
感覺上是在純向量運算上這種表示法code會比較乾淨
04/07 21:25, 20F

04/07 21:27, 7年前 , 21F
想了下覺得純向量下nx1和1xn似乎都不太好
04/07 21:27, 21F

04/07 21:27, 7年前 , 22F
畢竟這些是在定義矩陣運算後才會出現的結果
04/07 21:27, 22F

04/07 21:28, 7年前 , 23F
突然覺得這種表示法其實比較嚴謹了哈哈 感謝二位
04/07 21:28, 23F

04/08 00:50, 7年前 , 24F
謝謝樓上幾位大德
04/08 00:50, 24F
文章代碼(AID): #1Qo6maTW (Python)
文章代碼(AID): #1Qo6maTW (Python)