擅长:python、mysql、java
<p>因此,可以很容易地迭代第一个维度,如您所示。对任意维度执行此操作的另一种方法是使用numpy.rollaxis()将给定维度带到第一个维度(默认行为),然后使用返回的数组(这是一个视图,因此速度很快)作为迭代器。</p>
<pre><code>In [1]: array = numpy.arange(24).reshape(2,3,4)
In [2]: for array_slice in np.rollaxis(array, 1):
....: print array_slice.shape
....:
(2, 4)
(2, 4)
(2, 4)
</code></pre>
<p>编辑:我将评论我向numpy提交了一个PR来解决这个问题:<a href="https://github.com/numpy/numpy/pull/3262" rel="noreferrer">https://github.com/numpy/numpy/pull/3262</a>。有人认为这不足以增加numpy代码库。我认为使用np.rollaxis是最好的方法,如果你想要一个interator,就用iter()把它包起来。</p>