<p>给定函数可以更改输入对象,也可以不更改。在NumPy中,许多函数都带有一个<code>out</code>参数,它告诉函数将答案放在这个对象中。在</p>
<p>下面是一些带有<code>out</code>参数的NumPy函数:</p>
<ul>
<li><a href="http://docs.scipy.org/doc/numpy/reference/routines.math.html#mathematical-functions" rel="nofollow">NumPy mathematical functions</a></li>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.take.html#numpy.take" rel="nofollow">^{<cd3>}</a></li>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.choose.html#numpy.choosee" rel="nofollow">^{<cd4>}</a></li>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.compress.html#numpy.compress" rel="nofollow">^{<cd5>}</a></li>
<li><a href="http://docs.scipy.org/doc/numpy/reference/routines.logic.html#logic-functions" rel="nofollow">Most of NumPy's logic functions</a></li>
</ul>
<p>在这种情况下,这些函数可以作为<code>ndarray</code>方法使用,而不使用</strong>参数<code>out</code>,在这种情况下,可以就地执行操作。也许最著名的是:</p>
<ul>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.sort.html" rel="nofollow">^{<cd8>}</a></li>
</ul>
<p>有些函数和方法不使用<code>out</code>参数,尽可能返回内存视图:</p>
<ul>
<li>函数<code>np.reshape()</code>和方法<code>ndarray.reshape()</code></li>
</ul>
<p><code>ndarray.fill()</code>是子程序的一个例子,专门作为一个方法使用,可以就地更改数组。在</p>
<hr/>
<p>无论何时获取ndarray对象或其子类,都可以根据<code>flags</code>属性的<code>OWNDATA</code>项检查它是否是内存视图:</p>
<pre><code>print(a.flags)
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
</code></pre>