簡體   English   中英

將3D矩陣轉換為級聯2D矩陣

[英]Converting 3D matrix to cascaded 2D Matrices

我在python中有一個3D矩陣,如下所示:

import numpy as np

a = np.ones((2,2,3))
a[0,0,0] = 2
a[0,0,1] = 3
a[0,0,2] = 4

我想將這個3D矩陣轉換為一組2D矩陣。 我試過np.reshape但它沒有解決我的問題。 我感興趣的最終形狀是以下級聯的vesrsion:

 [[ 2.  1.  3.  1.  4.  1.]
  [ 1.  1.  1.  1.  1.  1.]]

但是, np.reshape給了我以下內容

 [[ 2.  3.  4.  1.  1.  1.]
  [ 1.  1.  1.  1.  1.  1.]]

我怎么解決這個問題?

使用transpose reshape -

a.transpose([0,2,1]).reshape(a.shape[0],-1)

或者使用與transpose相同的swapaxes - reshape swapaxes -

a.swapaxes(2,1).reshape(a.shape[0],-1)

樣品運行 -

In [66]: a
Out[66]: 
array([[[ 2.,  3.,  4.],
        [ 1.,  1.,  1.]],

       [[ 1.,  1.,  1.],
        [ 1.,  1.,  1.]]])

In [67]: a.transpose([0,2,1]).reshape(a.shape[0],-1)
Out[67]: 
array([[ 2.,  1.,  3.,  1.,  4.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.]])

In [68]: a.swapaxes(2,1).reshape(a.shape[0],-1)
Out[68]: 
array([[ 2.,  1.,  3.,  1.,  4.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM