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)