<p>对于有python经验的人来说,将数据附加到现有数组是很自然的事情。但是,如果您发现自己经常附加到大型数组中,那么您将很快发现NumPy并不像python<code>list</code>那样容易或高效地执行此操作。您会发现,每一个“append”操作都需要重新分配数组内存和短期的内存需求翻倍。所以,这个问题的更一般的解决方案是尝试将数组分配为与算法的最终输出一样大。然后对该数组的子集合(<a href="http://docs.scipy.org/doc/numpy/user/basics.indexing.html#other-indexing-options" rel="noreferrer">slices</a>)执行所有操作。理想情况下,阵列的创建和销毁应该最小化。</p>
<p>也就是说,这通常是不可避免的,而实现这一点的功能是:</p>
<p>对于二维阵列:</p>
<ul>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.hstack.html" rel="noreferrer">np.hstack</a></li>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.vstack.html" rel="noreferrer">np.vstack</a></li>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.column_stack.html" rel="noreferrer">np.column_stack</a></li>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.ma.row_stack.html" rel="noreferrer">np.row_stack</a></li>
</ul>
<p>对于三维阵列(以上加上):</p>
<ul>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.dstack.html" rel="noreferrer">np.dstack</a></li>
</ul>
<p>对于N-D阵列:</p>
<ul>
<li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html" rel="noreferrer">np.concatenate</a></li>
</ul>