Numpy 数组组合操作

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]]

你可能感兴趣的:(Numpy 数组组合操作)