我有一个非常基本的问题。我认为这可以用numpy在一行代码中优雅地完成,但我不知道如何做到。假设我有一个形状为(Nx,Ny)
的2D numpy数组,我想添加一个形状为Nz
的第三维。对于每一个固定的index_x,index_y
,我想在新的z轴上重复所有索引的数组值。
我可以很容易地做到这一点与基本的指示,如
# array_1 has shape (Nx,Ny)
array_2 = np.zeros((Nx,Ny,Nz))
for idx_x in range(Nx):
for idx_y in range(Ny):
array_2[idx_x,idx_y,:] = array_1[idx_x,idx_y]
但我想知道什么是numpy函数来完成这一行
2条答案
按热度按时间pobjuy321#
逻辑依赖,每个平面是相同的还是线性的?
一定是个立方体还是别的什么?
是长方形还是正方形
无论如何,使用Array.reshape
这是一个小例子
Another source
9o685dep2#
你有两个选择:
正如注解中提到的,您可以向数组添加另一个维度,并沿着该维度重复:
更好的选择是使用
np.tile
。您不需要手动添加维,并且当您想要沿着现有维之一重复时,可以轻松地将其扩展到其他情况:基本上,您可以指定希望沿着每个轴重复阵列的次数。