擅长:python、mysql、java
<p>这个问题与我刚才问的<a href="https://stackoverflow.com/q/11286864/748858">question</a>非常相似:</p>
<p>您可以检查<code>base</code>属性。</p>
<pre><code>a = np.arange(50)
b = a.reshape((5, 10))
print (b.base is a)
</code></pre>
<p>然而,这并不完美。您还可以使用<code>np.may_share_memory</code>检查它们是否共享内存。</p>
<pre><code>print (np.may_share_memory(a, b))
</code></pre>
<p>还可以检查flags属性:</p>
<pre><code>print (b.flags['OWNDATA']) #False -- apparently this is a view
e = np.ravel(b[:, 2])
print (e.flags['OWNDATA']) #True -- Apparently this is a new numpy object.
</code></pre>
<p>但这最后一个对我来说有点可疑,虽然我不太明白为什么。。。</p>