推 AndyLee76: 就取出矩陣的第一個row啊 11/12 01:18
a[0]也是取出row 可是他的外面不會多一對中括號
想問為什麼slice的寫法會多一對中括號
因為在使用的function需要2維array當引數 不能是1維的
推 pups003: 多開幾個維度試試看就知道了 11/12 01:39
※ 編輯: ChuYoYo0719 (140.116.245.185), 11/12/2017 01:44:02
※ 編輯: ChuYoYo0719 (140.116.245.185), 11/12/2017 01:55:28
推 vfgce: a[0]在這是取第0個row資料,維度降一.a[:1]是用slicea取一個 11/12 08:02
→ vfgce: 範圍內的資料,維度沒減,所以當然是二個括號(二維),你的例子 11/12 08:03
→ vfgce: 只是剛好你取的slice只有一個而已,讓你想不通....把你的資 11/12 08:04
→ vfgce: 料弄到3X3,試看看a[:1],a[:2],a[1:1],a[0],a[1],a[2].... 11/12 08:05
推 vfgce: 打錯,不是a[1:1]是a[1:2]... 11/12 08:08
我後來有試著改變slice的範圍,有理解了slice是取範圍內的資料所以不會降維
那一般要取第i個不會降維的row, 都是用a[i:i-1]這種寫法, 還是有另外的方式
(google關鍵字有降維只會找到PCA ~"~ )
※ 編輯: ChuYoYo0719 (140.116.245.185), 11/12/2017 12:14:03
推 vfgce: PCA跟這無關,我說的降維純指ndim減一. 11/12 19:14
→ vfgce: 在你資料中,想取維持二維的單一row資料, 11/12 19:16
→ vfgce: 可以用a[0,np.newaxis] 11/12 19:17
推 vfgce: 用來也沒比較簡潔.. 11/12 19:19
推 tony123930: 應該是說,這是python的用法問題。arr[:n]指的是回傳0 11/13 17:22
→ tony123930: ~n-1的array,你的範例就只是剛好選到一個,所以回傳a 11/13 17:22
→ tony123930: rr[0]以後再包成array 11/13 17:22