NumPy 提供了多种数组拼接函数,用于将多个数组沿着不同的轴组合在一起。以下是其详细介绍,包括它们的语法、参数、返回值和使用示例。
总结
-
np.hstack
:沿列方向拼接数组,要求行数相同。 -
np.vstack
:沿行方向拼接数组,要求列数相同。 -
np.concatenate
:更通用的拼接函数,可以沿指定轴拼接。 -
np.stack
:沿新轴堆叠数组,创建更高维度的数组。
1. np.hstack
功能
np.hstack
(水平堆叠)用于将多个数组沿水平方向(列方向)拼接在一起。要求输入的数组具有相同的行数。
语法
numpy.hstack(tup)
参数
-
tup
: 元组或列表,包含要拼接的数组。
返回值
-
返回一个新数组,它是将输入数组沿水平方向拼接后的结果。
示例
import numpy as np
# 一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.hstack((a, b))
print(result) # 输出: [1 2 3 4 5 6]
# 二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.hstack((a, b))
print(result)
# 输出:
# [[1 2 5 6]
# [3 4 7 8]]
2. np.vstack
功能
np.vstack
(垂直堆叠)用于将多个数组沿垂直方向(行方向)拼接在一起。要求输入的数组具有相同的列数。
语法
numpy.vstack(tup)
参数
-
tup
: 元组或列表,包含要拼接的数组。
返回值
-
返回一个新数组,它是将输入数组沿垂直方向拼接后的结果。
示例
import numpy as np
# 一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.vstack((a, b))
print(result)
# 输出:
# [[1 2 3]
# [4 5 6]]
# 二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.vstack((a, b))
print(result)
# 输出:
# [[1 2]
# [3 4]
# [5 6]
# [7 8]]
3. np.concatenate
功能
np.concatenate
是一个更通用的数组拼接函数,可以沿指定的轴拼接多个数组。
语法
numpy.concatenate((a1, a2, ...), axis=0)
参数
-
a1, a2, ...
: 要拼接的数组。 -
axis
: 指定拼接的轴,0 表示沿行方向,1 表示沿列方向,默认为 0。
返回值
-
返回一个新数组,它是将输入数组沿指定轴拼接后的结果。
示例
import numpy as np
# 沿行方向拼接
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.concatenate((a, b), axis=0)
print(result)
# 输出:
# [[1 2]
# [3 4]
# [5 6]
# [7 8]]
# 沿列方向拼接
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.concatenate((a, b), axis=1)
print(result)
# 输出:
# [[1 2 5 6]
# [3 4 7 8]]
4. np.stack
功能
np.stack
用于将多个数组沿新轴堆叠在一起,创建一个更高维度的数组。
语法
numpy.stack(arrays, axis=0)
参数
-
arrays
: 要堆叠的数组。 -
axis
: 指定新轴的位置,默认为 0。
返回值
-
返回一个新数组,它是将输入数组沿新轴堆叠后的结果。
示例
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.stack((a, b), axis=0)
print(result)
# 输出:
# [[1 2 3]
# [4 5 6]]
result = np.stack((a, b), axis=1)
print(result)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]