Numpy 合并两个不同维度的数组
背景
在数据处理过程中,我们经常需要合并两个不同维度的数组。但是对于同维度的数组,我们可以使用Numpy自带的拼接函数np.concatenate()来实现,但对于不同维度的数组,我们该如何合并呢?
阅读更多:Numpy 教程
解决方法
Numpy提供了两个函数用于合并不同维度的数组:np.vstack()和np.hstack()。一般来说我们使用np.vstack()合并垂直方向的数组,使用np.hstack()合并水平方向的数组。
np.vstack()
下面我们来看一个np.vstack()的示例:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([5, 6])
c = np.vstack((a, b))
print(c)
输出结果为:
array([[1, 2],
[3, 4],
[5, 6]])
可以看出,np.vstack()将b数组放在a数组的下面合并了起来。
np.hstack()
下面我们来看一个np.hstack()的示例:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5], [6]])
c = np.hstack((a, b))
print(c)
输出结果为:
array([[1, 2, 5],
[3, 4, 6]])
可以看出,np.hstack()将b数组放在a数组的右边合并了起来。
注意事项
- 在使用np.vstack()和np.hstack()的过程中一定要保证两个数组的维度和形状是匹配的;
- np.hstack()只能合并两个维度相同的数组,且第二个数组的列数必须等于第一个数组的行数;
- np.vstack()只能合并两个维度相同的数组,且第二个数组的行数必须等于第一个数组的列数;
总结
在数据处理过程中,我们经常需要处理不同维度的数组合并。使用Numpy提供的np.vstack()和np.hstack()函数可以方便地实现这个过程。在使用这两个函数的时候,我们需要注意数组的形状和维度问题。希望本文可以给大家的工作和学习带来帮助。
极客笔记