Skip to content

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 に置き換えられます。