1. 程式人生 > 程式設計 >python將三維陣列展開成二維陣列的實現

python將三維陣列展開成二維陣列的實現

以前寫過一篇:python實現把兩個二維array疊加成三維array示例

這篇文章嘗試用“曲線救國”的方法來解決二維陣列疊加成三維陣列的問題。

但天道有輪迴,蒼天繞過誰。好不容易把陣列疊加在一塊兒了,新的需求又出現了:將三維陣列展開成二維陣列。有借有還,再借不難。今天就來解決把三維陣列展開成二維陣列的問題。

相對於疊加三維陣列,numpy對展開陣列支援得很好,只需要用好np.reshape(A,(a,b)) 函式即可。

用到的引數:

A:需要被重新組合的陣列

(a,b): 各個維度的長度。比如要想展開成二維陣列,那麼(a,b)就是展開成a行b列。

當然,如果某一個維度長度不確定,也可以用-1代替。

看下面這個例子:

A = np.reshape(np.arange(24),(4,3,2)) ##生成一個數值從0到23,維度為(4,2)的陣列
print(A)
print('A的維度:',A.shape)
B = np.reshape(A,(-1,2))
print(B)
print('B的維度:',B.shape)

結果:

A:
[[[ 0 1]
 [ 2 3]
 [ 4 5]]

 [[ 6 7]
 [ 8 9]
 [10 11]]

 [[12 13]
 [14 15]
 [16 17]]

 [[18 19]
 [20 21]
 [22 23]]]

A的維度:(4,2)

B:


   [[ 0,1],[ 2,3],[ 4,5],[ 6,7],[ 8,9],[10,11],[12,13],[14,15],[16,17],[18,19],[20,21],[22,23]]

B的維度:(12,2)

可以看到,原來的(4,3,2)維的陣列被展開成了(12,2)維的陣列,而且最後一維的相對位置不變。

以上這篇python將三維陣列展開成二維陣列的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。