来自 《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]]])]