<p>我有一个三维数组,想把它分成许多子卷。
这是我目前的代码:</p>
<pre><code># 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)]
</code></pre>
<ul>
<li>如果我使用<code>x in range(crop)</code>,<code>x</code>只升到<code>crop - 1</code>,那么x维度中的最后一个条目总是被删除</li>
<li>如果我使用<code>x in range(crop+1)</code>,<code>x</code>它上升到<code>crop</code>,这将导致一个切片<code>arr[crop:-0, ...]</code>,它的形状是<code>[0, y_dim, z_dim]</code></li>
</ul>
<p>我知道通常的答案,只要降低上限,像这样:<code>arr[crop:, :, :]</code>。通常这很方便。但是在列表中我该怎么做呢?你知道吗</p>