Pythonはデータ分析ライブラリが充実していて、研究開発(R&D)にもってこい
近年日本でも急速に注目されているPython。
理由は、Deep Learningをはじめとした人工知能に多く用いられているからです。
では、なぜ人工知能に用いられているか、というと、numpy, scipyといった科学技術向けの計算を簡単に実装し、高速に計算できるライブラリが整っているからです。
研究開発をしていると、シミュレーションデータなど、膨大な量のデータを扱うことがあります。
そんな時に、ささっと分析用のコードを書いて処理できれば、時間を有意義に使えますね。
そんな研究開発に従事している。研究者・技術者のためのPython講座がUdemyにあります。
「【1日で習得】技術者のためのPythonデータ分析」です。
講座のゴール:Pythonを導入して業務効率化を図れる・データ分析を行える状態になる
研究開発シーンでよく使われるPythonデータ分析を習得する
講義は以下のように大まかに3部に分かれて進みます。
- 環境の構築、前提知識の獲得:コマンドプロンプト、エディタの使い方
- Pythonの基礎:変数、リスト、関数、numpy、pandas, matplotlib, scipyの使い方
- データ分析演習:回帰直線、数値積分、決定係数算出
動画のレクチャーは80本、時間にして8時間、レベルは初心者向けです。
データ分析演習では、研究開発に活かせるよう、センサの出力データを使ったり、Excelの実験データを分析したりします。
受講対象は?:技術者、学生、趣味の人
研究開発に携わっていて、プログラミング未経験の人、というと、バイオ系や化学系の人が思い浮かびます。
あるいは、ハードウェアを扱っていて、データ分析でエクセルを大活用していて、プログラミングまで必要としていなかった、なんてことも考えられます。
もちろん、学生がPythonのデータ分析を習得できれば、今やっている研究や、就活でも役立つのではないでしょうか?
PCはWindowsで進んでいくが、Macでも特に問題なく受講可能
講義は基本的にWindows向けに進んでいきます。
Macの人は対象にしてないのかよ?と思われるかもしれませんがご安心ください。
WindowsのコマンドプロンプトがMacではTerminalとして提供されている、くらいしか、特に違いはありません。
Anacondaをインストールしたら、「Command + Space」でSpotlightの検索画面を呼び出します。
そこで「terminal」を呼び出し、「jupyter notebook」と打てば、Jupyter notebookが起動するので、そのあとはwindowsと一緒です。
terminalを使う、ということだけ覚えておいてください!
講師は、阪大院卒で企業にてPython研究・開発をしているエンジニア
プログラミングスクールにはメンターを学生がやっているところが多くあります。
そんな中でUdemyの「技術者のためのPythonデータ分析」では、企業の第一線で活躍しているエンジニアが講師をしています。
研究者・技術者企業の研究/開発者。実験と数値シミュレーションの両方を行っており、実験家と理論家の橋渡しを行う。
業務では主にデバイス開発を行っている。
数値シミュレーションでは量子化学計算、有限要素法(CFD,電磁場解析)、モンテカルロ法の他、画像処理など分野を超えた様々な領域に従事。大阪大学大学院理学研究科修了。
学生時代はForntran95をメインに使用しており、OpenMPとMPIの並列化を併用したスパコンでの大規模数値計算を行っていた。使用するプログラミング言語(頻度順):
Python(メイン)、Fortran、Perl、Swift、Octave、C++、 C言語、Java
ちなみに、講師のTETSUYA Tさんは、全てのレビューにコメントを返しています。
受講に悩んだら、レビューを見てみるのも、雰囲気がわかって良いです。
実際に受けてみた感想
私も、このコースを買って、受講している真っ最中です。
受講した所感をどんどんここに追記していきたいと思います。
セクション1:はじめに
はじめにでは、講義の全体像と、何が習得できるか、がわかります。
前置きなので、電車の中で見てみるのも良さそうですね。
セクション2:環境構築・前提知識
セクション2では、あなたのPCでPythonプログラミングをできる環境を整えます。
このセクションを受け終わると、SpyderというPythonエディタとJupyter notebookでPythonプログラミングができるようになります。
先生の画面の実際の動きを見ながら設定ができるので迷わず環境設定ができます。
環境設定は、Python関係のライブラリが一通り含まれているAnaconda(アナコンダ)のインストールから、Jupyter notebook(ジュピターノートブック)、エディタのSpyder(スパイダー)の使い方がわかります。
もし、すでにJupyter notebookを使ったことがある、という人は、すでに知っている知識かもしれません。なので、倍速再生でさらっと流すか、飛ばしてしまってもいいかもしれません。
基本的にはJupyter Notebookで学習が進んでいきますが、.pyファイル(Pythonのプログラムファイル)を作るにはエディタが必要です。
そのため、Spyderもここで押さえます。
もし、すでにJupyter notebookを使ったことがある、という人は、すでに知っている知識かもしれません。なので、倍速再生でさらっと流すか、飛ばしてしまってもいいかもしれません。
感想:Pythonを全くいじったことのない人も、迷わず設定できるのがGOODです!
セクション3:Pythonの基礎【変数/リスト】
いよいよ、Pythonのプログラミングがスタートします。
ここでは、アルゴリズムを考えるまでの、Pythonプログラミングの基礎的内容を学習します。
Jupyter notebookを使って話が進んでいくので、Jupyter notebookの使い方がわからない場合は、セクション2を見直しましょう。
Jupyter notebookは、その場ですぐに結果が得られるので、変数の違い、リストづくりの練習、四則計算など、色々なパターンで試すことができます。
他の言語でプログラミングしたことのある人でも、若干Pythonの癖があるので、さらっとでも見ておくのが良いでしょう。
セクション3が終わると、Pythonのプログラミングで使う、基礎的な仕組みがわかります。
リスト・タプル・ディクショナリについては、慣れないとわからなくなるかもしれません。
わからなくなったら該当の回に戻って来ましょう。
プログラミング初心者の場合は、さらに色々試してみるのがいいと思います。
セクション4:Python基礎2【繰り返し/条件分岐】
インデントと、コロンの使い方が大事です。もし、Syntax errorが出たら、だいたいそこです。インデントが正しく使えているか、コロンが正しい位置にあるか、先生のコードと比較して、自分のコードを見直して見ましょう。
また、繰り返しのForとwhileの使い方も学びます。ざっくりと使い分け方は以下の通りです。
For:繰り返し回数がわかっている場合によく使う。
Breakはそんなに使わない
While:繰り返し回数がわからない場合によく使う。
Breakの使い方が大事
おそらく、過去にC言語やJavaなど別のプログラミング言語を扱ったことのある人にとっては理解の簡単な章でしょう。Pythonの独自の書法を学ぶだけですから。
逆にプログラミング経験のない人にとっては、セクション4をきちんと学習することによって、他のプログラム言語にも通じる概念を学ぶことができます。
何度か見て、実際に手を動かしてコードを書いて見流のがいいでしょう。色々なパラメータを変えて実行してもすぐに結果が得られるのがPythonのいいところです。
セクション5:Python基礎3【ファイル入出力/関数/応用】
Pythonプログラミングで特に重要な内容がセクション5です。
データ解析をしようとする場合、データベースからCSVなどでデータを取って来て、プログラムを使って処理をする、というのが一般的です。
その際、データの量が膨大だと、手でいちいち入力していられません。
そうしたときに使うのがファイルの入出力です。
また、プログラミングをする際には、似たような処理を何度か行うことがあります。そういうときに使うのが関数です。
Y = ax + b のように、xの値を変えてあげることで、この規則に応じた変数Yがわかります。
セクション6:numpy
セクション6ではいよいよPythonのライブラリを使った計算に入っていきます。
numpyは線形代数を高速で計算できるライブラリです。データ分析や機械学習、あるいはロボット、IoTなど様々な領域で活用されているライブラリです。
ここでは行列の生成や演算を中心に手を動かしていきます。
セクション7:pandas
pandasはpythonで使われるデータ分析用のライブラリです。様々な計算方法がライブラリの中に含まれ、簡単に使えるようになっています。
セクション8:Matplotlib
MatplotはPythonでグラフなど、データをビジュアライズするときに使うライブラリです。
二次元、三次元など、様々な方式を使うことができます。
セクション9:scipy
scipyは科学技術計算に特化したPythonのライブラリです。
線形近似、多項式近似などの近似式や、積分、常微分方程式、フーリエ変換など、毎回かくには複雑なアルゴリズムがパッケージ化されている、とても便利なライブラリです。
実際のデータ分析で活用するデータは、離散的で関係性がすぐにわかるとは限りません。そのため近似を行なうことが多くあります。
ライブラリの中に、科学技術系の高度な計算式が含まれていることから、数学の理論がわからなくても、多様な計算ができるようになります。
数学が苦手で、微分積分などがよくわからない、という方でも安心して受講してください。
セクション10:データ分析演習
いよいよ、セクション10が本番です。実際に行われるデータ分析をやって見ます。
演習は4種類用意されています。
1:実験データの回帰直線
2:スペクトルのフィティング、積分
3:テキストデータの取り扱い、線形近似・非線形近似
4:実験、SIMデータの比較・決定係数の算出
どの内容も高度ですが、セクション9までの内容が理解できていれば、実践することが可能です。
もし、途中わからなくなっても、わからない内容がどのセクションで習ったかさえわかれば、復習をして再チャレンジが可能です。
むしろ、手を動かせたけど、ちょっと不安だな、というケースでは、演習の後に、振り返りをして知識をより強固なものにするのがいいかも知れません。
セクション11:付録
コースの中で使ったサンプルプログラムなどのデータがまとまっています。
最初に付録にアクセスしてデータを印刷しておくと便利かも知れません。
ただ、最後におさらい的に使う方法でも全く問題ありませんでした。
全体の感想:実際に1日でPytonデータ分析ができるようになったのか?
きちんと手を動かしながら学習していたら、リファレンスを見ながら。データ分析の処理できるようになりました。
何回か仕事で使ってみると、よりスムースにデータ分析ができるようになる気がします。
今回私はほとんど1日でガーッと学びました。これは、できなくないと思いますが、ちょっと疲れます。
また、実践をすぐにしないと、短時間で詰め込んだものはすぐに忘れてしまいます。
全体的に、他のPythonデータ分析の本は読みやすくなりました。
基本的な処理の流れが頭に入ったからだと思います。
現在は、オライリーの機械学習の本を読んだり、Kaggleのチュートリアルにチャレンジしています。
また、Udemyの良いところは、受講後に講師からメッセージが届くことです。
受講を終えて終わりではなくて、ここからさらに頑張ろうという気持ちになります。
おすすめの受講方法
1日でカンヅメになって一気に受講する
1日で習得できる、というのがウリの講座です。確かに1日でデータ分析のプログラミングまでできてしまいます。
1日覚悟を決めて、実際に手をガンガン動かしながらやってみるといいと思います。
例えば、入門書を読むのであれば、Udemyのこの講座を見るのがいいでしょう。
あるいは、Pythonのプログラミングスクールやデータサイエンスのスクールに通うに当たって、ざっとPythonプログラミングの復習をしておきたい、という人が、ざっと内容を確認するのにも良いと思います。
電車や隙間時間に動画を見て、PCを使える環境で実際に手を動かしてみる
Udemyのいいところは。スマホアプリでいつでも動画を見て学習できるところにあります。
例えば、通勤時間や昼休みの隙間時間などに動画を見て学習して、家でじっくり手を動かしてプログラミングして見る、という使い方も良いでしょう。
動画を見るだけだと、Pythonの習得は不可能です。いかに効率よく手を動かしてプログラミングするか、というのがとても大事です。そういう意味で、動画で全体像を掴んでおいてから、各アルゴリズムを把握していく、というのは良さそうですね。