Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Pythonで行列っぽいものを作る方法

【Pythonのfor文】Numpyなどを使わずPythonで行列っぽいリストを作る方法

PythonでNumpyを使わずに見た目が行列っぽいものを作る方法

今回はPythonのfor文の練習として、「見た目上だけは」数学の行列っぽいリストを作る方法の説明です。あくまで「見た目だけは」というのが今回のポイントです。

Pythonと行列

行列とは数学でいうと、

Pythonと行列

このような形で書かれいてるものですね。どこかで見たことがある人も多いのではないでしょうか。

今回は行列の数学的な説明は何もしないので、数学的に行列とは何かと気になる方は調べてみてください。実はコンピューターの原理そのものに必要不可欠な重要な数学上の概念なのです。

さて通常Pythonで行列を作ったり扱ったりするときは、

  • 超有名ライブラリのNumpyを使う
  • Numpyを使わない場合でも、for文とリストを使って多重構造のリストを作る

というのが主な方法です。

たとえば、仮に2重リストを作る場合だと、

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

と、このようなリストの中にリストを埋め込むような感じですね。

ただこれだと数学上の行列とは見た目がけっこう違いますよね。

そこで少し表示のさせ方を工夫すると、

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

と見た目を変えるコードもできます。これで数学上の行列に見た目が近づきました。

しかし、やはりいちばん外側の「[ ]」が気になりますね。見た目はできるだけシンプルなほうがいいです。もちろん全体としてリストオブジェクトにすることは、プログラミングでの扱いを考えるととても有益なのですが、今回はあくまで見た目にこだわり、一番外側の[ ]を外した形で、見た目だけは行列っぽいなにかを作ってみましょう。

for文の練習として見た目だけ行列っぽいものを作る方法

コード

これを実行すると、

[11, 12]
[21, 22]
[31, 32]

となります。数学的にいえば3行2列で「3 x 2の行列」(行列は英語でマトリックス:matrix)ができあがりました。上の「21」という数字は2行1列目の要素です。

なお行列という言葉は行と列の2つによって構成され、行の情報を先にかいて、列の情報を後に書きます。

どちらが行でどちらが列かわかりにくいかもしれませんが、横書きのノートを思い浮かべてください。横書きのノートの行数はどうやって数えますか?罫線を上から下へ数えますよね。上から下へ数えるのが行で、左から右へ数えるのが列です。

解説

まずfor文の中にfor文を使って多重リストを作る方法については、以前に「【初心者向け】Pythonの多重リスト(配列)をfor文を使って作る方法の解説」で解説してあるので、ぜひ読んでみてください。

次に今回のコードでは、

  • 行の数を変数row
  • 列の数を変数column

に設定しています。

それぞれのrange()関数のうち、range(1, ○)の○の部分の数字を2以上に数字に変えて実行してみてください。

たとえば、

for column in range(1,3);

のrangeの引数「3」を「4」に変更して、

そのまま
for column in range(1,4):
そのまま

とすると、

[11, 12, 13]
[21, 22, 23]
[31, 32, 33]

列が1つ増えます。こうすると3行3列、つまり3 x 3行列ができあがります。このように行と列が同じ数になるものを数学上は正方行列といいます。正方形のイメージですね。

最初にも書きましたが、今回のコードはあくまで「見た目だけ」行列っぽいものを作るというだけのものなので、これを使って行列同士の計算をする場合などには使いにくいものとなっています。

ただfor文やリスト作りの練習にはなるかなと思います。

最も効率的なプログラミング学習は動画学習

Pythonをプロから短期間で合理的にマスターするなら、やはり動画による学習方法がわかりやすくオススメです。世界最大級のオンライン学習サイトUdemy(ユーデミー)【PR】ではPythonのプログラミング講座が入門~応用レベルまで幅広く展開されています。

Udemyの動画講座では講師に質問が可能、動画なのでプログラムの動きがわかりやすく理解しやすい、わかりにくいところを何度も繰り返し再生できる、プログラミングスクールよりもはるかに安いというメリットがあります。

その中でも次のような講座がおすすめです。

他にも多数のプログラミング講座があるのでぜひ活用し、合理的に短期間でプログラミングを身に着けましょう。