<分区>
我有一个 3D 阵列,想将它分成许多子体积。 到目前为止,这是我的代码:
# this results in a 3D array
arr = trainMasks[0, 0, :, :, :]
crop = 3
arrs = [arr[x:-(crop - x), y:-(crop - y), z:-(crop - z)]
for x in range(crop + 1)
for y in range(crop + 1)
for z in range(crop + 1)]
- 如果我使用
x in range(crop)
,x
只会上升到crop - 1
,即 x 维度中的最后一个条目总是掉线 - 如果我使用
x in range(crop+1)
,x
它会上升到crop
,这将导致切片arr[crop:-0, ...]
其形状为[0, y_dim, z_dim]
我知道通常的答案,只是降低上限,像这样:arr[crop:, :, :]
。通常这很方便。但是我如何在列表理解中做到这一点?