Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从二维矩阵表示三维矩阵_Python_Python 2.7 - Fatal编程技术网

Python 从二维矩阵表示三维矩阵

Python 从二维矩阵表示三维矩阵,python,python-2.7,Python,Python 2.7,我有一个要求,假设您有5个文本文件,比如a、b、c、d、e,其中值以矩阵形式表示,即a、b、c、d、e的形状为(5,5)、(4,4)、(7,7)、(6,6)、(8,8) 所以我想要的是,从每个文件中获取矩阵后,我必须通过在此处填充零将形状转换为(1,25,25)1表示索引,就像最后我需要一个带有形状(5,25,25)的3D数组一样 最后,所有组合的最终形状应为(5,25,25) 简单例子 a = [[1,2],[3,4]] b = [[5,6],[7,8]] make a and b i

我有一个要求,假设您有5个文本文件,比如a、b、c、d、e,其中值以矩阵形式表示,即a、b、c、d、e的形状为(5,5)、(4,4)、(7,7)、(6,6)、(8,8)

所以我想要的是,从每个文件中获取矩阵后,我必须通过在此处填充零将形状转换为(1,25,25)1表示索引,就像最后我需要一个带有形状(5,25,25)的3D数组一样

最后,所有组合的最终形状应为(5,25,25)

简单例子

a = [[1,2],[3,4]] 

b = [[5,6],[7,8]] 

make a and b in a single list and return like this 
c = [[[1,2],[3,4]],[[5,6],[7,8]]] 

now the shape of c should be (2,2,2)
这是我期望的实际输出

array([[[ 36.85810471,   2.90763259,   2.90761209, ...,   0.        ,
           0.        ,   0.        ],
        [  2.90763259,   0.5       ,   0.29672   , ...,   0.        ,
           0.        ,   0.        ],
        [  2.90761209,   0.29672   ,   0.5       , ...,   0.        ,
           0.        ,   0.        ],
        ..., 
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ]],

       [[ 36.85810471,  12.59994411,   2.90199971, ...,   0.        ,
           0.        ,   0.        ],
        [ 12.59994411,  36.85810471,   1.47311664, ...,   0.        ,
           0.        ,   0.        ],
        [  2.90199971,   1.47311664,   0.5       , ...,   0.        ,
           0.        ,   0.        ],
        ..., 
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ]],

       [[ 36.85810471,  14.26182747,   1.503703  , ...,   0.        ,
           0.        ,   0.        ],
        [ 14.26182747,  36.85810471,   2.92502046, ...,   0.        ,
           0.        ,   0.        ],
        [  1.503703  ,   2.92502046,   0.5       , ...,   0.        ,
           0.        ,   0.        ],
        ..., 
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ]],

       ..., 
       [[ 36.85810471,   8.56999111,  13.29380131, ...,   0.        ,
           0.        ,   0.        ],
        [  8.56999111,  53.35870743,  19.15359688, ...,   0.        ,
           0.        ,   0.        ],
        [ 13.29380131,  19.15359688,  36.85810471, ...,   0.        ,
           0.        ,   0.        ],
        ..., 
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ]],

       [[ 36.85810471,  12.54030132,   8.02613068, ...,   0.        ,
           0.        ,   0.        ],
        [ 12.54030132,  36.85810471,  12.64339542, ...,   0.        ,
           0.        ,   0.        ],
        [  8.02613068,  12.64339542,  36.85810471, ...,   0.        ,
           0.        ,   0.        ],
        ..., 
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ]],

       [[ 36.85810471,  12.62930584,  12.60999584, ...,   0.        ,
           0.        ,   0.        ],
        [ 12.62930584,  36.85810471,   7.73449707, ...,   0.        ,
           0.        ,   0.        ],
        [ 12.60999584,   7.73449707,  36.85810471, ...,   0.        ,
           0.        ,   0.        ],
        ..., 
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ],
        [  0.        ,   0.        ,   0.        , ...,   0.        ,
           0.        ,   0.        ]]], dtype=float32)
形状为(7165,23,23)


有人能告诉我怎么做吗?

这里有一种方法,你可以做我认为你想做的事。假设初始数组是
a
b
等,例如:

a = np.arange(25).reshape((5,5))
b = np.arange(36).reshape((6,6))
c = np.arange(16).reshape((4,4))
...
然后将其填充并堆叠:

W = np.dstack([np.pad(m,((0,25-m.shape[0]),(0,25-m.shape[0])),
                      mode='constant') for m in (a,b,c)])
X = np.rollaxis(W, 2)

X.shape
则是
(3,25,25)
,原始矩阵条目位于每个“层”的左上角。您需要滚动轴,因为深度叠加它们会生成一个具有形状的数组
(25,25,3)

对不起,我不明白您想做什么。你能显示你期望从输入中得到的确切的实际输出吗?只是画点不是很清楚。好的,我会一个接一个的。。。。假设我有一个数组a=[[1,2],[3,4]]b=[[5,6],[7,8],[9,10]]你将如何填充零,使a和b具有形状(5,5)?你能提供一个文件格式(如4x4)的示例吗?简单的示例a=[[1,2],[3,4]]b=[5,6],[7,8]]在一个列表中创建a和b,并像这样返回c=[[1,2],[3,4],[5,6],[7,8]]现在c的形状应该是(2,2,2)@VinodPrime编辑问题,不要在评论中不格式化。
W = np.dstack([np.pad(m,((0,25-m.shape[0]),(0,25-m.shape[0])),
                      mode='constant') for m in (a,b,c)])
X = np.rollaxis(W, 2)