Python之numpy数组维度扩展

2022-10-25 12:06:43

在这里插入图片描述

前言

在numpy数组中,切片功能非常常用,例如x[:]表示取x的所有元素。

那么如何对一个numpy数组进行维度扩展呢?

可以通过在切片中增加None或者np.newaxis实现,它们的作用就是在相应的位置上增加一个维度,在这个维度上只有一个元素。

在切片操作中np.newaxisNone等价:
在这里插入图片描述

实验

假设一个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)

在这里插入图片描述

参考资料:

[1]NumPy Indexing
[2]numpy[…, None]的理解

  • 作者:TracelessLe
  • 原文链接:https://blog.csdn.net/TracelessLe/article/details/108021062
    更新时间:2022-10-25 12:06:43