大家好, 我在使用numpy時遇到了下面的問題
>>>import numpy as np
>>>a = np.array([[1,2,3,4],[5,6,7,8]])
>>>a[0]
array([1,2,3,4])
>>>a[: 1]
array([[1,2,3,4]])
>>>a[0].shape
(4,)
>>>a[: 1].shape
(1,4)
a[: 1]是誤打誤撞試出來的
想請問a[: 1]這個寫法為什麼可以得到1*4的array
謝謝大家幫忙
作者: vfgce (小兵) 2017-11-12 08:02:00
a[0]在這是取第0個row資料,維度降一.a[:1]是用slicea取一個範圍內的資料,維度沒減,所以當然是二個括號(二維),你的例子只是剛好你取的slice只有一個而已,讓你想不通....把你的資料弄到3X3,試看看a[:1],a[:2],a[1:1],a[0],a[1],a[2]....打錯,不是a[1:1]是a[1:2]...PCA跟這無關,我說的降維純指ndim減一.在你資料中,想取維持二維的單一row資料,可以用a[0,np.newaxis]用來也沒比較簡潔..