擅长:python、mysql、java
<p>看起来您希望在第一个轴上连接两个数组-但第二个轴仅为2d。需要添加维度:</p>
<pre><code>In [233]: arr = np.arange(8).reshape(2,2,2)
In [234]: arr1 = np.arange(10,14).reshape(2,2)
In [235]: np.concatenate((arr, arr1[None,:,:]), axis=0)
Out[235]:
array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[10, 11],
[12, 13]]])
</code></pre>
<p><code>dstack</code>是<code>concatenate</code>的变体,它将所有内容扩展到3d,并在最后一个轴上连接。要使用它,我们必须转换所有内容:</p>
<pre><code>In [236]: np.dstack((arr.T,arr1.T)).T
Out[236]:
array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[10, 11],
[12, 13]]])
</code></pre>
<p><code>index_tricks</code>添加了一些在维度上玩类似把戏的类:</p>
<pre><code>In [241]: np.r_['0,3', arr, arr1]
Out[241]:
array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[10, 11],
[12, 13]]])
</code></pre>
<p>如果您想从<code>np.r_</code>的文档中获得最大的收益,那么它需要一些阅读,但是如果您必须调整几个数组的维度,例如<code>np.r_['0,3', arr1, arr, arr1]</code>,那么它可能值得使用</p>