擅长:python、mysql、java
<p>方法<code>rollaxis</code></p>
<pre><code>def rollaxis(a, axis, start=0):
</code></pre>
<p>在<code>start</code>“位置重新分配所选<code>axis</code></p>
<p>以你为例:</p>
<pre><code>a = np.ones((4, 3, 2))
x = np.rollaxis(a, 2)
# x.shape = (2, 4, 3)
</code></pre>
<p>关于形状:<code>rollaxis</code>将把位于最后一个<code>axis=2</code>中的数字<code>2</code>带到自<code>start=0</code>以来的第一个位置。</p>
<p>通过使用</p>
<pre><code>x2 = np.rollaxis(x, -2)
# x2.shape = (4,2,3)
</code></pre>
<p><code>rollaxis</code>将带上第二个最后一个轴<code>axis=-2</code>的数字4,并在第一个位置重新分配,因为<code>start=0</code>。这就解释了结果<code>(4,2,3)</code>,而不是<code>(4,3,2)</code>。</p>
<p>遵循相同的逻辑,这解释了为什么两次应用<code>rollaxis(a,2)</code>会使数组形状返回到初始形状。<code>np.rollaxis(x, 0, start=3)</code>也可以工作,因为第一个轴转到最后一个轴,换句话说,(2,4,3)中的数字2转到最后一个位置(4,3,2)。</p>