Почему производительность функции объединения поляров так сильно ухудшается с версии 1.30.0 до 1.31.0?Python

Программы на Python
Ответить
Anonymous
 Почему производительность функции объединения поляров так сильно ухудшается с версии 1.30.0 до 1.31.0?

Сообщение Anonymous »

Я заметил значительное ухудшение производительности при использовании функции соединения кадров данных Polars после обновления Polars с 1.30.0 до 1.31.0. Фрагмент кода приведен ниже:

Код: Выделить всё

import polars as pl
import time
import numpy as np

print(pl.__version__)
np.random.seed(0)

indices = np.arange(2_000)
columns = [f"col_{i}" for i in range(20_000)]

df_1 = pl.DataFrame({
"index": indices,
**{col: np.random.rand(len(indices)) for col in columns}
})

df_2 = pl.DataFrame({
"index": indices,
**{col: np.random.rand(len(indices)) for col in columns}
})

print("DataFrames created.")

t0 = time.time()
df_merged = df_1.join(df_2, on="index", how="left", suffix="_right")
t1 = time.time()
print(f"Time taken to merge: {t1 - t0:.2f} seconds")
При использовании поляров 1.30.0 шаг слияния занимает 0,06 секунды

Код: Выделить всё

1.30.0
DataFrames created.
Time taken to merge: 0.06 seconds
но при использовании поляров 1.31.0 шаг слияния занимает почти 30 секунд

Код: Выделить всё

1.31.0
DataFrames created.
Time taken to merge: 27.68 seconds
Кто-нибудь знает, почему это произошло?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -1-30-0-to
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»