Numpy 中陣列的分割
阿新 • • 發佈:2019-02-06
來自 《Python資料分析基礎教程:Numpy 學習指南(第2版)》
下面要介紹的陣列分割方法有:
- 水平分割
- 垂直分割
- 深度分割
0. 建立一個數組
a = arange(9).reshape(3,3)
print(a)
1. 水平分割
下面的程式碼將把陣列沿著水平方向分割為3個相同大小的子陣列:
b = hsplit(a,3)
print(b)
或者呼叫split函式並在引數中指定引數axis=1
b = split(a, 3, axis=1)
print(b)
得到結果
[array([[0], [3], [6]]), array([[1], [4], [7]]), array([[2], [5], [8]])]
2.垂直分割
下面的程式碼將把陣列沿著垂直方向分割為3個相同大小的子陣列:
b = vsplit(a,3)
print(b)
或者呼叫split函式並在引數中指定引數axis=1
b = split(a, 3, axis=0)
print(b)
得到結果
[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]
3.深度分割
先建立一個三維陣列:
a = arange(27).reshape(3,3,3)
print(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] [24 25 26]]]
呼叫dsplit函式按深度方向分割陣列
b = dsplit(a,3)
print(b)
得到結果
[array([[[ 0], [ 3], [ 6]], [[ 9], [12], [15]], [[18], [21], [24]]]), array([[[ 1], [ 4], [ 7]], [[10], [13], [16]], [[19], [22], [25]]]), array([[[ 2], [ 5], [ 8]], [[11], [14], [17]], [[20], [23], [26]]])]