擅长:python、mysql、java
<p>这个问题已经在Theano邮件列表中提出并得到了回答,但实际上是关于numpy索引的基础知识。</p>
<p>这是问题和答案
<a href="https://groups.google.com/forum/#!topic/theano-users/jq92vNtkYUI">https://groups.google.com/forum/#!topic/theano-users/jq92vNtkYUI</a></p>
<p>为了完整起见,这里有另一个解释:使用<code>None</code>切片将轴添加到数组中,请参阅相关的numpy文档,因为它在numpy和Theano中的行为相同:</p>
<p><a href="http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#numpy.newaxis">http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#numpy.newaxis</a></p>
<p>注意<code>np.newaxis is None</code>:</p>
<pre><code>import numpy as np
a = np.arange(30).reshape(5, 6)
print a.shape # yields (5, 6)
print a[np.newaxis, :, :].shape # yields (1, 5, 6)
print a[:, np.newaxis, :].shape # yields (5, 1, 6)
print a[:, :, np.newaxis].shape # yields (5, 6, 1)
</code></pre>
<p>通常这是用来调整形状,以便能够广播到更高的维度。E、 g.在中轴线上平铺7次</p>
<pre><code>b = a[:, np.newaxis] * np.ones((1, 7, 1))
print b.shape # yields (5, 7, 6), 7 copies of a along the second axis
</code></pre>