Я по-прежнему интересен, когда речь заходит о том, как оптимизировать. У меня есть этот раздел кода, который принимает список найденных пиков и находит, где эти пики, +/- некоторое значение, находятся в многомерном массиве. Затем он добавляет +1 к их индексам массива нулей. Код работает хорошо, но выполнение занимает много времени. Например, он занимает около 45 минут для запуска, если ind
имеет 270 значений, а refVals
имеет форму (3050,3130,80). Я понимаю, что у него много данных, чтобы перевернуться, но есть ли более эффективный способ обойти это?Ускорение маскировки номеров
maskData = np.zeros_like(refVals).astype(np.int16)
for peak in ind:
tmpArr = np.ma.masked_outside(refVals,x[peak]-2,x[peak]+2).astype(np.int16)
maskData[tmpArr.mask == False ] += 1
tmpArr = None
maskData = np.sum(maskData,axis=2)
Подход №1 немедленно уничтожил мою память, но было бы неплохо, если бы это не так. # 2 и # 3 отлично работают. Существует резкое улучшение. благодаря – nanoPhD