Я применяю относительно сложную функцию к среднему кадру данных размером около 5 000 строк, однако это занимает много времени (около 10 минут), а различные ядра работают только с загрузкой около 30 %.
Как я могу минимизировать время выполнения и обеспечить 100 % загрузку всех ядер ЦП?
Является ли такой способ вызова функции и упаковки/распаковки результатов наиболее подходящим?
class my_class():
def __init__(self, bla:float=np.nan):
pass
def my_complex_function(self, param_A:float=np.nan, ...):
bla bla
return {f"{prefix_name}_result_A":result_A,
f"{prefix_name}_result_B":result_B,
f"{prefix_name}_result_B":result_C,
... }
my_object = my_class(999.9)
float_param_D = 999.9
float_param_E = 999.9
float_param_F = 999.9
prefix_name = "column_name_prefix"
df = df.with_columns(pl.struct('float_param_A',
'float_param_B',
'float_param_C').map_elements(lambda x:
my_object.my_complex_function(
param_A =x['float_param_A'],
param_B =x['float_param_B'],
param_C =x['float_param_C'],
param_E =float_param_E,
param_F =float_param_F,
param_D =float_param_D,
float_param_G=0,
prefix_name =prefix_name )
).alias('calculation_results')
).unnest('calculation_results')
Подробнее здесь: https://stackoverflow.com/questions/767 ... -dataframe
Оптимальный способ запуска функции во всех строках Polars DataFrame ⇐ Python
Программы на Python
-
Anonymous
1770550614
Anonymous
Я применяю относительно сложную функцию к среднему кадру данных размером около 5 000 строк, однако это занимает много времени (около 10 минут), а различные ядра работают только с загрузкой около 30 %.
Как я могу минимизировать время выполнения и обеспечить 100 % загрузку всех ядер ЦП?
Является ли такой способ вызова функции и упаковки/распаковки результатов наиболее подходящим?
class my_class():
def __init__(self, bla:float=np.nan):
pass
def my_complex_function(self, param_A:float=np.nan, ...):
bla bla
return {f"{prefix_name}_result_A":result_A,
f"{prefix_name}_result_B":result_B,
f"{prefix_name}_result_B":result_C,
... }
my_object = my_class(999.9)
float_param_D = 999.9
float_param_E = 999.9
float_param_F = 999.9
prefix_name = "column_name_prefix"
df = df.with_columns(pl.struct('float_param_A',
'float_param_B',
'float_param_C').map_elements(lambda x:
my_object.my_complex_function(
param_A =x['float_param_A'],
param_B =x['float_param_B'],
param_C =x['float_param_C'],
param_E =float_param_E,
param_F =float_param_F,
param_D =float_param_D,
float_param_G=0,
prefix_name =prefix_name )
).alias('calculation_results')
).unnest('calculation_results')
Подробнее здесь: [url]https://stackoverflow.com/questions/76773428/optimal-way-to-run-a-function-on-all-rows-of-a-polars-dataframe[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия