Я использую numpy, где функция много раз внутри нескольких контуров for
, но она становится слишком медленной. Есть ли способы быстрее выполнять эту функцию? Я читал, что вы должны пытаться делать строки в циклах, а также делать локальные переменные для функций перед циклами for
, но ничто не улучшает скорость на много (< 1%). len(UNIQ_IDS)
~ 800. emiss_data
и obj_data
- numpy ndarrays с формой = (2600, 500). Я использовал import profile
, чтобы получить дескриптор, где расположены узкие места, а where
в циклах for
- большой.
import numpy as np
max = np.max
where = np.where
MAX_EMISS = [max(emiss_data[where(obj_data == i)]) for i in UNIQ_IDS)]