Я заметил, что моя программа слишком медленная, когда я делаю этот цикл, факт в том, что N является большим числом (1000000).Как оптимизировать цикл с большим числом
start=time.time()
ipf = 0
idx = 2
for iang in xrange(0, N):
z = np.float64(iang+1)/np.float64(N)
while scum[ipf+1]<z:
ipf += 1
phase_H[idx*5*N+iang*5+0] = np.float32(phase.phase[ipf, 1])
phase_H[idx*5*N+iang*5+1] = np.float32(phase.phase[ipf, 0])
phase_H[idx*5*N+iang*5+2] = np.float32(phase.phase[ipf, 2])
phase_H[idx*5*N+iang*5+3] = np.float32(0)
print time.time() - start
Этот код длится около 9 секунд. Есть ли способ сделать это быстрее?
Попробуйте прочитать этот учебник и применить его http://www.bogotobogo.com/python/python_fncs_map_filter_reduce.php – Stiffo
Можете ли вы добавить больше кода? Что такое 'scum'? – Cyphase
Что такое 'scum',' phase_H', 'phase.phase'? Списки или np массивы? Какой размер (массив формы, если массив)? Что такое 'dtype' if array? – hpaulj