关于numpy.newaxis的一点理解
文章目录
以下结果均在解释器下验证成功
通过查看源码和解释器验证发现np.newaxis是通过None实现的
|
|
在理解np.newaxis之前我们先看下面代码
|
|
(3,)
所代表的含义是什么??按照我们平常的理解a应该是个一行三列的矩阵,为什么不是(,3)
呢?
|
|
上面代码中使用np.newaxis成功为每个元素增加一个维度,使之处在同一个维度即一列上,上面的列子可能有点特殊,看下面
|
|
这看起来可能不太好理解,可是他的确,变成了三维,他为其中的两个元素[1,2],[3,4]同时增加了一个维度,他们两个在同一维度上,在解释器里验证一下
|
|
现在回过头来看(3,)
他表示的其实是一维矩阵的形状,(3,) != (3,0) and (3,) != (3,None)
,他只是一维矩阵的一种表示形式(元素个数,)
,当我们为
一维矩阵增加一个维度时,他就会便变成二维的,即我们熟悉的(行数,列数)
,当我们再增加一个维度时表示为(行数, 第三维维数,列数)
再来看个例子
|
|
a[:,[1,2]]
类似的做了这样一个操作np.hstack([X[:, 1][:, np.newaxis], X[:, 3][:, np.newaxis]])
,自动加维并竖直合并.
文章作者 oouxx
上次更新 2018-12-07