擅长:python、mysql、java
<p>rollaxis(tensor,axis,start)将axis参数指定的轴移动到位于start的轴之前的位置,没有例外。</p>
<p>假设轴是(1,2,3,4,5,6)如果轴指向3,开始点指向5,那么在滚动之后,3将刚好在5之前。因为我的例子中的3在维度元组的位置2,axis=2。另外,因为5在位置4,所以start=4。</p>
<p>像这样:</p>
<pre><code>>>> a.shape
(1, 2, 3, 4, 5, 6)
>>> np.rollaxis(a, 2, 4).shape
(1, 2, 4, 3, 5, 6)
</code></pre>
<p>如你所见,3号现在正好在5号之前。
注意:3不会移动到位置4,而是移动到最初位于位置4的值之前的位置(在本例中,原来是位置3)。</p>
<p>负数指定的位置与列表一样。换句话说,axis=-1指定最后一个位置。在我上面的例子中,-1位置有一个6,-2位置有一个5。轴和起点都可能为负。</p>
<p>你可以像我在上面做的那样用负数来表示:</p>
<pre><code>>>> a.shape
(1, 2, 3, 4, 5, 6)
>>> np.rollaxis(a, -4, -2).shape
(1, 2, 4, 3, 5, 6)
</code></pre>
<p>如果未指定开始,则默认为0,这是第一个位置。这意味着,如果未指定开始,则指定的轴将始终移动到开始位置,该位置在最初位于0的1之前。</p>
<p>如果这让人困惑,这里还有一个更合理的解释:
<a href="https://stackoverflow.com/questions/29891583/reason-why-numpy-rollaxis-is-so-confusing">Reason why numpy rollaxis is so confusing?</a></p>