要素に配列が含まれる配列を行列とみなして行と列を入れ替える(transpose)

Array クラスで用意されている transpose メソッドを使用すると、配列に要素として他の配列が格納されている場合に、配列を行列と見なし行と列を入れ替えることができます。ここでは Ruby でネストされた配列を行列とみなして行と列を入れ替える方法について解説します。

(Last modified: )

ネストされた配列を行列とみなして行と列を入れ替える

Array クラスで用意されている transpose メソッドを使用すると、配列に要素として他の配列が格納されている場合に、配列を行列と見なし行と列を入れ替えることができます。

Arrayオブジェクト.transpose

transpose メソッドは行と列を入れ替えた新しい配列を返します。

具体的に見ていきます。例えば配列として次のような配列を考えてみます。

ary = [[1, 2], [3, 4], [5, 6]]

この配列は 3 つの要素を持ち、それぞれが 2 つの要素を持つ配列となっています。この配列を次のような行列と見なします。

ary =[[1, 2],
      [3, 4],
      [5, 6]]

transpose メソッドを使うと配列を行列と見なした場合の行と列を入れ替えます。

ary =[[1, 3, 5],
      [2, 4, 6]]

transpose メソッドを使う場合には元の配列の各要素が行列として成り立つように要素数などが同じでなければなりません。

サンプルコード

実際に試してみます。

# encoding: UTF-8

ary = [["suzuki", 89], ["yamada", 76], ["itou", 69]]
p ary

newary = ary.transpose
p newary

実行結果は次のようになります。

ネストされた配列を行列とみなして行と列を入れ替える

-- --

Ruby でネストされた配列を行列とみなして行と列を入れ替える方法について解説します。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。