pythonic world
TRANSCRIPT
PYTHONIC WORLD
POWERED BY YAMADA
YAMADYNAMIC
PROGRAMING LIFE OF YAMADA
▸小学生 計算機の勉強を始める。インベーダーゲームのコンパイルを通して感動した。
▸中学生 ロゴライターでプログラミングして遊んでいた
▸高専 16歳でC言語始める。19歳でLinux上で超電動モータのリアルタイム制御に成功
▸大学 数値計算大好き。多数の計算コードを作成。研究はロボットリアルタイム制御コード書いていた。ベンチャーでハンドラのシーケンス書いてた
▸大学院 研究はC++でVision robot, ベンチャーでCAD作って儲けた。
▸社会人 arduinoとC#で遊んでいた。ruby少し写経、最近pythonがマイブーム
テキスト
素人なりにC, C++, C#, RUBY, MATLAB,SCILABを俯瞰して。
▸道具超重要。チューリング完全ならなんでも良いというわけではない。
▸複雑性は悪。
▸手に馴染む道具の定義
▸エンジニアリング工程の99%は非創造的作業時間
▸計算リソースは金で買う、エンジニアの一秒は単価高い
▸そもそも本当にそんなに計算資源必要か!?
テキスト
なぜ今PYTHONを選ぶべきなのか
▸可読性が高い=コラボレーションできる
▸簡潔に書ける=手に馴染む道具となりうる
▸コミュニティが活発=ライブラリの発展性に無限の可能性
▸C言語拡張で基本的にやれることに制限がない。
テキスト
PYTHONに苦手なこと。
▸Cと上手に連携させないとハードウエアは叩けない
▸SMP環境でマルチスレッドしても高速化はできない
▸所詮はスクリプト言語
テキスト
C・C++を使ってはいけないシチュエーション
▸リアルタイム性が要求されていない、十分な計算資源がある
▸テキスト処理
▸オブジェクト指向を駆使せざるをえないほど複雑なこと
▸コンテナにアクセスしまくる。
▸チームでの大規模開発。
テキスト
C・C++を使うべきシチュエーション
▸リアルタイムアプリケーション
▸計算機のお勉強。
▸限られた計算資源を最大限引き出す。
▸他の言語を学習するのが面倒くさいため、一つで全部やりたい
▸10年後、C言語はアセンブラ言語のような扱いになるだろう
テキスト
努力と成果のSCALABILITY
努力
OUTPUT
凡人
まぁまぁ
目指す姿
テキスト
努力に対して、成果がサチる理由
▸車輪の再発明に明け暮れる
▸スケーラビリティーを蔑ろにして複雑性を放置する
▸創造的なことに時間を割けていない
▸可読性を蔑ろにしてコラボレーションを阻害する
テキスト
努力に対して、成果がSCALABLEな人
▸仕事を創る人 :創造的な時間を大切にしている
▸仕掛けを仕込む人
▸コラボレーションができる人
▸アウトソースしちゃう人
WHAT IS PYTHON
テキスト
PYTHONを一言でまとめる
▸ 可読性を重視した高水準汎用プログラミング言語。
▸ 全てがオブジェクト
▸ 動的型付け、ガベコレあり
▸ ワクワクするライブラリ
▸ マルチプラットフォーム
▸ 勉強がしやすい。
テキスト
とりあえずアナコンダ入れとけ
テキスト
画像処理
▸>>>import cv2
▸画像処理でやりたいことはとりあえずなんでもできるはず。
テキスト
MATLABの代替として
▸>>>import Scipy
▸統計、最適化、積分、線形代数、フーリエ変換、信号・イメージ処理、遺伝的アルゴリズム、ODE (常微分方程式) ソルバ、
テキスト
R言語やエクセルの代替として
▸ import pandas as pd
テキスト
マスマティカの代替として
▸>>>import sympy
テキスト
GNU PLOTの代替として
▸ import matplotlib
応用先
人工知能
▸$ pip install
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflo
w-0.5.0-cp27-none-linux_x86_64.whl
▸ import tensorflow as tf
テキスト
対話環境
▸$ ipython notebook