Numpy 合并两个不同维度的数组

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数组的右边合并了起来。

注意事项

  1. 在使用np.vstack()和np.hstack()的过程中一定要保证两个数组的维度和形状是匹配的;
  2. np.hstack()只能合并两个维度相同的数组,且第二个数组的列数必须等于第一个数组的行数;
  3. np.vstack()只能合并两个维度相同的数组,且第二个数组的行数必须等于第一个数组的列数;

总结

在数据处理过程中,我们经常需要处理不同维度的数组合并。使用Numpy提供的np.vstack()和np.hstack()函数可以方便地实现这个过程。在使用这两个函数的时候,我们需要注意数组的形状和维度问题。希望本文可以给大家的工作和学习带来帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程