Numpy
Polars のエクスプレッションは NumPy ufuncs(ユニバーサルファンクション) をサポートしています。すべてのサポートされている NumPy 関数のリストについては、こちらを参照してください。
これは、Polars が提供していない関数がある場合、NumPy を使用できることを意味し、NumPy API を通じて高速な列操作が可能であることを意味します。
例
  DataFrame ·  log ·  Available on feature numpy
import polars as pl
import numpy as np
df = pl.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
out = df.select(np.log(pl.all()).name.suffix("_log"))
print(out)
shape: (3, 2)
┌──────────┬──────────┐
│ a_log    ┆ b_log    │
│ ---      ┆ ---      │
│ f64      ┆ f64      │
╞══════════╪══════════╡
│ 0.0      ┆ 1.386294 │
│ 0.693147 ┆ 1.609438 │
│ 1.098612 ┆ 1.791759 │
└──────────┴──────────┘
相互運用性
Polars Series は NumPy ユニバーサルファンクション(ufuncs)をサポートしています。np.exp()、np.cos()、np.div() などの要素ごとの関数は、ほとんどオーバーヘッドなしで動作します。
ただし、Polars 固有の注記として:欠損値は別のビットマスクであり、NumPy には見えません。これにより、窓関数や np.convolve() が不完全な結果や誤った結果をもたらすことがあります。
Polars Series を NumPy 配列に変換するには、.to_numpy() メソッドを使用します。変換中に欠損値は np.nan に置き換えられます。