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

  • Post category:Python

要将两个二维NumPy数组串联起来,可使用numpy.concatenate()函数。这个函数可以在指定轴(axis)方向上连接两个以上数组,并返回连接后的数组。下面详细介绍该函数的使用方法。

使用方法:

numpy.concatenate((a1, a2, ...), axis=0, out=None)

参数:

  • (a1, a2, …):要连接的两个或多个数组。
  • axis:指定连接的轴方向, 默认是0。
  • out:输出的可选输出数组。如果指定,则必须具有正确的形状和类型。

下面给出两个示例来说明numpy.concatenate()函数的使用方法。

示例1:沿着行方向连接两个数组

在此示例中,我们将创建两个由三行四列的随机数组成的二维NumPy数组。要将这两个数组沿着行方向连接起来,我们需要将axis参数设置为1。

import numpy as np

# 创建两个二维NumPy数组
arr1 = np.random.rand(3, 4)
arr2 = np.random.rand(3, 4)

# 沿着行方向连接两个数组
arr_cat = np.concatenate((arr1, arr2), axis=1)

print("arr1:\n", arr1)
print("arr2:\n", arr2)
print("arr_cat:\n", arr_cat)

代码中,我们首先导入NumPy库并使用numpy.random.rand()函数创建两个由随机数组成的二维NumPy数组。接下来,使用numpy.concatenate()函数将这两个数组沿着列方向(axis=1)连接起来。最后,我们分别输出原始的两个数组和连接后的数组,以便检查它们的形状和内容。

输出结果如下:

arr1:
 [[0.79087178 0.26793501 0.28881932 0.58256249]
 [0.03228571 0.4954938  0.23982565 0.78191076]
 [0.50088494 0.40761412 0.06601462 0.05250339]]
arr2:
 [[0.15073065 0.6679692  0.61965428 0.06977509]
 [0.00939184 0.65357885 0.77404198 0.2934752 ]
 [0.36145504 0.98933436 0.09394239 0.11227729]]
arr_cat:
 [[0.79087178 0.26793501 0.28881932 0.58256249 0.15073065 0.6679692  0.61965428 0.06977509]
 [0.03228571 0.4954938  0.23982565 0.78191076 0.00939184 0.65357885 0.77404198 0.2934752 ]
 [0.50088494 0.40761412 0.06601462 0.05250339 0.36145504 0.98933436 0.09394239 0.11227729]]

可以看到,连接后的数组形状是(3, 8),其中包含了原始数组的所有元素。

示例2: 沿着列方向连接两个数组

下面我们再来看一个将两个二维NumPy数组沿着列方向连接的示例。与示例1相比,我们只需要将axis参数设置为0即可将数组沿着列方向连接起来。

import numpy as np

# 创建两个二维NumPy数组
arr1 = np.random.rand(3, 4)
arr2 = np.random.rand(3, 4)

# 沿着列方向连接两个数组
arr_cat = np.concatenate((arr1, arr2), axis=0)

print("arr1:\n", arr1)
print("arr2:\n", arr2)
print("arr_cat:\n", arr_cat)

输出结果如下:

arr1:
 [[0.6705947  0.17451413 0.95267618 0.19009479]
 [0.33945208 0.61962982 0.26449003 0.1905742 ]
 [0.18305926 0.47150979 0.34443457 0.85268704]]
arr2:
 [[0.89152365 0.23526019 0.01112553 0.7871742 ]
 [0.16554277 0.36757319 0.5742546  0.78957557]
 [0.19734858 0.26354533 0.47205987 0.91487208]]
arr_cat:
 [[0.6705947  0.17451413 0.95267618 0.19009479]
 [0.33945208 0.61962982 0.26449003 0.1905742 ]
 [0.18305926 0.47150979 0.34443457 0.85268704]
 [0.89152365 0.23526019 0.01112553 0.7871742 ]
 [0.16554277 0.36757319 0.5742546  0.78957557]
 [0.19734858 0.26354533 0.47205987 0.91487208]]

可以看到,连接后的数组形状是(6, 4),与之前的原始数组在行方向上拼接了起来。

本文介绍的是将两个二维NumPy数组串联起来的方法,其中需要用到numpy.concatenate()函数,只要设置好axis参数,即可在指定方向上拼接起来。