-3
最初の2つのforループは、非ゼロ要素のインデックスを見つけ、最後の2つは、異なる配列の値1を持つ要素のインデックスを見つけます。特定の条件を満たす行列インデックスを見つけるのに時間がかかるループ
for s in [x for x in range(5000) if t_f_ext[0,x]!=0]:
for r in [x for x in range(400) if t_f_ext[x,s]!=0]:
J_syn=(-13.75-5.25*inh[s])
tau_r=0.2*(2-inh[s])
tau_d=2-inh[s]
I_ext[r,s]=J_syn*(tau_m[s]/(tau_d-tau_r))*(np.exp(-(i*delta_t- tau_l-t_f_ext[r,s]+1)/tau_d)-np.exp(-(i*delta_t-tau_l-t_f_ext[r,s]+1)/tau_r))
for p in [x for x in range(5000) if int_spike[x]==1]:
for q in [x for x in range(5000) if con[p,x]==1]:
k_int[q]+=1
t_f_int[np.mod((k_int[q]-1),400).astype(int),q]=i*delta_t
pr[np.mod((k_int[q]-1),400).astype(int),q]=p
ベンチマーク時は何ですか?xrange()のrange()を交換することを検討しましたか?動機付けについては、https://wiki.python.org/moin/ForLoopを参照してください。 – vielmetti