numpy.squeeze函数采用axis
参数,该参数应为整数。有时我会看到axis参数设置为axis=-1
,但是文档没有说明在这种情况下负整数的作用。
设置了axis=-1
时,numpy.squeeze的作用是什么?
玩弄它,我可以观察到以下内容。 axis参数选择应受挤压影响的数组尺寸。例如:
x = np.array([[[0], [1], [2]]])
x.shape
(1,3,1)
数组x
是三维的,其中第一个维度为1个条目,第二个维度为3个条目,第三个维度为1个条目。选择axis=-1
会导致最终尺寸受到挤压的影响:
np.squeeze(x, axis=-1).shape
(1,3)
因此,基本上,它将选定的尺寸展平到上面的水平,但是仅当选定的尺寸具有长度1时。如果长度较长,则返回错误。
根据文档,轴参数
选择形状中一维条目的子集。
基本上,选择要沿哪个轴应用squeeze
。
例如
a = numpy.ones((1,2,2,1))
a.shape
(1,2,2,1)
numpy.squeeze(a,axis=0).shape
(2,2,1)
numpy.squeeze(a,axis=-1).shape
(1,2,2)
因此axis=-1
通过numpy约定选择最后一个轴
如果最后一个轴的大小大于一个,则会引发错误。