Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

マトリックスとは何ですか?Rubyでそれを使用する方法は?

マトリックスは、スプレッドシートのようなデータを保存および操作するために使用できる2D(2次元)配列です。

次の用途に使用できます

  • テーブルゲーム(チェス、チェッカーなど)でボードを表す
  • 統計とデータ分析
  • プロットとグラフの生成

これは強力なデータ構造であるため、使用方法を学ぶのに役立ちます。

Rubyでマトリックスを作成する方法

配列を使用して行列を作成できます。

このように

matrix = [
  [1,2,3],
  [4,5,6],
  [7,8,9]
]

これにより、3×3のマトリックスが生成されます。これは、2次元データをボードまたは位置のセットとして保存する場合に最適です。

しかし、足し算、引き算、掛け算で行列を結合したい場合は…

次に、Matrixを使用できます クラス。

使用方法は次のとおりです

require 'matrix'

a = Matrix[[1,2,3], [4,5,6], [7,8,9]]
b = Matrix[[1,2,3], [4,5,6], [7,8,9]]

追加できるようになりました

a + b
# Matrix[[2, 4, 6], [8, 10, 12], [14, 16, 18]]

次のように個々の値にアクセスできます:

a[0, 1]

これはアレイバージョンとは異なります 、この構文を使用します:

matrix[0][1]

配列と行列の両方を転置できます。つまり、行が列になり、列が行になります。

matrix.transpose

# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

覚えておいてください

マトリックスオブジェクトは不変であるため、新しいマトリックスを作成せずに値を変更することはできません。このMatrix 主に数学演算用です。データ分析と統計が必要な場合は、より強力なものが必要になります。

のようなもの…

ダルジェム

Daruは、行列を操作し、行列から統計を取得して、適切にフォーマットされたテーブルとして印刷できるようにする宝石です。 DaruはRubyプロットgemとも統合されているため、データからプロットとグラフを生成できます。

ここに例があります

require 'daru'

df = Daru::DataFrame.new(
    {
      "A" => [1,2,3],
      "B" => [4,5,6],
      "C" => [7,8,9]
    },
     index: ["A", "B", "C"]
   )

これにより、次の表が印刷されます

    A   B   C
A   1   4   7
B   2   5   8
C   3   6   9

次のような特定の列にアクセスできます:

df['A']

または数値インデックスによる:

df[0]

そして、このような統計を取得できます

df['B'].describe

#         statistics
# count            3
# mean           5.0
# std            1.0
# min              4
# max              6

最良の部分は?

CSVファイル、ActiveRecord、さらにはExcelファイルから直接データを読み込むことができます。

df = Daru::DataFrame.from_csv('healthy_food.csv')

また、whereを使用してデータをフィルタリングできます 表現。

例…

「炭水化物」列がある場合、25未満の値を持つマトリックス内のすべての行を見つけることができます。

このように

df.where(df['carbs'].lt(25))

sortすることもできます 、group_byaggregate データフレーム。

df = Daru::DataFrame.new(
    {  str: %w(a b c d a),
       num: [52,12,7,17,1] }
    )

df.group_by(:str).aggregate(num: :sum)

#    num
# a   53
# b   12
# c    7
# d   17

ダルでプロット

Daruを使用すると、データの視覚的表現を作成し、HTMLファイルとしてエクスポートできます。

ここに例があります

df = Daru::DataFrame.new(
  {'Cat Names' => %w(Kitty Leo Felix),
    'Weight'   => [2,3,5]}
  )

df.plot(type: :bar, x: 'Cat Names', y: 'Weight') do |plot, _|
  plot.x_label 'Cat Name'
  plot.y_label 'Weight'

  plot.yrange [0, 5]
end
.export_html

これにより、次のグラフが作成されます:

マトリックスとは何ですか?Rubyでそれを使用する方法は?

このグラフは、コードと同じフォルダにHTMLファイルとしてあります。

RailsアプリケーションでDaruを使用する場合は、daru-viewを追加する必要があります 宝石をミックスするか、chartkickのような別の宝石を使用してください。

概要

Rubyで行列について学習したので、2次元データを操作できます!

より多くの人が見つけられるように、この記事を共有することを忘れないでください。

読んでくれてありがとう。


  1. ガイド付きアクセスとは?その使用方法は?

    人々は、携帯電話を渡した瞬間に周囲をのぞき見する傾向があります。たとえば、面白い写真をチェックするために携帯電話を友人に渡すと、友人はスクロールを開始し、次に知っていることとして、あなたの個人的なものを調べ始めます。これを避けるために、Apple には Guided Access と呼ばれる機能があります。 画像クレジット: いもれ.com ガイド付きアクセスは、iPhone および iPad を使用しているときに一度に 1 つのタスクに集中できるようにするアクセシビリティ機能です。デバイスを 1 つのアプリに限定するだけでなく、アプリの機能も制御できます。 ガイド付きアクセスが有効な場合

  2. RSS フィードの概要と使用方法

    読書は、十分な知識を得るだけでなく、対人スキルにも役立つ健康的な習慣です。インターネットを使えば、紙を節約して環境に配慮することができるようになりましたが、特に読む価値のあるものを見つけようとすると、頭痛の種にもなります。読み取り可能なコンテンツの選択は、大量のコレクションが原因でインターネットを読む際に直面する可能性がある主要な問題の 1 つです。 この問題を解決するために、RSS フィードが開発されました。これにより、コンテンツを読んだり見たりする時間を節約できます。 RSS を使用すると、購読している作成者 (Web サイト) から RSS アグリゲーター (プログラム) にアクセスし