擅长:python、mysql、java
<p>首先,不清楚您想做什么,因为您的代码不起作用。我只能猜测你想这么做:</p>
<pre><code>from numpy import *
from numpy.random import rand
ni=12
A=67
B=43
C=91
X = rand(ni*B*C,A)
W = rand(A,B,C)
y = zeros((ni*B*C))
for k in xrange(len(y)):
b = (k/ni)/C
c = (k/ni) % C
#print 'y[%i] = dot(X[%i,:],W[:,%i,%i])'%(k,k,b,c)
y[k] = dot(X[k,:],W[:,b,c])
</code></pre>
<p>如果您只需将<code>A,B,C,ni</code>设置为一些较低的值并取消对<code>print</code>-行的注释,您将很快看到该算法的作用。在</p>
<p>如果这正是您想要的,那么您可以使用这一行程序更快地完成:</p>
^{pr2}$
<p>尽管有一些索引重新排列,这里的关键技巧是使用<code>repeat</code>,因为在循环中,<code>b,c</code>为<code>ni</code>步骤“冻结”,而<code>k</code>在增长。在</p>
<p>我现在有点赶时间,但如果你需要进一步的解释,请留言。在</p>