[英]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[:]
给出相同的结果x
和x[:][:][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.