Эффективность вычислений очень недостаточна , при использовании цикла.Третий пакет, который я использовал, это statemodels.Могу ли я повысить эффективность с помощью матричных вычислений?
Мне нужно вычислить параметры adf и kpss для каждого временного ряда для каждой точки.данные представляют собой матрицу с размерным измерением, и ее форма (2160, 1080, 200).точка - это первое и второе измерение, а временной ряд - третье измерение.например, первый временной ряд - это данные [0,0,0: 200], второй - данные [0,1,0: 200].
В качестве метода, который я уже пробовал, многопроцессорная обработка Pythonбыл использован.Но коэффициент использования CPU всегда был 100% ,, и вычисления должны быть приостановлены.
import numpy as np
import statsmodels.api as sm
for i in range(0,2160):
for j in range(1080):
unvaild=(np.isnan(data[i,j,:]).sum())/len(data[i,j,:])
series.interpolate(inplace=True)
series.fillna(method='backfill',inplace=True)
if unvaild < 0.4:
adf=sm.tsa.stattools.adfuller(series.values.flatten(),\
maxlag=12,regression='c', autolag='AIC')
kpss=sm.tsa.stattools.kpss(series.values.flatten(),\
regression='c')
Есть ли какой-нибудь хороший метод для повышения эффективности этих пакетов третьей части?