powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / освобождение памяти, требуемой скриптом
1 сообщений из 1, страница 1 из 1
освобождение памяти, требуемой скриптом
    #39952697
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! Написал несложный вроде вложенный цикл по расчету доверительных интервалов бутстрэпом. Однако на больших данных питон очень сильно ест оперативку. подскажите, пожалуйста, как можно сбрасывать потребляемую ОЗУ и/или усовершенствовать данный код.
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
#coefficients
c_range = list(df1.columns[25:29])
#sectors/ind
i_range = list(['oil & gas','mining','metals',
                'chemicals','telecommunications','utilities',
                'transportation','agribusiness','retail trade','general manufcaturing'])
#date range
d_range = list(df1['bs_rep_date_corr'][df1['bs_rep_date_corr'].dt.year>=2008].unique())

N = range (0,10000) #итерации
p = 0.05 #уровень доверия

res_store = pd.DataFrame(columns=['coefficient', 'sector', 'date', 'mi low', 'mi', 'mi upp','me'])

for c in c_range: #for each coefficient
    tmp = df1[['bs_rep_date_corr', 'ind_mapping.Ind_corr2', c]].copy().reset_index(drop=True)
    for i in i_range: #for each ind/sector
        for d in d_range: #for each date
            tmp1 = tmp.loc[(tmp['ind_mapping.Ind_corr2']==i) & 
                          (tmp['bs_rep_date_corr']==d) & 
                          (tmp[c]>=-1) & (tmp[c]<=1)].reset_index(drop=True)
            
            estimate_values = [] #empty df for saving iterations
            print(c,i,d)
            
            for n in N: #boot iterations
                tmp_rnd = tmp1.sample(frac=1.,replace=True)
                estimate_values.append(tmp_rnd.mean())
            estimate_values = pd.DataFrame(estimate_values)
                     
            mi = estimate_values.mean().values[0].round(5)
            mi_lowB = estimate_values.quantile(q=p/2).values[0].round(5)
            mi_uppB = estimate_values.quantile(q=1-p/2).values[0].round(5)
            me = estimate_values.median().values[0].round(5)
            
            #saving cycle result
            out = pd.DataFrame([[c, i, d, mi_lowB, mi, mi_uppB, me]], columns=res_store.columns)
            res_store = res_store.append(out)
print('done')

Заранее большое спасибо!
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / освобождение памяти, требуемой скриптом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]