复制2D阵列以使其成为3D

时间:2015-09-02 16:25:42

标签: python arrays numpy

假设我有一个2D Numpy数组,A

我想构建一个深度为100的3D数组B,以便每i0 <= i < 100,我们B[:,:,i] == A

在Python / Numpy中有没有有效的方法呢?

1 个答案:

答案 0 :(得分:1)

只需制作所需形状的零3D数组,然后将A添加到其中

In [13]:

A = np.array([[1,2,3],[4,5,6]])
In [14]:

C = np.zeros(shape=(A.shape[0], A.shape[1], 100), dtype=A.dtype))
In [15]:

B = C+A[...,...,np.newaxis]
In [16]:

B[:,:,1]
Out[16]:
array([[ 1,  2,  3],
       [ 4,  5,  6]])
In [17]:

B[:,:,2]
Out[17]:
array([[ 1,  2,  3],
       [ 4,  5,  6]])

它不会是A的100个副本,(我怀疑你能不能这样做),因为B本身必须是一个连续的内存块。