如何在Python中为numpy数组添加维度

HM1*_*M14 0 python arrays numpy dimensions

我有一个大小的数组(214,144).我需要它(214,144,1)有没有办法在Python中轻松完成这项工作?基本上尺寸应该是(天,时间,站).由于我只有1个站点的数据,维度将是1.但是,如果我还可以使代码足够灵活,那么说2个站点会很好(例如将维度大小从(428,288)更改为(214,144,2))那太好了!

ken*_*ytm 5

你可以使用reshape:

>>> a = numpy.array([[1,2,3,4,5,6],[7,8,9,10,11,12]])
>>> a.shape
(2, 6)
>>> a.reshape((2, 6, 1))
array([[[ 1],
        [ 2],
        [ 3],
        [ 4],
        [ 5],
        [ 6]],

       [[ 7],
        [ 8],
        [ 9],
        [10],
        [11],
        [12]]])
>>> _.shape
(2, 6, 1)
Run Code Online (Sandbox Code Playgroud)

除了将形状更改(x, y)(x, y, 1),您也可以使用(x, y/n, n),但您可能需要根据输入指定列顺序:

>>> a.reshape((2, 3, 2))
array([[[ 1,  2],
        [ 3,  4],
        [ 5,  6]],

       [[ 7,  8],
        [ 9, 10],
        [11, 12]]])
>>> a.reshape((2, 3, 2), order='F')
array([[[ 1,  4],
        [ 2,  5],
        [ 3,  6]],

       [[ 7, 10],
        [ 8, 11],
        [ 9, 12]]])
Run Code Online (Sandbox Code Playgroud)