python numpy stack hstack vstack

两个array的不同连接方式

1.stack()

按照指定的轴对数组序列进行联结。
语法格式:numpy.stack(arrays, axis=0, out=None)

import numpy as np
a=[[1,2,3],
   [4,5,6]]
b=[[1,2,3],
   [4,5,6]]
c=[[1,2,3],
   [4,5,6]]
print("a=",a)
print("b=",b)
print("c=",c)

d=np.stack((a,b,c),axis=0)
print('"axis=0":\n',d)

d=np.stack((a,b,c),axis=1)
print('"axis=1":\n',d)

d=np.stack((a,b,c),axis=2)
print('"axis=2":\n',d)

运行结果:
a= [[1, 2, 3], [4, 5, 6]]
b= [[1, 2, 3], [4, 5, 6]]
c= [[1, 2, 3], [4, 5, 6]]
“axis=0”:
[[[1 2 3]
[4 5 6]]

[[1 2 3]
[4 5 6]]

[[1 2 3]
[4 5 6]]]
“axis=1”:
[[[1 2 3]
[1 2 3]
[1 2 3]]

[[4 5 6]
[4 5 6]
[4 5 6]]]
“axis=2”:
[[[1 1 1]
[2 2 2]
[3 3 3]]

[[4 4 4]
[5 5 5]
[6 6 6]]]

独立联结

2.hstack()

水平串联
语法格式:numpy.hstack(tup)

a = np.array((1,2,3))
b = np.array((2,3,4))
np.hstack((a,b))

结果:
array([1, 2, 3, 2, 3, 4])

a = np.array([[1],[2],[3]])
b = np.array([[2],[3],[4]])
np.hstack((a,b))


结果:
array([[1, 2],
[2, 3],
[3, 4]])

import numpy as np
a=[[1,2,3],
   [4,5,6]]
b=[[1,2,3],
   [4,5,6]]
c=[[1,2,3],
   [4,5,6]]
print(np.hstack((a,b,c)))

结果:
[[1 2 3 1 2 3 1 2 3]
[4 5 6 4 5 6 4 5 6]]

3.vstack()

垂直串联
语法格式:numpy.vstack(tup)

a = np.array([1, 2, 3])
b = np.array([2, 3, 4])
np.vstack((a,b))

结果:
array([[1, 2, 3],
[2, 3, 4]])

a = np.array([[1], [2], [3]])
b = np.array([[2], [3], [4]])
np.vstack((a,b))

结果:
array([[1],
[2],
[3],
[2],
[3],
[4]])

import numpy as np
a=[[1,2,3],
   [4,5,6]]
b=[[1,2,3],
   [4,5,6]]
c=[[1,2,3],
   [4,5,6]]
print(np.vstack((a,b,c)))

结果:
[[1 2 3]
[4 5 6]
[1 2 3]
[4 5 6]
[1 2 3]
[4 5 6]]

你可能感兴趣的:(python基础)