Rubyの行列計算ライブラリ Numo::NArray 覚え書き

NArrayについて

Rubyの行列計算ライブラリです。筑波大学の田中昌宏さんが中心となって開発しています。C言語で実装されています。
Rubyには主要な行列計算ライブラリが3つあります。旧NArrayと、NMatrixと、Numo::NArray です。

・旧NArray はWindowsでも安心して使える安定版です。開発は終了しています。
・NMatrix はScirubyコミュニティが推進しています。疎行列では性能を発揮するようですが全体的に低速です。
・Numo::NArray は旧NArrayの後継のライブラリで開発継続中です。

旧NArrayの解説はこちらのページをご覧ください。

OpenBLAS による高速化のためには Numo::Linalg をインストールします。

リファレンス

yardが便利です。Numo/narrayをインストール後にターミナルを開いて

と打ち込み、http://localhost:8808 にアクセス

関連ツール

・Numo::Linalg
・numo-gnuplot numo-gnuplotで遊ぶ
・IRuby

整数型

整数最小値最大値
Int8-128127
Int16-3276832767
Int32-21474836482147483647
Int64-9,223,372,036,854,775,8089,223,372,036,854,775,807
UInt80255
UInt16065535
UInt3204294967295
UInt64018446744073709551615

浮動小数点

SFloat: 有効桁数 7 桁程度
DFloat: 有効桁数は 15 桁程度

ビット

Bit

NArray配列を生成する

旧NArrayとNumo::NArrayでは、配列の形の指定の順番が逆になっているので注意が必要です。

NArrayの算術計算

型キャスト

行列積

より高速に行列積を計算したい時はOpenBLASをNumo::Linalgから使用。

いろいろな行列を生成する

配列の情報を取得する

文字列との相互変換

Ruby Arrayへの変換

NMath 関数

要素を呼び出す

乱数

一様な分布

正規分布

randrand_norm

統計

ソート

ビュー

ほかの配列を参照する

Numo::Linalg

シグモイド関数

inplaceの概念が独特で難しい