假设我有一个2D Numpy数组,A
。
我想构建一个深度为100的3D数组B
,以便每i
个0 <= i < 100
,我们B[:,:,i] == A
。
在Python / Numpy中有没有有效的方法呢?
答案 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
本身必须是一个连续的内存块。