【Numpy】行列の形の変更方法まとめ

numpy

概要

こんにちは。すのくろです。

今回は、行列計算に用いる「Numpy」を使った行列の形の変形方法について説明したいと思います。

これらの操作を覚えることで、Numpyを使って今後のデータの整理等に役立てることができるかと思います。それではやっていきましょう!

準備|使用するライブラリNumpyのインポート

まずはNumpyを使うためにライブラリをインポートします。

インポートの方法は下記のコードの通りです。

# NumPyのインポートの仕方
import numpy as np

.shape():行列数の表示(取得)

まずは「.shape()」を使って、作成した行列の形(何行何列の行列か?)を確認する方法について説明します。

# .shape()で形の確認(何行何列の行列か?)
m1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
m1.shape

実行結果↓

(3, 4)

これはシンプルですが、結構便利です。

たくさんの行列を使っていると、行列の要素数、その大きさ、長さといったものがわからなくなってくることがあります。

その際に適当なセルに「.shape()」を入力してみて、データの形を確認するということが実際にもよくあります。

また下記のように、「.shape()」で行と列の数を所得して、それらをパラメータとして計算などに用いる応用にも使えたりします。

b = m1.shape
print("行の数",b[0])
print("列の数",b[1])

total = b[0] + b[1]
print(total) 

実行結果↓

行の数 3
列の数 4
7

.reshape():行列の形の変更

次に、「.reshape()」を使って好きな行列に変更する方法です。

行列の行×列の要素数が合っていれば、その中で自由に形(行と列の数)を変更可能です。

例えば、下記のコードの通りです。

# .reshape()で好きな行列数に変更(要素数があっていないとダメ)
m1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print("変更前↓")
print(m1)

m2 = m1.reshape(2, 6)
print("変更後↓")
print(m2)

実行結果↓

変更前↓
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
変更後↓
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]

.flatten():行列を一列に変換

また、「.flatten()」を使うことで、行列を1行に変換することもできます。

これによって1つの大きなベクトルとなって規則的な順番で値を取り出しやすくなる場合もあります。

# .flatten() で一行に変更
m1.flatten()

実行結果↓

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])

まとめ

今回は、行列を扱うライブラリNumpyを使って、行列の形を変更する方法について解説しました。

今後のデータ操作において役立つと思うので、是非使ってみてください。

ここまでお読みいただきありがとうございました!

コメント

タイトルとURLをコピーしました