<p>根据迈克的回答,我回去查看切片,发现如下:</p>
<p>旧路时间=0.016201255250881966秒,从500x500中选择20x20<br/>
新路时间=0.0016199544633708396秒,从500x500中选择20x20</p>
<p>快10倍</p>
<p>旧路时间=0.09903732167528723秒,从500x500中选择50x50<br/>
新路时间=0.0022922701258387秒,从500x500中选择50x50</p>
<p>快43倍</p>
<p>旧路时间=2.669313751708479秒,从500x500中选择250x250<br/>
新路时间=0.003080821529599664秒,从500x500中选择250x250</p>
<p>快866倍</p>
<h2>老路</h2>
<p>def子胶囊(covar,元素):</p>
<pre><code>start2 = time.clock()
covar = np.arange(250000).reshape((500, 500))
elements = np.arange(0,500,25) # this is the elements to choose
numelements = elements.shape[0]
subcovar= np.zeros((numelements,numelements))
for i in range(0,numelements):
for j in range(0,numelements):
subcovar[i,j]= covar[elements[i],elements[j]]
end2 = time.clock()
print ("time ", end2 - start2)
return subcovar
</code></pre>
<h2>纽威</h2>
<p>def subcovarnew(covar,元素):</p>
<pre><code>start2 = time.clock()
covar = np.arange(250000).reshape((500, 500))
elements = np.arange(0,500,2)
msize = elements.shape[0]
ii = elements.reshape(msize,1)
jj = elements.reshape(1,msize)
subcovar = covar[ii,jj]
end2 = time.clock()
print ("time ", end2 - start2)
return subcovar
</code></pre>
<p>谢谢
保罗</p>