Alf*_*Alf 4 python arrays numpy
让我们从 2 个二维数组开始:
import numpy as np
a = np.zeros( (3,4) )
b = np.zeros( (3,4) )
Run Code Online (Sandbox Code Playgroud)
现在让我们将它们组合成一个 3D 数组:
c = np.stack( (a,b) )
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好,但是如何向 3D 数组添加额外的 2D 数组,以下不起作用:
np.stack( (c,a) )
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是如何向 3D 数组添加一个附加层?(麻木版本1.12.1)
小智 6
如果您一开始就知道所有 2D 数组,则可以堆叠两个以上的数组:
import numpy as np
a = np.zeros((3, 4))
b = np.zeros((3, 4))
c = np.stack((a, b, a))
Run Code Online (Sandbox Code Playgroud)
如果您已经有一个“堆叠”数组并想向其中添加另一个数组,则可以使用例如numpy.concatenate:
如果要添加的数组是“平面”,则必须将其包装在列表中以使维度匹配。默认情况下,数组沿第一个维度连接(就像您axis=0在关键字参数中指定的一样):
>>> c.shape
(2, 3, 4)
>>> np.array([a]).shape
(1, 3, 4)
c = np.concatenate((c, [a]))
Run Code Online (Sandbox Code Playgroud)
如果两个数组都已经“堆叠”,这也将起作用:
c = np.concatenate((c, c))
Run Code Online (Sandbox Code Playgroud)