※この記事にはプロモーションが含まれています。

16. NumPyでベクトル・行列計算

NumPyでの行列の計算方法(四則演算、合計、平均、標準偏差、分散)

更新日:

次にNumPyでの行列の計算方法を確認していきましょう。

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数10,000万本突破を記念して、今だけ期間限定で87%オフの大セール中!

行列の四則演算

最初に行列同士の四則演算を行います。まずは計算を行なう2つの行列x、yを定義します。

In [1]: x=np.array([[2,-1],[-3,4]])
...: x
Out[1]: array([[ 2, -1],
                      [-3, 4]])

 

In [2]: y=np.array([[1,2],[3,4]])
...: y
Out[2]: array([[1, 2],
                      [3, 4]])

 

NumPyのndarray型のデータについては、行列の和は以下のようにx + yと単純に足し算することで求めることができます。

In [3]: x + y
Out[3]: array([[3, 1],
                      [0, 8]])

 

行列の差も同様にx – yと引き算することで求めることができます。

In [4]: x – y
Out[4]: array([[ 1, -3],
                      [-6, 0]])

 

また行列の実数倍も同様にx * 実数 で求めることができます。

行列xの3倍の例は、

In [5]: x * 3
Out[5]: array([[ 6, -3],
                      [-9, 12]])

 

行列の積はdotを利用します。引数に積を求める行列を渡します。

In [6]: np.dot(x,y)
Out[6]: array([[-1, 0],
                      [ 9, 10]])

 

次に行列の要素に対して合計、平均などの数値計算を行なう関数を見ていきましょう。

まずは計算対象となる3行4列の行列arrを定義します。

In [7]: arr=np.array([[1,2,3,4],[11,12,13,14],[21,22,23,24]])
...: arr
Out[7]: array([[ 1, 2, 3, 4],
                      [11, 12, 13, 14],
                      [21, 22, 23, 24]])

 
 
 

行列の全ての要素の合計(sum)

行列を構成する全ての要素の合計にはsumを使います。

In [8]: arr.sum()
Out[8]: 150

 

列の合計

行列の構成要素の内、各列の合計を求める場合は、sumに対して、引数0を渡します。

In [9]: arr.sum(0)
Out[9]: array([33, 36, 39, 42])

 

行の合計

一方で、行列の構成要素の内、各行の合計を求める場合は、sumに対して、引数1を渡します。

In [10]: arr.sum(1)
Out[10]: array([10, 50, 90])

 
 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数10,000万本突破を記念して、今だけ期間限定で87%オフの大セール中!

行列の全ての要素の平均(mean)

行列を構成する全ての要素の平均の算出にはmeanを使います。

In [11]: arr.mean()
Out[11]: 12.5

 

列の平均

meanにおいても、引数0を渡すことで、各列の平均を算出することができます。

In [12]: arr.mean(0)
Out[12]: array([ 11., 12., 13., 14.])

 

行の平均

またmeanに引数1を渡すことで、各行の平均も算出できます。

In [13]: arr.mean(1)
Out[13]: array([ 2.5, 12.5, 22.5])

 
 
 

行列の全ての要素の標準偏差(std)

行列を構成する全ての要素の標準偏差はstdで求めることができます。

In [14]: arr.std()
Out[14]: 8.2411568767174117

例は割愛しますが、stdもsum、meanと同様に、引数0で列の要素の標準偏差、引数1で行の要素の標準偏差を求めることもできます。

 
 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数10,000万本突破を記念して、今だけ期間限定で87%オフの大セール中!

行列の全ての要素の分散(var)

行列を構成する全ての要素の分散はvarで求めることができます。

引数も同様、引数0で列の要素の分散、引数1で行の要素の分散を求めることができます。

In [15]: arr.var()
Out[15]: 67.916666666666671

 
 
 
著書の紹介です。

 

 
 
 
最後に...


Pythonの学習においては、実際に様々なプログラムを書いて試していくことが非常に重要です。Pythonについて、さらに詳しく学ばれたい方は、以下の私のUdemy講座をご検討いただければ幸いです。


Pythonを用いて世界中のWebサイトから自動的にデータ収集する方法を、基礎からていねいに学ぶことができます。Pythonを初めて学ばれた方も、最初に取り組みやすい内容になっています。


>> Pythonによるビジネスに役立つWebスクレイピング
発売数9,000本突破を記念して大セール中!期間限定になりますのでお早めに。
Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests)講座の画面

既に9,000名以上の方に受講頂き、大変好評です。またコースに満足いただけない場合でも、30日返金保証があるので安心です。

期間限定の割引クーポンは、こちらから!
>> Pythonによるビジネスに役立つWebスクレイピング
   
   





-16. NumPyでベクトル・行列計算

Copyright© ビジPy , 2024 All Rights Reserved.