【发布时间】:2019-10-11 15:32:57
【问题描述】:
我有一个 3D 矩阵,例如:
array([[[3., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]],
[[0., 0., 0.],
[2., 0., 0.],
[0., 0., 0.]],
[[0., 0., 0.],
[12., 0., 0.],
[0., 0., 0.]]])
我想用 for 循环按顺序将其切成 [: , 0, :], [-1,: :].. 和所有 6 个方向。所以对于每个维度,从第一个 (0) 和最后一个 (-1) 开始切片。
应用 for 循环的正确方法是什么?
假设数组的名称是A:
A[0, :, :]
A[:, :, 0]
A[:, 0, :]
A[-1, :, :]
A[:, -1, :]
A[:, :, -1]
我想在一个循环中包含这 6 个子矩阵(让我们说在一个列表中)。
【问题讨论】:
-
“所有 6 个方向”和“按顺序”是什么意思?如果您举一个您期望的输出示例可能会有所帮助。
-
NumPy 几乎不需要循环。最好的答案不太可能涉及循环。如果您显示您对输入的期望输出会有所帮助吗?
-
这是一个 (3,3,3) 形状的数组。您需要更明确地说明您想要做什么 - 结果切片的示例。如果您使用像
np.arange(24).reshape(2,3,4)这样的数组 - 不同的维度和值,则操作通常会更清晰。 -
对问题进行了编辑,使其更加清晰。重塑不是一种选择。
标签: python arrays numpy indexing