Мне нужно применить функцию с интенсивными вычислениями, в основном состоящую из вызовов функций numpy, к столбцу поляра DataFrame, который имеет тип данных pl.Array(...). Нужен метод потоковой передачи, так как мои фактические данные обычно превышают объем памяти компьютера. Я могу сделать это, используя iter_slices, создавая DataFrames и объединяя их.
Но на самом деле такое ощущение, что именно для этого и предназначен Map_batches, но он не обрабатывает несколько возвращаемых значений. Есть ли что-то еще, на что мне следует обратить внимание, или мне следует назвать это достаточно хорошим, пока я не реализую ржавчину UDF?
import polars as pl
import numpy as np
filter1 = np.array([-1,1,-1,1,1])
filter2 = np.array([0.3,0.3,-0.3,0.3, 0.3])
def compute(x):
a = np.dot(x, filter1)
b = np.dot(x, filter2)
return np.sin(a-b), np.cos(a+b)
df = pl.DataFrame({"a":[np.arange(5.0)+i for i in range(5)]}, schema={"a":pl.Array(pl.Float64,5)})
dfs = []
for df_iter in df.iter_slices(10000):
peak_x, peak_y = compute(df_iter["a"].to_numpy())
dfs.append(pl.DataFrame({"c": peak_x, "d": peak_y}))
df_out = pl.concat(dfs)
Подробнее здесь: https://stackoverflow.com/questions/786 ... o-polars-a
Вычислить интенсивную функцию с несколькими выходными данными, поэлементно примененными к столбцу массива поляров, испол ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему выходные данные модели Gekko ARX не совпадают с выходными данными регрессии SysId?
Anonymous » » в форуме Python - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему выходные данные модели Gekko ARX не совпадают с выходными данными регрессии SysId?
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-