Я хочу синхронизировать два числовых массива меток времени друг с другом с помощью Polars LazyFrames.
Предположим, что у меня есть два числовых массива меток времени, которые хранятся с помощью LazyFrames:
Я хочу синхронизировать два числовых массива меток времени друг с другом с помощью Polars LazyFrames. Предположим, что у меня есть два числовых массива меток времени, которые хранятся с помощью LazyFrames: [code]import polars as pl
[/code] У меня также есть ожидаемая функциональность, реализованная в numpy: [code]import numpy as np import numpy.typing as npt
def _np_sync_to( timestamps: npt.ArrayLike[np.datetime64], other: npt.ArrayLike[np.datetime64], tolerance: str, ): outer_diffs = np.abs(np.subtract.outer(other, timestamps)) closest_timestamps_indices = outer_diffs.argmin(0) closest_timestamps = other[closest_timestamps_indices] diffs = np.abs(closest_timestamps - timestamps) tolerance = parse_timedelta(tolerance) within_tolerance = diffs Я пытался реализовать это эквивалентно с помощью Polars, но размеры внешнего вычитания неверны, и я думаю, что в целом есть лучший способ выполнить вычисления: [code]# inspired by https://stackoverflow.com/questions/77748729/polars-equivalent-to-np-outer def sync_to(timestamps, other, tolerance: str): def _outer( a: pl.DataFrame | pl.LazyFrame, b: pl.DataFrame | pl.LazyFrame ): # I guess the following line is incorrect nrows = pl.len().sqrt().cast(pl.Int32) return ( a.select("values") .join(b.select("values"), how="cross") .select( computed=(pl.col("values") - pl.col("values_right")).abs() ) .group_by(pl.arange(0, pl.len()) // nrows, maintain_order=True) .agg("computed") .select(pl.col("computed").list.to_struct()) .unnest("computed") )
outer_diffs = timestamps.pipe(_outer, other) [/code] У меня была еще одна идея: [code]ts1 = timestamps.sort("values").join_asof( other.sort("values"), on="values", strategy="nearest", tolerance=tolerance, ) [/code] But the output is not what I want.
Я использую Kotlin Multiplatform. При использовании любого элемента со прокруткой прокрутка в iOS происходит медленно или не продолжается после жеста — аналогично прокрутке с помощью мыши на ПК. На Android прокрутка хорошая/нормальная (быстрая и...
Отложенный импорт в Python уже давно обсуждается, и были сделаны некоторые предложения (например, PEP609 — Lazy Imports), чтобы сделать его встроенной (дополнительной) функцией в будущем.
Я разрабатываю пакет CLI, поэтому время запуска очень...
Я ищу независимую от контекста оценку отсроченного закрытия. В псевдокоде:
// imagine there's a special type of deferred variables
$var = (deferred) function () {
// do something very expensive to calculate
return 42;
};