假设我有一个二维 Numpy 数组,A
.
我想构建一个 3D 数组 B
深度为 100 这样对于每个 i
这样 0 <= i < 100
, 我们有 B[:,:,i] == A
.
在 Python/Numpy 中有什么有效的方法可以做到这一点吗?
最佳答案
只需制作一个你想要的形状的零 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
必须是一个连续的内存块自己。
关于python - 复制 2D 数组以使其成为 3D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32358315/