将两个二维 NumPy 数组串联起来的方法分为水平串联和垂直串联两种。
1. 水平串联
水平串联是将两个二维 NumPy 数组在水平方向(即 列 方向)上拼接起来,其函数为 numpy.hstack()
,具体用法如下:
import numpy as np
# 生成两个数组
arr1 = np.array([[1, 2], [3, 4], [5, 6]])
arr2 = np.array([[7, 8], [9, 10], [11, 12]])
# 将两个数组水平串联起来
arr_combined = np.hstack((arr1, arr2))
print(arr_combined)
输出结果为:
array([[ 1, 2, 7, 8],
[ 3, 4, 9, 10],
[ 5, 6, 11, 12]])
可以看到,np.hstack()
函数将 arr1
和 arr2
水平串联起来,产生了一个新的二维 NumPy 数组 arr_combined
。在这个新数组中, arr1
和 arr2
的列依次拼接起来,形成了一个 3 行 4 列的矩阵。
如果要进行水平串联的两个数组的行数不相同,则会出现错误,例如:
import numpy as np
arr1 = np.array([[1, 2], [3, 4], [5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
arr_combined = np.hstack((arr1, arr2))
此时将出现以下错误信息:
ValueError: all the input array dimensions except for the concatenation axis must match exactly
2. 垂直串联
垂直串联是将两个二维 NumPy 数组在垂直方向(即 行 方向)上拼接起来,其函数为 numpy.vstack()
,具体用法如下:
import numpy as np
# 生成两个数组
arr1 = np.array([[1, 2], [3, 4], [5, 6]])
arr2 = np.array([[7, 8], [9, 10], [11, 12]])
# 将两个数组垂直串联起来
arr_combined = np.vstack((arr1, arr2))
print(arr_combined)
输出结果为:
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12]])
可以看到,np.vstack()
函数将 arr1
和 arr2
垂直串联起来,产生了一个新的二维 NumPy 数组 arr_combined
。在这个新数组中, arr1
和 arr2
的行依次拼接起来,形成了一个 6 行 2 列的矩阵。
如果要进行垂直串联的两个数组的列数不相同,则会出现错误,例如:
import numpy as np
arr1 = np.array([[1, 2], [3, 4], [5, 6]])
arr2 = np.array([[7, 8], [9, 10], [11, 12, 13]])
arr_combined = np.vstack((arr1, arr2))
此时将出现以下错误信息:
ValueError: all the input array dimensions except for the concatenation axis must match exactly
至此,我已经讲解了如何将两个二维 NumPy 数组进行水平或垂直串联的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何将两个二维NumPy数组串联起来 - Python技术站