kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

PPP3: 機械学習 Numpyとか

NumPyはPython数値計算ライブラリで、行列計算を始めとするさまざまなツールを提供しています。

いろんなライブラリの名前を聞くことは聞くんだけど区別がついてない

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6]])
y = np.array([7, 8, 9])
print(x)
print(y)

これもJupyter Notebookに入れてくんだよな?
どんどん下に伸ばしてけばいいのか?

[[1 2 3]
 [4 5 6]]
[7 8 9]

それでいいみたい

print(x.shape)
print(y.shape)
---
(2, 3)
(3,)

さっきのxyを覚えてるってことだよな
しかし毎回上から全部実行してるわけじゃない気がする
中でどう動いてるか理解できてないからなんか気味悪い

a = np.array([7, 8, 9])
a + 1
---
array([ 8,  9, 10])

全要素に1がたされている
ブロードキャスティングという

8とか9の前のスペースは桁を揃えてるんだな

python x = np.array([[1, 2, 3], [4, 5, 600]]) print(x) --- [[ 1 2 3] [ 4 5 600]]

なるほど
行列使うならこうなってほしいよな

NumPy完全に理解した(嘘
次pandas

import pandas as pd
d = {'employee_id': [101, 102, 103, 104], 'name': ["Tom", "Brian", "Lisa", "Roy"]}
df = pd.DataFrame(d)
df

おお、きれいな表が表示された
これはJupyter Notebookがやってくれてるのかな

$ python
>>> import pandas as pd
>>> d = {'employee_id': [101, 102, 103, 104], 'name': ["Tom", "Brian", "Lisa", "Roy"]}
>>> df = pd.DataFrame(d)
>>> df
   employee_id   name
0          101    Tom
1          102  Brian
2          103   Lisa
3          104    Roy

そうだな
Jupyterは何を見てこれはtableにしてやろうって思うのか
DateFrameっていう型を知ってる?

これがデータフレームで、2次元のテーブル
1次元の配列はシリーズ

データフレームからシリーズを取り出す

df.name
---
0      Tom
1    Brian
2     Lisa
3      Roy
Name: name, dtype: object

あっさり地味な表示に戻ったな

df.to_csv('employees.csv')

できたかな

$ cat employees.csv 
,employee_id,name
0,101,Tom
1,102,Brian
2,103,Lisa
3,104,Roy

できた
読む

df1 = pd.read_csv('employees.csv')
df1

読めた

こうやってJupyterにちょこちょこ入れてると、分析やってるときの雰囲気も
ちょっと見えてくる
なんにも分析してないけど

そういうのって試行錯誤の連続だから記録を取ってないとすぐ
あれ?どうやったらこの結果になったんだっけ?
なんでこういう計算したんだっけ?
ってなってしまう風景がありありと目に浮かぶ

Jupyterだったらコードと結果とあと考えたことはテキストにしていけば全部残るし
ありがたみありそう