Python Numpy 合并数组(stack、vstack和hstack)

numpy.vstack和numpy.hstack以及numpy.stack是NumPy中用于数组堆叠的不同函数,numpy.vstack是垂直方向堆叠,numpy.hstack是水平方向堆叠,而numpy.stack是通用堆叠。本文主要介绍Python Numpy 合并数组的方法,以及相关的示例代码。

1、numpy.vstack(垂直堆叠)

numpy.vstack用于在垂直方向(沿着行的方向)堆叠多个数组。它将多个输入数组叠加在一起,生成一个新的数组,其中行数与输入数组的行数之和相等,列数与输入数组的列数相等。结果数组的维度增加了一个,即变成了更高维度的数组。适用于具有相同列数的数组的垂直堆叠。

例如,

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 垂直堆叠
vstacked = np.vstack((arr1, arr2))

2、numpy.hstack(水平堆叠)

numpy.hstack用于在水平方向(沿着列的方向)堆叠多个数组。它将多个输入数组叠加在一起,生成一个新的数组,其中列数与输入数组的列数之和相等,行数与输入数组的行数相等。结果数组的维度不发生变化,仍然是原始维度。适用于具有相同行数的数组的水平堆叠。

例如,

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 水平堆叠
arr3 = np.hstack((arr1, arr2))


print("水平堆叠结果:")
print(arr3)

3、numpy.stack(通用堆叠)

numpy.stack用于在新的维度上堆叠多个数组。它需要一个额外的参数axis,用于指定堆叠的轴(维度)。根据axis的值,它可以在不同的维度上堆叠数组。结果数组的维度将增加,而且不仅仅是在水平或垂直方向。axis=0时,垂直堆叠;axis=1时,水平堆叠;axis=2时,沿着新的第三个维度堆叠,依此类推。

例如,

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 垂直堆叠
vs = np.vstack((arr1, arr2))

# 水平堆叠
hs = np.hstack((arr1, arr2))

# 通用堆叠(在新的维度上堆叠)
st = np.stack((arr1, arr2), axis=0)

print("垂直堆叠结果:")
print(vs)

print("水平堆叠结果:")
print(hs)

print("通用堆叠结果:")
print(st) 

推荐阅读
cjavapy编程之路首页