import numpy as np
#全部行都能输出
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
a = np.array([[1, 2,3], [7, 8, 9]])
b = np.array([[100, 101, 102], [103, 104, 105]])
c = np.array([[0,0], [0, 0]])
a
b
c
array([[1, 2, 3], [7, 8, 9]])
array([[100, 101, 102], [103, 104, 105]])
array([[0, 0], [0, 0]])
在纵向拼接, 增加的是行,列不变
np.vstack((a,b))
array([[ 1, 2, 3], [ 7, 8, 9], [100, 101, 102], [103, 104, 105]])
np.vstack((a,c)) #维度必须匹配
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-6-abd99944b1f4> in <module> ----> 1 np.vstack((a,c)) #维度必须匹配 D:\Anaconda3\lib\site-packages\numpy\core\shape_base.py in vstack(tup) 281 """ 282 _warn_for_nonsequence(tup) --> 283 return _nx.concatenate([atleast_2d(_m) for _m in tup], 0) 284 285 ValueError: all the input array dimensions except for the concatenation axis must match exactly
在横向拼接, 增加的是列,行不变
a = np.array([[1, 2,3], [7, 8, 9]])
b = np.array([[100, 101, 102], [103, 104, 105]])
c = np.array([[0,0], [0, 0]])
a
b
c
array([[1, 2, 3], [7, 8, 9]])
array([[100, 101, 102], [103, 104, 105]])
array([[0, 0], [0, 0]])
np.hstack((a,b))
array([[ 1, 2, 3, 100, 101, 102], [ 7, 8, 9, 103, 104, 105]])
np.hstack((a,c))
array([[1, 2, 3, 0, 0], [7, 8, 9, 0, 0]])
参数axis=0默认在纵轴上拼接,axis=1横向拼接
a = np.array([[1, 2,3], [7, 8, 9]])
b = np.array([[100, 101, 102], [103, 104, 105]])
c = np.array([[0,0], [0, 0]])
a
b
c
array([[1, 2, 3], [7, 8, 9]])
array([[100, 101, 102], [103, 104, 105]])
array([[0, 0], [0, 0]])
np.concatenate((a,b), axis=0) #axis=0默认在纵轴上拼接
array([[ 1, 2, 3], [ 7, 8, 9], [100, 101, 102], [103, 104, 105]])
np.concatenate((a,b), axis=1) #axis=1在横轴上拼接
array([[ 1, 2, 3, 100, 101, 102], [ 7, 8, 9, 103, 104, 105]])
a = np.arange(1,37).reshape(4,9)
a
array([[ 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, 27], [28, 29, 30, 31, 32, 33, 34, 35, 36]])
b = np.hsplit(a,3) # 第二个参数只写一个整数时,会在横向进行平均分割
b
[array([[ 1, 2, 3], [10, 11, 12], [19, 20, 21], [28, 29, 30]]), array([[ 4, 5, 6], [13, 14, 15], [22, 23, 24], [31, 32, 33]]), array([[ 7, 8, 9], [16, 17, 18], [25, 26, 27], [34, 35, 36]])]
for i in b:
print(i)
print('*'*30)
[[ 1 2 3] [10 11 12] [19 20 21] [28 29 30]] ****************************** [[ 4 5 6] [13 14 15] [22 23 24] [31 32 33]] ****************************** [[ 7 8 9] [16 17 18] [25 26 27] [34 35 36]] ******************************
a
array([[ 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, 27], [28, 29, 30, 31, 32, 33, 34, 35, 36]])
np.hsplit(a,(3,5)) #在第三列和第五列的后面划一刀
[array([[ 1, 2, 3], [10, 11, 12], [19, 20, 21], [28, 29, 30]]), array([[ 4, 5], [13, 14], [22, 23], [31, 32]]), array([[ 6, 7, 8, 9], [15, 16, 17, 18], [24, 25, 26, 27], [33, 34, 35, 36]])]
np.hsplit(a,(3,5,6,7))
[array([[ 1, 2, 3], [10, 11, 12], [19, 20, 21], [28, 29, 30]]), array([[ 4, 5], [13, 14], [22, 23], [31, 32]]), array([[ 6], [15], [24], [33]]), array([[ 7], [16], [25], [34]]), array([[ 8, 9], [17, 18], [26, 27], [35, 36]])]
a
array([[ 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, 27], [28, 29, 30, 31, 32, 33, 34, 35, 36]])
np.vsplit(a,4)
[array([[1, 2, 3, 4, 5, 6, 7, 8, 9]]), array([[10, 11, 12, 13, 14, 15, 16, 17, 18]]), array([[19, 20, 21, 22, 23, 24, 25, 26, 27]]), array([[28, 29, 30, 31, 32, 33, 34, 35, 36]])]
np.vsplit(a,(1,3))
[array([[1, 2, 3, 4, 5, 6, 7, 8, 9]]), array([[10, 11, 12, 13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24, 25, 26, 27]]), array([[28, 29, 30, 31, 32, 33, 34, 35, 36]])]
a
array([[ 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, 27], [28, 29, 30, 31, 32, 33, 34, 35, 36]])
np.array_split(a,(1,3),axis=0)
[array([[1, 2, 3, 4, 5, 6, 7, 8, 9]]), array([[10, 11, 12, 13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24, 25, 26, 27]]), array([[28, 29, 30, 31, 32, 33, 34, 35, 36]])]
np.array_split(a,(1,3),axis=1)
[array([[ 1], [10], [19], [28]]), array([[ 2, 3], [11, 12], [20, 21], [29, 30]]), array([[ 4, 5, 6, 7, 8, 9], [13, 14, 15, 16, 17, 18], [22, 23, 24, 25, 26, 27], [31, 32, 33, 34, 35, 36]])]