expand_dims
expand_dims顾名思义就是扩展向量的维度。我们还是先一个例子来理解这个吧。
向量a = [1, 2, 3, 4]
,其维度为1,其shape为(4,)。
执行numpu.expand_dims(a, axis=0)
表示在第1维前再增加1个维度,新的向量就变成了2维。由于总的元素不变,因此新的向量的shape=(1, 4)。那新的二维向量长什么样子呢?简单来讲就是在整个向量的外面增加了一层中括号,如下:
[ |
如果执行numpy.expand_dims(a, axis=-1)
,表示在最里面一层增加一个维度,新的向量的shape就变成了(4, 1)。这就相当于在最里面一层的每个元素外面增加了一层中括号,变成了
[ |
不知道你有没有看出什么规律,向量经过expand_dims处理以后,新的向量的shape中对应axis处的值就是1。
接下来,我们看一个二维向量的例子:
b = |
b的shape是(2, 3),expand_dims(b, axis=0)
以后,其shape就变成了(1, 2, 3)。expand_dims(b, axis=-1)
后的shape为(2, 3, 1)。这两个都比较好理解,和上门1维中差不多。
expand_dims(b, axis=1)
后的shape维(2, 1, 3),新的向量就是在第2维的外面增加一层中括号。如下:
[ |
总结一下,从方便理解和记忆的角度看,向量经过expand_dims以后,其维度增加1。新向量的shape中对应axis处的值为1,向量中元素个数(size)不变。新的向量直观上来看,就是在对于axis的外层增加了一层中括号。