我有一个三维数组,想把它分成许多子卷。 这是我目前的代码:
# 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:, :, :]
。通常这很方便。但是在列表中我该怎么做呢?你知道吗
将三元
if..else
与None
一起使用:在这种情况下,最好避免负指数。你知道吗
记住,对于
i>0
,a[-i]
等价于a[len(a)-i]
。但在您的情况下,您还需要为i==0
工作。你知道吗这样做有效:
相关问题 更多 >
编程相关推荐