こんにちは。RockinWoolです。
最近は、このコロナ禍の間になんとしてでも成長しておかないと後の人生に響きそうだなあと思って研究や仕事に頑張っています。ただ、仕事を頑張りすぎると学問から遠ざかってしまって感覚を忘れてしまいそうなのが最悪ですね。ということで今日も勉強という名のプログラミングで進捗を生み出していました。
さて、今日のテーマは
Pythonで学ぶネットワーク分析

これは自分の研究範囲の一つである複雑ネットワークとpythonの解説をしてくださっているらしい本なので、早速いつもどおり実況しながら進めていきます。
第一章一部:
ネットワークの概念について簡単に説明してくれていますね。複雑ネットワークにおける特徴量,アルゴリズム,モデル,プロセスの定義も簡単にしてくださっています。自分だとアルゴリズムとプロセスの研究者になるのかな?
第一章第二部と第三部:
ネットワーク分析ツールの情報比較をしています。早速自分が使い倒しているnetworkxについての解説がありますね。ここで一つ知らない単語が。ハッシュ可能ってなんだ?ってなって調べました。
ふーん。なんとなくだけど、データの代入の話みたいですね(理解力皆無)。とりあえず、networkxを使えば、ノードの情報に画像みたいな代入可能な任意のオブジェクトを突っ込めるということみたいですね(多分)
他に知っているツールはigraphくらいでした。というかigraphってpythonで使えたんだ・・・(Rだけだと思っていた)
可視化ツールの方はいつもお世話になっているmatplotlibが出てきていますが、もう一つ見慣れないBokehというものが紹介されていますね。内容よりもその名前が気になってしまいました。(ボケーってw)。ここでもまた一つ知らない単語が!インタラクティブな可視化ってなんでしょう?
これは調べてみたらいつも仕事で使っているような内容で絶望。対話型とか双方向会話とかの話ですね。ネットワークを描画した後に修正できるのだとしたらmatplotlibよりも優れている部分がありそうですね。今度使ってみよう!
第一章第四部:
Pythonについての概説が書いてありますね。ここに書いてあったライブラリは全部つかっていました(笑)最近アツいのはここでもしょっちゅう使っているscipyか、あるいはいつものnetworkxですかね?そういえばmatplotlib.pyplotのcolormapを最近いじり始めて楽しいのでそれでもいいかなあ。そういえばnetworkxは人生初コントリビュートしたいと思っているプロジェクトなので、自分で不具合を見つけたいなとは思っています!コントリビュートの方法を誰か教えてくれませんか?(チラッ)
第一章第五部:
JupyternotebookとAnacondaが出てきました。実は自分はAnaconda+VScode派なのでJupyter notebookはdockerコンテナで環境を固定するときにしかあまり使ってないんですよね。とはいえ、この本ではJupyterNotebook推奨だというならば使うかな・・・と思っていたら・・。
第一章第六部:
Colaboratoryについての説明がありました。へー最近ではこんな便利なものも使われているのか!でもこの作者には申し訳ございませんが、自分は自作PC(組み立てだけだけど)が趣味なので自分のAnaconda環境で良いという気はします。ただ!こんな簡単に環境設定できるならば学部生時代はもっと苦しまずに勉強できたと思います。(工学部や情報学部あるあるだと思いますが、高校まで5教科7科目しかやってなくて大学最初のC言語で詰んだ人間です。まあ、その時に本気で泣きながら一人で先生の提示したC言語基本問題300問を2週間くらいかけて解いたのがきっかけでプログラムの世界にはいったのかもしれませんが:隙あれば自分語り)
\
とこのあたりまで読んだところで裏で回していたプログラムも終わったみたいなので、今日はここまでにします。それではまた!