より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

第32回 Pythonもくもく会に参加してきました

mokupy.connpass.com

表参道のおしゃれなスペース。

主催者の方にはwifiも電源も完備でこのようなスペースを無料で提供していただいたことに大変感謝します。

雰囲気はシーンとしていて、本当に黙々。

その代わり、Slackで「どわーっ!」とやりとりしているのかと思いきや、そういうこともなく、黙々。

Slackでかき回してみようかと投稿してもシーン。

みなさん、自分の作業に真剣に取り組んでいる様子でした。

この勉強会に参加することになった経緯

こういう勉強会に参加すると、IT関連の仕事をしているわけでもないが、プログラミングを仕事に活かしたいなどと行った目的で参加される方々もいらっしゃいます。

そういった方と話すきっかけがあって、自分も新鮮な気持ちでプログラミングに向き合ってみようと。

とわけで、ほとんどやったことのないPythonの勉強会に参加することにしました。

今日の私のやること

普段はC#erで、機械学習C#でチャレンジして撃沈する私ですが、さすがにPythonの会なのでおとなしくPythonをやります。

www.shoeisha.co.jp

この本を入手したので、この本を片手に演習。

第2章 Pythonの基本

基礎は重要。左手は添えるだけとか思い出します。

が、こんなの一からやっていたら、いつまで経ってもたどり着けねーぜ。

と単純は四則演算は適当に進めます。

この本はNumpyでの行列の基礎も掘り下げてくれるのはいいですね。

In [63]:
x = np.array([1,1,2,3,5,8,13])
x > 3
Out[63]:
array([False, False, False, False,  True,  True,  True], dtype=bool)

これとかすごい。x > 3 の一発で判定して出力してくれる。

第3章 グラフの描画

グラフが簡単に描画できるので、楽しいパート。javaScriptよりもデスクトップアプリよりも簡単に描画できます。

f:id:rimever:20181028123925p:plain

こんな感じ。

In [7]:

# 3次関数 f(x) = (x-2)x(x+2) を描く
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def f(x):
        return (x - 2) * x * (x + 2)
In [8]:

print(f(1))
-3
In [9]:

print(f(np.array([1,2,3])))
[-3  0 15]

こういう1つの関数で変数1つでも配列でも簡単に処理されるのは楽。

とはいえ、C#はそのためのLinqがありましたか。

4章 機械学習に必要な数学の基礎

お昼終わった後、他の方に私が作業している本も見ていただいたのですが、シグマなどの記号をきちんと説明してくれるのがいいとのこと。

ちょうどその箇所に突入していきます。

微分積分辛いです。よくわかったのか、わからないのか。完了。

5章 教師あり学習:回帰

いよいよ機械学習に突入。

少し触ったところで、これまで。

Jupyter Notebook

使っていて気付いたのがJupyter Notebookの使い勝手の高さ。

処理の途中で、結果を確認できる。実際に実装するときでも、デバッグしながら進められるということ。

ちょっとしたコードを書いて試したいというのにはうってつけですね。

学習にも開発にはうってつけのツールですね。

SlackBot

他の方がPythonでSlackBotを開発していると聞いて、面白そうと思ったので、これも今度やってみようかと思います。