a = np.arange(9).reshape(3,3)
b = 2 * a
01水平组合 hstack 和concatenate 函数也可以实现,axis = 1 可以实现
c = np.hstack((a,b))
print(a)
print(b)
print(c)
#输出结果
[[0 1 2]
[3 4 5]
[6 7 8]]
[[ 0 2 4]
[ 6 8 10]
[12 14 16]]
[[ 0 1 2 0 2 4]
[ 3 4 5 6 8 10]
[ 6 7 8 12 14 16]]
02垂直组合 vstacK 或者 concatenate 函数 axis=0
d = np.vstack((a,b))
print(a)
print(b)
print(d)
# 输出结果
[[0 1 2]
[3 4 5]
[6 7 8]]
[[ 0 2 4]
[ 6 8 10]
[12 14 16]]
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 0 2 4]
[ 6 8 10]
[12 14 16]]
03 深度组合 dstack
e = np.dstack((a,b))
print(a)
print(b)
print(e)
print(e.shape)
#输出结果
[[0 1 2]
[3 4 5]
[6 7 8]]
[[ 0 2 4]
[ 6 8 10]
[12 14 16]]
[[[ 0 0]
[ 1 2]
[ 2 4]]
[[ 3 6]
[ 4 8]
[ 5 10]]
[[ 6 12]
[ 7 14]
[ 8 16]]]
(3, 3, 2)
04 列组合 column_stack
对于一维数组按照列方向进行组合 对于二维数组和hstack效果相同,使用 == 直接进行数组比较
v1 = np.arange(3)
v2 = np.arange(3)
print(v1)
print(v2)
f = np.column_stack((v1,v2))
print(f)
#输出结果
[0 1 2]
[0 1 2]
[[0 0]
[1 1]
[2 2]]
h = np.column_stack((a,b))
print(h)
print(c)
print(c==h)
#输出结果
[[ 0 1 2 0 2 4]
[ 3 4 5 6 8 10]
[ 6 7 8 12 14 16]]
[[ 0 1 2 0 2 4]
[ 3 4 5 6 8 10]
[ 6 7 8 12 14 16]]
[[ True True True True True True]
[ True True True True True True]
[ True True True True True True]]
05行组合 row_stack 二维数组和vstack效果相同
k = np.row_stack((v1,v2))
print(k)
#输出结果
[[0 1 2]
[0 1 2]]
j = np.vstack((v1,v2))
print(j)
print(j == k)
#输出结果
[[0 1 2]
[0 1 2]]
[[ True True True]
[ True True True]]