2022-10-28 (Fri) [長年日記]
_ Rubyで理解する統計解析の基礎: 1章〜2章
サンプルコードをRubyで書き直しつつPythonで理解する統計解析の基礎を読んでいる。 Python版のサンプルのforkにRuby版のnotebookを追加していく予定だけど、途中でRubyで書き直すのは挫折しそうな気が……。
環境
- ruby 3.2.0dev (2022-09-26T05:44:54Z master a8ad22d926) [x86_64-darwin21]
- iruby-0.7.4
- numo-narray-0.9.2.1
- numo-gsl-0.1.2
- daru-0.3
- charty-0.2.12
1章(notebook)
numpyの代りにnumo、pandasの代りにdaruを使用してだいたい問題なかった。
ただ、index_col相当の機能がDaru::DataFrame.from_csvにない(多分)せいで、 df.shape
はインデックス分だけ列が増えて [10, 6]
になってしまった。
2章(notebook)
2章もmatplotlibの代りにCharty(バックエンドはplotly)を使ってだいたい書けたが、いくつか細かい問題が。
- IRubyやdaruに浮動小数点数の出力の精度を指定する方法がなさそう。
- Numo::NArray#[]で、 beginless range(
...10
)が使えない。 - Numo::DFloat#varは不偏分散で、標本分散を返すオプションや別メソッドはなさそう。
- Daru::Vector#varianceも不偏分散だが、variance_populationという別メソッドがある。
- Numo::GSL::Histogramにデータをまとめて渡せない(使い方が悪いだけかもしれないが)のが効率が悪そう。
- リスト内包表記の代りにstepを使ったが読みにくい。
- Chartyで目盛りなどの細かい指定や、異なる種類のグラフの重ね合わせができない。箱ひげ図を縦向きに描く方法がわからない。
自分が使い方を知らないだけかもしれないので、「こうすればできるよ」というのがあったら教えてください。