numpy系列之数组合并(横向和纵向)
本文详细介绍numpy中数组合并的两种主要方式:横向与纵向合并。通过concatenate、hstack、column_stack实现横向拼接,利用concatenate、vstack、row_stack完成纵向堆叠,涵盖axis参数设置及具体代码示例,帮助开发者掌握多维数组的高效合并技巧。
首先创建两个用于演示合并操作的数组。
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr1)
输出结果如下: [[1 2 3] [4 5 6]]
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
print(arr2)
输出结果如下: [[ 7 8 9] [10 11 12]]
1.横向合并
横向合并是指将两个行数相同的数组在列方向上进行拼接。与DataFrame不同,numpy数组合并无需依赖公共列,仅需将两个数组直接拼接。实现横向合并的方法包括concatenate、hstack和column_stack三种。
1.1 concatenate方法
使用concatenate方法时,需将待合并的数组以列表形式传入,并通过axis参数指定合并方向。当设置axis=1时,表示在列方向(即横向)上进行合并。
print(np.concatenate([arr1, arr2], axis=1))
输出结果如下: [[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]]
1.2 hstack方法
使用hstack方法时,将待合并的数组以元组形式传入该函数,即可实现数组的横向合并。
print(np.hstack((arr1, arr2)))
输出结果如下: [[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]]
1.3 column_stack方法
column_stack方法与hstack的功能基本一致,同样是将待合并的数组以元组形式传入该函数,从而实现数组的横向合并。
print(np.column_stack((arr1, arr2)))
输出结果如下: [[ 1 2 3 7 8 9] [ 4 5 6 10 11 12]]
2.纵向合并
纵向合并是指将两个列数相同的数组在行方向上进行拼接。实现纵向合并的方法包括concatenate、vstack和row_stack三种。
2.1 concatenate方法
使用concatenate方法进行纵向合并时,需将待合并的数组以列表形式传入,并通过axis参数指定合并方向。当设置axis=0时,表示在行方向(即纵向)上进行合并。
print(np.concatenate([arr1, arr2], axis=0))
输出结果如下: [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
2.2 vstack方法
vstack是与hstack对应的纵向合并方法。只需将待合并的数组以元组形式传入vstack函数,即可实现数组的纵向合并。
print(np.vstack((arr1, arr2)))
输出结果如下: [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
2.3 row_stack方法
row_stack是与column_stack对应的纵向合并方法。只需将待合并的数组以元组形式传入row_stack函数,即可实现数组的纵向合并。
print(np.row_stack((arr1, arr2)))
输出结果如下: [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
至此,关于numpy数组合并(横向和纵向)的介绍已完成。如需了解更多numpy数组合相关内容,可查阅本站过往文章或继续浏览后续教程。感谢支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









