Array数组堆叠与分割:
方法 |
概述 |
vstack |
垂直堆叠 |
hstack |
水平堆叠 |
hsplit |
水平切割 |
vstack |
垂直切割 |
1.堆叠演示:
print('-----arr1----')
arr1 = np.arange(10).reshape(2, 5)
print(arr1)
print('-----arr2----')
arr2 = np.arange(10, 20).reshape(2, 5)
print(arr2)
# 垂直堆叠
print('---垂直堆叠-----')
arr = np.vstack((arr1, arr2))
print(arr)
# 水平堆叠
print('----水平堆叠-----')
arrs = np.hstack((arr1, arr2))
print(arrs)
# -------结果
-----arr1----
[[0 1 2 3 4]
[5 6 7 8 9]]
-----arr2----
[[10 11 12 13 14]
[15 16 17 18 19]]
---垂直堆叠-----
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
----水平堆叠-----
[[ 0 1 2 3 4 10 11 12 13 14]
[ 5 6 7 8 9 15 16 17 18 19]]
2.切割演示:
arr = np.arange(20).reshape(4, 5)
print('原数组')
print(arr)
print('水平切割')
arr1 = np.hsplit(arr, 5)
print(arr1)
print('垂直切割')
arr2 = np.vsplit(arr, 4)
print(arr2)
# 结果
原数组
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
水平切割
[array([[ 0],
[ 5],
[10],
[15]]), array([[ 1],
[ 6],
[11],
[16]]), array([[ 2],
[ 7],
[12],
[17]]), array([[ 3],
[ 8],
[13],
[18]]), array([[ 4],
[ 9],
[14],
[19]])]
垂直切割
[array([[0, 1, 2, 3, 4]]), array([[5, 6, 7, 8, 9]]), array([[10, 11, 12, 13, 14]]), array([[15, 16, 17, 18, 19]])]