У меня есть входные данные, хранящиеся в кадре данных [16,60000] со столбцами, соответствующими разному времени. Я пытаюсь вычислить интеграл по двум разным осям, используя np.trapz на каждом временном шаге.
Я пробовал:
< li>классический цикл + добавление в список
[*]классический цикл + сохранение в массив
[*]понимание списка
но серьезных улучшений я не увидел. Как я могу ускорить этот скрипт?
Вот минимальный фрагмент:
import numpy as np
import pandas as pd
import time
time_start = time.time()
# Read data
df_data = pd.DataFrame(np.random.randn(16, 60000))
x_values = np.array([0. , 0.03, 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 , 0.9 ,
0.85, 0.7 , 0.5 , 0.2 , 0.05])
x_values2 = np.array([0. , 0.043, 0.083, 0.114, 0.13 , 0.134, 0.124, 0.102,
0.078, 0.056, 0.03 , -0.006, -0.02 , -0.055, -0.069, -0.042])
# Get sample characteristics
Ns = df_data.shape[1]
times = range(Ns)
lt_data = [df_data.iloc[:,i] for i in times]
a = np.array([-np.trapz(y=data, x=x_values) for data in lt_data])
b = np.array([np.trapz(y=data, x=x_values2) for data in lt_data])
time_end = time.time()
elapsed = time_end - time_start
print(f'Elapsed: {elapsed:.1f}s')
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-integral
Ускорение циклического расчета интеграла ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Что происходит при использовании взаимного или циклического (циклического) импорта?
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-