「Scirubyプロジェクト報告レポート」
2018年08月23日
はじめに
しまねソフト研究開発センター(以下、ITOC)では、平成28年度からITOCが研究分野として取り組む機械学習において、その調査の一環として、プログラミング言語Rubyにおける科学技術計算分野の環境改善への取り組みに協力しています。
本レポートは、平成30年1月~平成30年3月にSciRubyプロジェクトの発起人である村田賢太氏と行ったプロジェクトの内容とその成果を公開いたします。
背景・目的
一昨年度に実施したライブラリ整理と、その後の継続的な開発によりpycall(Ruby から Python インタープリタの機能を利用するためのライブラリ) が完成し、Rubyからデータ解析に必要なPythonのデータツールを利用できる下地が整いました。
これと並行し、Red Data Tools プロジェクト(※1)において、Ruby から Apache Arrow を利用できる環境が整い、加えて Red Chainer のような Ruby で実装されたデータツールの開発が始まっています。このように、Ruby はデータ解析・データ処理で利用できる言語になりつつあり、今後、データ分析や利活用においてRubyが使われることが期待されます。
本プロジェクトではRubyエンジニアが多く在籍する県内IT企業の競争力強化につながるようRubyにおけるデータ解析の技術習得に必要な資料、教材を開発します。また、それを広く公開することにより、Rubyエンジニアがデータ解析の技術を活用できる環境を整備します。
(※1)Ruby用のデータ処理ツールを提供するプロジェクト
公開内容
Rubyでデータ解析を行うための技術習得ができる資料、教材をGithubで公開しています。
ユーザー向け、開発者向け、初心者・入門向け、中級者向けとそれぞれのやりたいこととレベルに応じた教材を開発しました。
教材一覧
ユーザー向け | 初心者・入門 | IRubyインストールガイド |
IRuby Notebook 利用者ガイド | ||
Ruby データツールによるデータ解析 | ||
pycall.rb による Python データツールを用いたデータ解析 | ||
中級者 | pycall.rb による Rails と Python データツールの統合 | |
開発者向け | pycall.rb の仕組み | |
GObject Introspection 入門 |
ユーザー向け(初心者・入門)
- IRubyインストールガイド
IRuby(※2)の実行環境のインストールと、Windows で開発環境を構築するための手順を解説
【https://github.com/RubyData/workshop-materials/blob/master/iruby_guides/installation_guide.md】
(※2)【https://github.com/SciRuby/iruby】 - IRuby Notebook 利用者ガイド
IRuby Notebook の利用方法や機能をチュートリアル形式で解説
【https://github.com/RubyData/workshop-materials/blob/master/iruby_guides/users_guide.md】 - Ruby データツールによるデータ解析
データの読み込み、集計、可視化を Ruby のみで行うサンプル
【https://github.com/RubyData/workshop-materials/blob/master/data_analysis_intro/data_analysis_with_ruby_data_tools.ipynb】 - pycall.rb による Python データツールを用いたデータ解析
Python のデータツールを pycall.rb 経由で利用し、データの読み込み、集計、加工、可視化を Ruby で実施するサンプル
【https://github.com/RubyData/workshop-materials/blob/master/data_analysis_intro/data_analysis_with_pycall.ipynb】
ユーザー向け(中級者)
- pycall.rb による Rails と Python データツールの統合
Rails と Python データツールを統合する方法を実例に基づいて解説
【https://github.com/RubyData/workshop-materials/blob/master/rails_pycall_integration/rails_pycall_integration.md】
開発者向け
- pycall.rb の仕組み
pycall.rb が提供するブリッジ機能の仕組みの詳細な解説
【https://github.com/RubyData/workshop-materials/blob/master/inside_pycall/inside_pycall.md】 - GObject Introspection 入門
GObject Introspection(※3)で Ruby 向けのバインディングを開発する方法を具体例を通して解説
【https://github.com/RubyData/workshop-materials/blob/master/gobject-introspection/introduction.md】
(※3)【https://github.com/GNOME/gobject-introspection】
利用について
公開した資料はRubyにおけるデータ解析の技術を習得したい誰もが自由(※4)に利用できます。
ITOCはこれらの資料が個人、法人、コミュニティなどで広く利用していただくことを望んでいます。
(※4)ライセンスについてはこちらをご確認ください。
【https://github.com/RubyData/workshop-materials/blob/master/README.md】
お問い合わせ先
しまねソフト研究開発センター mail:itoc@s-itoc.jp Tel:0852-61-2225