x1[:,np.newaxis]:增维,转置
从字面上是插入新的维度的意思
demo1: 针对一维的情况
>>> b = np.array([1, 2, 3, 4, 5, 6])
>>> b[np.newaxis]
array([[1, 2, 3, 4, 5, 6]])
>>> c = b[np.newaxis] #equals c = b[np.newaxis,:]
>>> b.shape
(6,)
>>> c.shape
(1, 6)
#看一下转置的时候有什么区别
>>> np.transpose(b)
array([1, 2, 3, 4, 5, 6])
>>> np.transpose(c)
array([[1],
[2],
[3],
[4],
[5],
[6]])
#可以看出在矩阵运算的时候还是需要新的维度来规范计算的
对于这个问题还有一种方法,偶然看sidekit源码发现的;
>>> a = np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> b = a[None]
>>> b
array([[1, 2, 3]])
>>> a.shape
(3,)
>>> b.shape
(1, 3)