簡體   English   中英

Python - 連接或堆疊兩個以上不同形狀的數組

[英]Python - Concatenate or stack more than two arrays with different shape

我想獲得一個大小為11x11的數組,其中包含不同的子數組,例如由以下數組組成的數組M(括號中的形狀):

CC(3x3)CA(3x4)CB(3x4)

AC(4x3)AA(4x4)AB(4x4)

BC(4x3)BA(4x4)BB(4x4)

我可以使用連接但它不是最佳的。 我也嘗試過堆棧功能,但是數組必須具有相同的形狀。 你有任何想法嗎?

非常感謝!

你想要np.block() 它創建了一個“塊”陣列,就像你擁有的那樣。 例如

>>> CC = 1*np.ones((3, 3))
>>> CA = 2*np.ones((3, 4))
>>> CB = 3*np.ones((3, 4))
>>> AC = 4*np.ones((4, 3))
>>> AA = 5*np.ones((4, 4))
>>> AB = 6*np.ones((4, 4))
>>> BC = 7*np.ones((4, 3))
>>> BA = 8*np.ones((4, 4))
>>> BB = 9*np.ones((4, 4))
>>> M = np.block([[CC, CA, CB],
                  [AC, AA, AB],
                  [BC, BA, BB]])
>>> M
array([[ 1.,  1.,  1.,  2.,  2.,  2.,  2.,  3.,  3.,  3.,  3.],
       [ 1.,  1.,  1.,  2.,  2.,  2.,  2.,  3.,  3.,  3.,  3.],
       [ 1.,  1.,  1.,  2.,  2.,  2.,  2.,  3.,  3.,  3.,  3.],
       [ 4.,  4.,  4.,  5.,  5.,  5.,  5.,  6.,  6.,  6.,  6.],
       [ 4.,  4.,  4.,  5.,  5.,  5.,  5.,  6.,  6.,  6.,  6.],
       [ 4.,  4.,  4.,  5.,  5.,  5.,  5.,  6.,  6.,  6.,  6.],
       [ 4.,  4.,  4.,  5.,  5.,  5.,  5.,  6.,  6.,  6.,  6.],
       [ 7.,  7.,  7.,  8.,  8.,  8.,  8.,  9.,  9.,  9.,  9.],
       [ 7.,  7.,  7.,  8.,  8.,  8.,  8.,  9.,  9.,  9.,  9.],
       [ 7.,  7.,  7.,  8.,  8.,  8.,  8.,  9.,  9.,  9.,  9.],
       [ 7.,  7.,  7.,  8.,  8.,  8.,  8.,  9.,  9.,  9.,  9.]])

暫無
暫無

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

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