NumPy 是一个用于科学计算的强大 Python 库,提供了大量的数学函数和对多维数组对象的支持。堆叠(Stacking)是指将多个数组组合成一个新的数组的过程。NumPy 提供了多种方法来堆叠具有不同维数的数组,例如 numpy.vstack
, numpy.hstack
, numpy.dstack
等。
numpy.vstack
,将多个数组按行堆叠。numpy.hstack
,将多个数组按列堆叠。numpy.dstack
,将多个数组按深度(第三维)堆叠。堆叠操作在数据分析和机器学习中非常常见,例如:
假设我们有两个不同维数的数组:
import numpy as np
# 创建两个不同维数的数组
a = np.array([[1, 2], [3, 4]])
b = np.array([5, 6])
# 使用 vstack 进行垂直堆叠
result = np.vstack((a, b.reshape(-1, 1)))
print(result)
输出:
[[1 2]
[3 4]
[5]
[6]]
# 使用 hstack 进行水平堆叠
result = np.hstack((a, b.reshape(-1, 1)))
print(result)
输出:
[[1 2 5]
[3 4 6]]
原因:堆叠操作要求参与堆叠的数组在除了堆叠方向上的维度必须相同。
解决方法:
reshape
方法调整数组的形状,使其在堆叠方向上的维度匹配。例如:
# 调整数组形状
b = b.reshape(-1, 1)
# 垂直堆叠
result = np.vstack((a, b))
print(result)
输出:
[[1 2]
[3 4]
[5]
[6]]
通过以上方法,你可以灵活地堆叠具有不同维数的数组,并解决在堆叠过程中可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云