以下是一个示例代码,演示了如何不使用零填充将两个不同大小的数组垂直堆叠:
import numpy as np
def stack_arrays_vertically(arr1, arr2):
# 获取两个数组的形状
rows1, cols1 = arr1.shape
rows2, cols2 = arr2.shape
# 确保两个数组的列数相同
if cols1 != cols2:
raise ValueError("两个数组的列数不同,无法垂直堆叠")
# 创建一个新数组,行数等于两个数组的行数之和,列数等于任意一个数组的列数
stacked = np.empty((rows1 + rows2, cols1))
# 将第一个数组复制到新数组的前面
stacked[:rows1] = arr1
# 将第二个数组复制到新数组的后面
stacked[rows1:] = arr2
return stacked
# 示例用法
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9]])
result = stack_arrays_vertically(arr1, arr2)
print(result)
这段代码将输出以下结果:
[[1 2 3]
[4 5 6]
[7 8 9]]
注意,这个示例使用了NumPy库来处理数组操作。如果你没有安装NumPy,可以通过运行以下命令来安装它:
pip install numpy
下一篇:不使用另一个类来测试一个类