我有一个形状为3,3,3
的3D numpy数组,我想从它周围的数组中填充两层值,这样它就变成了5,5,5
数组
到目前为止,我使用torch cat功能(其工作原理与numpy concat相同)对y阵列进行了如下填充:
x = torch.from_numpy(np.arange(1,28,1).reshape(3,3,3))
y = torch.from_numpy(np.arange(28,55,1).reshape(3,3,3))
z = torch.from_numpy(np.arange(55,82,1).reshape(3,3,3))
torch.cat((y,z[:,:2,:]), dim=1) #To concat z+ with 2 pads
torch.cat((x[:,1:,:],y), dim=1) #To concat z- with 2 pads
torch.cat((y,z[:,:,:2]), dim=2) #To concat x+ with 2 pads
torch.cat((x[:,1:,:],y), dim=1) #To concat x- with 2 pads
torch.cat((x,z[:2,:,:]), dim=2) #To concat y+ with 2 pads
torch.cat((x[1:,:,:],y), dim=1) #To concat y- with 2 pads
但它没有给我正确的值。我怎样才能做到这一点
如果我理解正确,您需要的不是常规数组,因为每个维度都有不同的范围,这取决于观察到的轴(即,它不能几何表示为立方体-您的图片不是
(n,n,n)
数组)无论如何,在下面的片段中,我们创建了一个(5,5,5)测试3D数组,可以从中对(3,3,3)数组进行采样。然后我们连续连接以获得原始数组,之后我们屏蔽不需要的单元格,以便输出如图片所示。注意,当使用布尔Numpy数组时,可以用
+
或*
替换逻辑操作顺便说一句,一定有更优雅的方法来实现同样的结果,但我没有太多地使用Numpy的高级索引:p
相关问题 更多 >
编程相关推荐