Есть ли векторизованное решение для замены петли ниже? Для расчета цикла требуется около 5 минут, в то время как векторизованный расчет займет секунды.
Обратите внимание, что вычисление может быть любым (на основе 2 списков длиной 31).
#ICEBAL is a PY file
from ICEBAL import get_EdF
Вот расчет ниже:
actls = [20.00,21.00,22.00,23.00,24.00,25.00,26.00,27.00,28.00,29.00,30.00,31.00,32.00,33.00,34.00,35.00,36.00,37.00,38.00,39.00,40.00,41.00,42.00,43.00,44.00,45.00,46.00,47.00,48.00,49.00,50.00]
preds = [19.00,20.00,21.00,22.00,23.00,24.00,25.00,26.00,27.00,28.00,29.00,30.00,31.00,32.00,33.00,34.00,35.00,36.00,37.00,38.00,39.00,40.00,41.00,42.00,43.00,44.00,45.00,46.00,47.00,48.00,49.00]
EdF = get_EdF(actls,preds)
Я хочу применить расчет EdF к тестовому набору. Цикл ниже работает, но он слишком медленный для запуска.
test['EdF'] = 0
for i in range(0,884):
test['EdF'].iloc[i] = get_EdF(np.squeeze(actuals[i:i+1]).tolist(),np.squeeze(predictionsneuralnet[i:i+1]).tolist()))
test
- это стандартный набор данных Pandas (с 884 строками).
print(np.array(actuals).shape)
print(np.array(predictionsneuralnet).shape)
Выход (884, 31) для обоих.