Я хотел бы оптимизировать следующую функцию, которая является реальным узким местом с точки зрения производительности:
def rms_tranche(sig,long_tranche):
nb_iter = math.floor(len(sig)/long_tranche)
a = np.ones(long_tranche)
rms = []
for i in range(0,nb_iter-1):
rms = np.append(rms,a*np.std(sig[i*long_tranche:(i+1)*long_tranche-1]))
b = np.ones(len(sig)-len(rms))
rms = np.append(rms,b*np.std(sig[(nb_iter)*long_tranche:len(sig)]))
return rms
функция вычисляет Root Среднее значение квадрата по фрагментам исходного сигнала и возвращает массив той же длины, что и сигнал.
Бьюсь об заклад, есть более разумный способ выполнить эту задачу ...
Заранее спасибо за вашу помощь! С уважением