Python之numpy数组维度扩展

在这里插入图片描述

前言

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

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

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

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

实验

假设一个numpy数组如下:

>>> import numpy as 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)

Python之numpy数组维度扩展_第1张图片

参考资料:

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

你可能感兴趣的:(编程语言,#,Python,python,numpy)