如何将两个二维NumPy数组串联起来

  • Post category:Python

将两个二维 NumPy 数组串联起来有多种方法,下面我们将介绍其中的三种常见方法。

方法一:使用 numpy.concatenate() 函数

通过 numpy.concatenate() 函数可以将两个二维数组水平或垂直拼接起来。函数的语法如下:

numpy.concatenate((a1, a2, ...), axis)

其中,a1、a2、…表示要进行拼接的 NumPy 数组,必须形状相同(除了指定的拼接轴)。axis 表示拼接轴的方向,axis=0 表示垂直拼接,axis=1 表示水平拼接。

下面是一个垂直拼接的示例:

import numpy as np

# 创建两个二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 垂直拼接
c = np.concatenate((a, b), axis=0)

# 输出结果
print(c)

运行结果:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

下面是一个水平拼接的示例:

import numpy as np

# 创建两个二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 水平拼接
c = np.concatenate((a, b), axis=1)

# 输出结果
print(c)

运行结果:

[[1 2 5 6]
 [3 4 7 8]]

方法二:使用 numpy.vstack() 和 numpy.hstack() 函数

numpy.vstack() 和 numpy.hstack() 函数是经常使用的两个函数,分别用于垂直和水平方向的拼接。函数的语法如下:

numpy.vstack((a1, a2, ...))
numpy.hstack((a1, a2, ...))

其中,a1、a2、…表示要进行拼接的 NumPy 数组,必须形状相同(除了指定的拼接轴)。

下面是一个垂直拼接的示例:

import numpy as np

# 创建两个二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 垂直拼接
c = np.vstack((a, b))

# 输出结果
print(c)

运行结果:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

下面是一个水平拼接的示例:

import numpy as np

# 创建两个二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 水平拼接
c = np.hstack((a, b))

# 输出结果
print(c)

运行结果:

[[1 2 5 6]
 [3 4 7 8]]

方法三:使用 NumPy 数组的拼接运算符

NumPy 数组支持 “+” 运算符进行拼接,同样可以水平或垂直拼接。运算符的语法如下:

np.concatenate([a1, a2, ...], axis)

其中,a1、a2、…表示要进行拼接的 NumPy 数组,必须形状相同(除了指定的拼接轴)。axis 表示拼接轴的方向,axis=0 表示垂直拼接,axis=1 表示水平拼接。

下面是一个垂直拼接的示例:

import numpy as np

# 创建两个二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 垂直拼接
c = np.vstack([a, b])

# 输出结果
print(c)

运行结果:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

下面是一个水平拼接的示例:

import numpy as np

# 创建两个二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 水平拼接
c = np.hstack([a, b])

# 输出结果
print(c)

运行结果:

[[1 2 5 6]
 [3 4 7 8]]

总结:

以上三种方法都可以将两个二维 NumPy 数组进行水平或垂直拼接,具体选择哪种方法取决于个人的爱好和需求。