pythonic world

20
PYTHONIC WORLD POWERED BY YAMADA

Upload: yuya-yamada

Post on 22-Jan-2018

1.018 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Pythonic world

PYTHONIC WORLD

POWERED BY YAMADA

Page 2: Pythonic world

YAMADYNAMIC

PROGRAMING LIFE OF YAMADA

▸小学生 計算機の勉強を始める。インベーダーゲームのコンパイルを通して感動した。

▸中学生 ロゴライターでプログラミングして遊んでいた

▸高専 16歳でC言語始める。19歳でLinux上で超電動モータのリアルタイム制御に成功

▸大学 数値計算大好き。多数の計算コードを作成。研究はロボットリアルタイム制御コード書いていた。ベンチャーでハンドラのシーケンス書いてた

▸大学院 研究はC++でVision robot, ベンチャーでCAD作って儲けた。

▸社会人 arduinoとC#で遊んでいた。ruby少し写経、最近pythonがマイブーム

Page 3: Pythonic world

テキスト

素人なりにC, C++, C#, RUBY, MATLAB,SCILABを俯瞰して。

▸道具超重要。チューリング完全ならなんでも良いというわけではない。

▸複雑性は悪。

▸手に馴染む道具の定義

▸エンジニアリング工程の99%は非創造的作業時間

▸計算リソースは金で買う、エンジニアの一秒は単価高い

▸そもそも本当にそんなに計算資源必要か!?

Page 4: Pythonic world

テキスト

なぜ今PYTHONを選ぶべきなのか

▸可読性が高い=コラボレーションできる

▸簡潔に書ける=手に馴染む道具となりうる

▸コミュニティが活発=ライブラリの発展性に無限の可能性

▸C言語拡張で基本的にやれることに制限がない。

Page 5: Pythonic world

テキスト

PYTHONに苦手なこと。

▸Cと上手に連携させないとハードウエアは叩けない

▸SMP環境でマルチスレッドしても高速化はできない

▸所詮はスクリプト言語

Page 6: Pythonic world

テキスト

C・C++を使ってはいけないシチュエーション

▸リアルタイム性が要求されていない、十分な計算資源がある

▸テキスト処理

▸オブジェクト指向を駆使せざるをえないほど複雑なこと

▸コンテナにアクセスしまくる。

▸チームでの大規模開発。

Page 7: Pythonic world

テキスト

C・C++を使うべきシチュエーション

▸リアルタイムアプリケーション

▸計算機のお勉強。

▸限られた計算資源を最大限引き出す。

▸他の言語を学習するのが面倒くさいため、一つで全部やりたい

▸10年後、C言語はアセンブラ言語のような扱いになるだろう

Page 8: Pythonic world

テキスト

努力と成果のSCALABILITY

努力

OUTPUT

凡人

まぁまぁ

目指す姿

Page 9: Pythonic world

テキスト

努力に対して、成果がサチる理由

▸車輪の再発明に明け暮れる

▸スケーラビリティーを蔑ろにして複雑性を放置する

▸創造的なことに時間を割けていない

▸可読性を蔑ろにしてコラボレーションを阻害する

Page 10: Pythonic world

テキスト

努力に対して、成果がSCALABLEな人

▸仕事を創る人 :創造的な時間を大切にしている

▸仕掛けを仕込む人

▸コラボレーションができる人

▸アウトソースしちゃう人

Page 11: Pythonic world

WHAT IS PYTHON

Page 12: Pythonic world

テキスト

PYTHONを一言でまとめる

▸ 可読性を重視した高水準汎用プログラミング言語。

▸ 全てがオブジェクト

▸ 動的型付け、ガベコレあり

▸ ワクワクするライブラリ

▸ マルチプラットフォーム

▸ 勉強がしやすい。

Page 13: Pythonic world

テキスト

とりあえずアナコンダ入れとけ

Page 14: Pythonic world

テキスト

画像処理

▸>>>import cv2

▸画像処理でやりたいことはとりあえずなんでもできるはず。

Page 15: Pythonic world

テキスト

MATLABの代替として

▸>>>import Scipy

▸統計、最適化、積分、線形代数、フーリエ変換、信号・イメージ処理、遺伝的アルゴリズム、ODE (常微分方程式) ソルバ、

Page 16: Pythonic world

テキスト

R言語やエクセルの代替として

▸ import pandas as pd

Page 17: Pythonic world

テキスト

マスマティカの代替として

▸>>>import sympy

Page 18: Pythonic world

テキスト

GNU PLOTの代替として

▸ import matplotlib

Page 19: Pythonic world

応用先

人工知能

▸$ pip install

https://storage.googleapis.com/tensorflow/linux/cpu/tensorflo

w-0.5.0-cp27-none-linux_x86_64.whl

▸ import tensorflow as tf

Page 20: Pythonic world

テキスト

対話環境

▸$ ipython notebook