大家好, 我在使用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]用来也没比较简洁..