np.squeeze什么是axis = -1?

时间:2019-12-08 17:32:30

标签: python python-3.x numpy

numpy.squeeze函数采用一个axis参数,该参数应为整数。有时我会看到axis参数设置为axis=-1,但是文档没有说明这种情况下负整数的作用。

设置axis=-1时numpy.squeeze到底能做什么?

2 个答案:

答案 0 :(得分:2)

玩转它,我可以观察到以下内容。 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。如果长度较长,则会返回错误。

答案 1 :(得分:0)

根据文档,轴参数

  

选择形状中一维条目的子集。

基本上,您可以选择沿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约定选择最后一个轴

如果最后一个轴的尺寸大于一个,则会引发错误。