今天大佬讲讲 numpy系列之数组合并
Posted 编程界的小胖子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今天大佬讲讲 numpy系列之数组合并相关的知识,希望对你有一定的参考价值。
先新建两个数组用于合并
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方法中将两个待合并的数组以列表的形式传递给concatenate,并通过设置axis参数指明在行方向还是列方向上进行合并。参数axis=1表示在数组在行方向上进行合并
print(np.concatenate([arr1, arr2], axis=1))
复制代码
result:
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
复制代码
1.2 hstack方法
hstack方法中将两个待合并的数组以元组的形式传递给hstack即可达到数组横向合并的目的
print(np.hstack((arr1, arr2)))
复制代码
result:
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
复制代码
1.3 column_stack方法
column_stack方法与hstack方法基本一致, 也是将两个待合并的数组以元组的形式传递给column_stack即可达到数组横向合并的目的
print(np.column_stack((arr1, arr2)))
复制代码
result:
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
复制代码
2.纵向合并
纵向合并是将两个列相等的数组在列方向上进行拼接,有concatenate、vstack、row_stack三种方法可以实现
2.1 concatenate方法
concatenate方法中将两个待合并的数组以列表的形式传递给concatenate,并通过设置axis参数指明在行方向还是列方向上进行合并。参数axis=0表示在数组在列方向上进行合并
print(np.concatenate([arr1, arr2], axis=0))
复制代码
result:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
复制代码
2.2 vstack方法
vstack方法是与hstack方法相对应的方法,同样只要将两个待合并的数组以元组的形式传递给vstack即可达到数组纵向合并的目的
print(np.vstack((arr1, arr2)))
复制代码
result:
[[ 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)))
复制代码
result:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
以上是关于今天大佬讲讲 numpy系列之数组合并的主要内容,如果未能解决你的问题,请参考以下文章