首页 > 编程笔记 > Python笔记 阅读:1

NumPy数组拼接的多个方法(附带实例)

在 NumPy 中,提供了 4 个函数实现数组的连接,下面对这几个函数进行介绍。

NumPy concatenate()函数

numpy.concatenate() 函数用于沿指定轴连接相同形状的两个或多个数组,函数的调用格式为:
numpy.concatenate((a1,a2,...), axis)

【实例】利用 concatenate() 函数实现数组的连接。
import numpy as np
a = np.array([[1,2],[3,4]])
print('第一个数组:')
print(a)
print('\n')
b = np.array([[5,6],[7,8]])
print('第二个数组:')
print(b)
print('\n')
# 两个数组的维度相同
print('沿轴 0 连接两个数组, 竖向拼接矩阵:')
print(np.concatenate((a,b)))
print('\n')
print('沿轴 1 连接两个数组, 横向拼接矩阵:')
print(np.concatenate((a,b),axis = 1))
运行程序,输出如下:

第一个数组:
[[1 2]
[3 4]]
第二个数组:
[[5 6]
[7 8]]
沿轴0连接两个数组, 竖向拼接矩阵:
[[1 2]
[3 4]
[5 6]
[7 8]]
沿轴1连接两个数组, 横向拼接矩阵:
[[1 2 5 6]
[3 4 7 8]]

NumPy stack()函数

numpy.stack() 函数用于沿新轴连接数组序列,函数格式如下:
numpy.stack(arrays, axis)

【实例】利用 stack() 函数实现数组的连接。
import numpy as np
a = np.array([[1,4],[3,5]])
print('第一个数组:')
print(a)
print('\n')
b = np.array([[6,8],[7,9]])
print('第二个数组:')
print(b)
print('\n')
print('沿轴0堆叠两个数组:')
print(np.stack((a,b),0))
print('\n')
print('沿轴1堆叠两个数组:')
print(np.stack((a,b),1))
运行程序,输出如下:
第一个数组:
[[1 4]
[3 5]]
第二个数组:
[[6 8]
[7 9]]
沿轴0堆叠两个数组:
[[[1 4]
  [3 5]]
[[6 8]
  [7 9]]]
沿轴1堆叠两个数组:
[[[1 4]
  [6 8]]
[[3 5]
  [7 9]]]

NumPy hstack()函数

numpy.hstack() 是 numpy.stack() 函数的变体,它通过水平堆叠来生成数组。

【实例】利用 hstack() 函数实现数组的连接。
import numpy as np
a = np.array([[1,4],[3,5]])
print('第一个数组:')
print(a)
print('\n')
b = np.array([[6,8],[7,9]])
print('第二个数组:')
print(b)
print('\n')
print('水平堆叠:')
c = np.hstack((a,b))
print(c)
print('\n')
运行程序,输出如下:

第一个数组:
[[1 4]
[3 5]]
第二个数组:
[[6 8]
[7 9]]
水平堆叠:
[[1 4 6 8]
[3 5 7 9]]

NumPy vstack()函数

numpy.vstack() 是 numpy.stack() 函数的变体,它通过垂直堆叠来生成数组。

【实例】利用 vstack() 函数实现数组的连接。
import numpy as np
a = np.array([[1,4],[3,5]])
print('第一个数组:')
print(a)
print('\n')
b = np.array([[6,8],[7,9]])
print('第二个数组:')
print(b)
print('\n')
print('竖直堆叠:')
c = np.vstack((a,b))
print(c)
print('\n')
运行程序,输出如下:

第一个数组:
[[1 4]
[3 5]]
第二个数组:
[[6 8]
[7 9]]
竖直堆叠:
[[1 4]
[3 5]
[6 8]
[7 9]]

相关文章