擅长:python、mysql、java
<p>在Python中,<code>slice</code>是一个定义良好的类,具有<code>start</code>、<code>stop</code>、<code>step</code>值。当我们用<code>alist[1: 10: 2]</code>索引列表时使用它。这将生成一个新列表,其中包含原始指针的副本。在<code>numpy</code>中,它们用于<code>basic indexing</code>,例如<code>arr[:3, -3:]</code>。这将创建原始的<code>view</code>。<code>view</code>共享数据缓冲区,但有自己的<code>shape</code>和<code>strides</code>。你知道吗</p>
<p>但是当我们用列表、数组或布尔数组(mask)索引数组时,它必须创建一个副本,一个有自己数据缓冲区的数组。元素的选择太复杂或不规则,无法用<code>shape</code>和<code>strides</code>属性来表示。你知道吗</p>
<p>在某些情况下,索引数组很小(与原始数组相比),副本也很小。但是如果我们排列整个数组,那么索引数组和副本都将和原始数组一样大。你知道吗</p>