擅长:python、mysql、java
<pre><code>In [71]: slicer(np.arange(10),-2,2)
Out[71]: array([8, 9, 0, 1])
</code></pre>
<p>看起来<code>np.r_</code>做了您想要的那种“滚动”:</p>
<pre><code>In [72]: np.arange(10)[np.r_[-2:2]]
Out[72]: array([8, 9, 0, 1])
In [73]: np.r_[-2:2]
Out[73]: array([-2, -1, 0, 1])
</code></pre>
<p>你所期望的和<code>r_</code>所做的之间可能存在差异。我会让你研究它的文件</p>
<p>就因为你称之为切片,它不是<code>basic</code>索引。然而,结果是<code>copy</code>,而不是<code>view</code>。还要注意对多维索引的任何扩展</p>
<p>在寻找全套替换件时要小心。在Python和numpy中,使用负索引从末尾进行标记(不进行包装)是如此深入,以至于您应该始终假定这是默认行为</p>
<pre><code>In [77]: np.arange(10)[-2:2]
Out[77]: array([], dtype=int64)
</code></pre>
<p>将您的包装/卷箱视为例外,需要特殊处理</p>