Rustのデータサイエンスで使えそうなもののメモとリンク集


evcxr

pythonみたいにJupyterでインタラクティブに使いたいという場合におすすめ。
RustのREPLでJupyterでも使うことができる。cargoでインストールできる。

Tips

変数がグローバルで定義されるので、参照を借用するときにライフタイムのエラーが出ることがある。
対処法としては、セル全体をブロックで囲むか、関数化してしまうなど。

参考 https://github.com/google/evcxr/issues/109

Plotters

Rustのグラフ描画ライブラリ。evcxr_jupyterでも使えるので、pythonのmatplotみたいな感じで使える。

https://docs.rs/plotters/0.3.0/plotters/
Jupyterでの使い方 https://plotters-rs.github.io/plotters-doc-data/evcxr-jupyter-integration.html
紹介記事 https://lab.mo-t.com/blog/rust-plotters

serde

JSON, YAMLなどの読み書き

公式 https://serde.rs/
紹介記事 https://qiita.com/fujitayy/items/ed0033f8bb036d23710c

線形代数

rust-ndarray https://github.com/rust-ndarray/ndarray
nadarray-linalg(ndarrayとセットで使う) https://github.com/rust-ndarray/ndarray-linalg
nalgebra https://www.nalgebra.org/

機械学習

デファクトスタンダードはまだなさそう(2020/09/17)。

Neural Network (NN)

TensorFlow https://github.com/tensorflow/rust
primitive-rust https://github.com/primitiv/primitiv-rust
Juice https://github.com/spearow/juice

NN以外

rusty-machine https://github.com/AtheMathmo/rusty-machine
rustlearn https://github.com/maciejkula/rustlearn
どちらも更新止まってるっぽい?

応用事例

Rust.Tokyo 2019

  • エッジMLシステムをC/C++からRustへ移行した事例
  • Rustによる数値計算の現状と課題

機械学習と数値計算の事例がそれぞれ紹介されている。発表スライドあり。

その他

他の方がまとめたリンク集 https://qiita.com/legokichi/items/9f80e4e2e6313876061c
並列、シリアライズ、数学・計算の項目がデータサイエンスで使いそう。

zennにも同じ記事を投稿しました。