📅  最后修改于: 2023-12-03 15:17:59.439000             🧑  作者: Mango
np.stack是numpy中的一个函数,用于在指定坐标轴上沿着新的轴将提供的数组序列堆叠起来。这个函数是用来沿新轴连接数组序列的函数,一般称之为拼接(concatenate)。实现了concatenate函数的功能,只是concatenate是沿着现有轴拼接,而stack是沿着新轴拼接。
numpy.stack(arrays, axis=0, out=None)
假设有两个二维数组,我们分别引入numpy和随机函数,并创建两个类似的数组:
import numpy as np
# 创建两个二维数组
a = np.random.randint(0, 10, size=(2, 3))
b = np.random.randint(0, 10, size=(2, 3))
print('Array a:\n', a)
print('Array b:\n', b)
输出:
Array a:
[[8 9 0]
[9 7 7]]
Array b:
[[8 0 0]
[7 7 2]]
然后我们使用stack函数将两个数组在新的轴上堆叠起来:
c = np.stack((a,b), axis=0)
print('Array c:\n', c)
输出:
Array c:
[[[8 9 0]
[9 7 7]]
[[8 0 0]
[7 7 2]]]
我们可以看到,这里得到了一个三维数组,其中第一个轴代表两个原数组,第二个和第三个轴和原数组一样。如果我们将axis改为1,我们可以看到是在第一个轴中加上新的轴:
c = np.stack((a,b), axis=1)
print('Array c:\n', c)
输出:
Array c:
[[[8 9 0]
[8 0 0]]
[[9 7 7]
[7 7 2]]]
同样,我们可以在第二个轴中加上新的轴:
c = np.stack((a,b), axis=2)
print('Array c:\n', c)
输出:
Array c:
[[[8 8]
[9 7]
[0 0]]
[[9 7]
[7 7]
[7 2]]]
通过np.stack函数,我们可以很方便地在指定的轴上沿着新的轴将提供的数组序列堆叠起来,并得到一个新的数组。在数据处理中,这个函数很常用,可以将几个数组合并成更复杂的结构。