繁体   English   中英

numpy 3D阵列形状

[英]numpy 3D array shape

我创建了一个形状为(4,3,2)的numpy数组; 我希望以下代码可以打印出形状为4 X 3或3 X 4的数组

import numpy as np

x = np.zeros((4,3,2), np.int32)

print(x[:][:][0])

但是,我得到了

[[0 0]
 [0 0]
 [0 0]]

看起来像2 X 3? 我现在对numpy矩阵感到非常困惑。 我不应该得到

  [[0 0 0]
   [0 0 0]
   [0 0 0]
   [0 0 0]]

取而代之? 如何将3D图像映射到numpy 3D矩阵?

例如,在MATLAB中,形状(m, n, k) (row, col, slice)在(2D / 3D)图像的上下文中表示(row, col, slice)

非常感谢

x[:]切片沿着第一维度中的所有元素,因此x[:]给出相同的结果xx[:][:][0]因此等于x[0]

要选择最后一个维度上的元素,您可以执行以下操作:

x[..., 0]
#array([[0, 0, 0],
#       [0, 0, 0],
#       [0, 0, 0],
#       [0, 0, 0]], dtype=int32)

要么:

x[:,:,0]
#array([[0, 0, 0],
#       [0, 0, 0],
#       [0, 0, 0],
#       [0, 0, 0]], dtype=int32)

您需要在一个元组中同时指定所有切片,如下所示:

x[:, :, 0]

如果执行x[:][:][0] ,则实际上是在索引第一个维度3次。 前两个为整个数组创建一个视图,第三个为第一个维度的索引0创建一个视图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM