前言
在numpy数组中,切片功能非常常用,例如x[:]
表示取x
的所有元素。
那么如何对一个numpy数组进行维度扩展呢?
可以通过在切片中增加None
或者np.newaxis
实现,它们的作用就是在相应的位置上增加一个维度,在这个维度上只有一个元素。
在切片操作中np.newaxis
和None
等价:
实验
假设一个numpy数组如下:
>>>import numpyas np>>> x= np.array([[[1],[2],[3]],[[4],[5],[6]]])
其维度为:
>>> x.shape(2,3,1)
希望将其维度增加为(1,2,3,1):
可以通过在切片中增加None
:
>>> y= x[None]>>> y
array([[[[1],[2],[3]],[[4],[5],[6]]]])>>> y.shape(1,2,3,1)
或者在切片中加入np.newaxis
:
>>> z= x[np.newaxis]>>> z
array([[[[1],[2],[3]],[[4],[5],[6]]]])>>> z.shape(1,2,3,1)
还可以将其维度增加为(2,1,3,1):
>>> a= x[:,None,:,:]>>> a
array([[[[1],[2],[3]]],[[[4],[5],[6]]]])>>> a.shape(2,1,3,1)