Numpy3 | 行列データの計算と解析を行う

  • URLをコピーしました!

ここで学習すること

Nmpyで行列の計算する方法や、行列の要素を取り出す方法を学習します。

要素の合計を求める

num = [1, 2, 3, 4, 5, 6 ,7]

arr=np.array(num)

.sum()で要素の合計を求めます。

print(arr.sum())

=>28

エクセルファイルからデータを読み込む

下のエクセルファイル(filename.xlsx)を読み込みます。

エクセルファイルは.pyファイルと同じフォルダへ保存します。

import pandas as pd

df = pd.read_excel(‘filename.xlsx’) 

エクセルファイルの読み込みおわり

import numpy as np

arr = np.array(df)

print(arr)

=>

[[ 2  4  2  3  6]

 [ 1  4  9  4  8]

 [12  5 43 76  9]

 [ 0 98  3  7  8]

 [ 2  7 67  5  3]]

print(arr.sum())

=>388

行、列それぞれの合計を求める

0軸の合計を計算する。

print(arr.sum(axis=0))

=>[ 17 118 124  95  34]

1軸の合計を計算する。

print(arr.sum(axis=1))

=>[ 17  26 145 116  84]

平均を求める

num = [1, 2, 3, 4, 5, 6 ,7]

.mean()で平均が求められます。

arr=np.array(num)

print(arr.mean())

=>4

行列の各軸の平均を求める

arr = np.array(df)

print(arr)

=>

[[ 2  4  2  3  6]

 [ 1  4  9  4  8]

 [12  5 43 76  9]

 [ 0 98  3  7  8]

 [ 2  7 67  5  3]]

.mean()で全要素の平均を求められます。

print(arr.mean())

15.52

.mean(axis=0)で0軸の平均を求められます。

print(arr.mean(axis=0))

[ 3.4 23.6 24.8 19.   6.8]

.mean(axis=1)で全要素の平均を求められます。

print(arr.mean(axis=1))

[ 3.4 23.6 24.8 19.   6.8]

分散を求める

先ほどの行列の分散を求めます

arr = np.array(df)

print(arr)

=>

[[ 2  4  2  3  6]

 [ 1  4  9  4  8]

 [12  5 43 76  9]

 [ 0 98  3  7  8]

 [ 2  7 67  5  3]]

.var()で分散が求められます。

print(arr.var())

656.0895999999999

.var(axis=0)で0軸の分散が求められます。

print(arr.var(axis=0))

[  19.04 1385.04  671.36  814.      4.56]

.var(axis=1)で1軸の分散が求められます。

print(arr.var(axis=1))

[   2.24    8.56  734.   1406.96  632.96]

MAX/MINを求める

先ほどの行列の分散を求めます

arr = np.array(df)

print(arr)

=>

[[ 2  4  2  3  6]

 [ 1  4  9  4  8]

 [12  5 43 76  9]

 [ 0 98  3  7  8]

 [ 2  7 67  5  3]]

.max()/.min()でMax/Min値が求められます。

print(arr.max())

98

.max(axis=0)で0軸のMax値が求められます。

print(arr.max(axis=0))

[2 1 5 0 2]

.min(axis=1)で1軸のMin値が求められます。

print(arr.nim(axis=1))

[2 1 5 0 2]

Max/Min値のindexを求める

argmax()/argmin()で行列のMax/Min値のindexが求められます。

あるデータの項目A(例:米国株価)が最大の時の項目B(例:日本株価)の値を求める時などに便利です。

先ほどの行列を使用します。

arr = np.array(df)

print(arr)

=>

[[ 2  4  2  3  6]

 [ 1  4  9  4  8]

 [12  5 43 76  9]

 [ 0 98  3  7  8]

 [ 2  7 67  5  3]]

0軸の行列のindex0(0列)の最大値(12)のindexを取得

max=arr.argmax(axis=0)[0]    

print(max)

=>2

1軸の行列のindex1(1列)の最大値(98)のindexを取得

max2=arr.argmax(axis=1)[2]

print(max2)

=>3

max=arr.argmax(axis=0)[0]   #0軸の行列のindex0(0列)の最大値(12)のindexを取得

arr[max] #上記indexの行すべてを取得

print(arr[max]) 

[12  5 43 76  9]

ソートしたindexを取得する

先ほどの行列を使用します。

arr = np.array(df)

print(arr)

=>

[[ 2  4  2  3  6]

 [ 1  4  9  4  8]

 [12  5 43 76  9]

 [ 0 98  3  7  8]

 [ 2  7 67  5  3]]

0列目を小さい順に並べたときのindexを取得

sort=arr[:, 0].argsort() 

.argsort()で要素を小さい順に並べた場合のindexを取得できます。

print(sort)

[3 1 0 4 2]

Top3を表示

print(sort[:3])

[3 1 0 ]

よかったらシェアしてね!
  • URLをコピーしました!
目次