理系学生はデータ整理をプログラムに任せるべき理由

理系学生はデータ整理をプログラムに任せるべき理由

こんにちは。BOSSです。

研究に勤しんでいる理系学生のみなさんは実験などで得たデータを整理しますよね?

別の物理量に換算したり、グラフを描いたり。あるいは提出用のフォーマットに体裁を整えたりしますよね。

では質問ですがその作業

手作業でやっていませんか?

エクセルにデータをはっつけて、式を打ち込んでグラフを描いて
ってやっていませんか?

はっきり言ってその時間は研究に無駄です。

今日はデータ整理プログラムを書いて研究に使った経験から、理系学生がプログラムを書けたらどういうメリットがあるのかを紹介したいと思います。

関連記事

Pythonで実験データ整理プログラム[CSVの出力] - 機械学習はじめました。

Python 実験データ整理プログラム[ファイル探索] - 機械学習はじめました。

Pythonで実験データ整理プログラム[ファイル探索 CSV読み込み txt出力] - 機械学習はじめました。

データ整理の時間は生産性がない

さて、冒頭にも述べた通りデータ整理にかけてる時間というのは基本的に生産性のない無駄な時間です。

というのも、研究で大切なことは

  • どんなデータをなんの目的で得るか

  • 得られたデータから何が言えるのか

この二点を繰り返していくことだと言えます。
つまり、実験をする前の目的意識と結果を見た考察が重要なのです。

ところがデータを整理してグラフを描く
といった作業自体は理論的に正しく、目的に沿った整理をすればそれで良いので特に頭を使うというところがありません。

(当然どういったグラフを描くかは重要ですが、それはデータの取得前に決まっていることです。データ整理の時に改めて考えることではありません。)

データ数が増えれば時間がかかる

生産性が無い作業であるデータの整理。

ところがこれをExcelかなんかで手作業でやると途方も無い時間がかかります。

1つや2つのデータ数ならやりますが、普通は再現性の実証のためにおんなじ実験を数回してn数を増やします。

それをパラメータースタディをして何種類かやるってなるともう十数個のデータを整理しなくてはなりません。

こうなってしまうと感情的には
「出来なくは無いけどめんどくさい」

ってなってきますよね。

だからこそこのめんどくさい生産性のない作業をすべて

プログラムにやってもらうのです

データ整理プログラムを書くメリット

同じ作業なら一瞬で出来る

基本的にプログラムの得意とするのは、同じような作業を繰り返し行う時です。

さらに言えば数値演算が入るともう超得意領域。
数万行っていうデータでも数秒もあれば一気に計算可能です。

したがって

  • 同じ書式の試験データが大量にあり、欲しいデータの形も同じ

  • 数値演算の式が一般化されている

  • データ点数が多い

こういった条件が揃った場合プログラムを書いて一気に処理できたら十数個の実験データも、ものの数秒でデータ整理が完了します。

もしExcelでぽちぽちやってたら数時間はかかっていたはずのデータ整理が数秒です。

他の試験データへの応用が利きやすい

一旦プログラムを書いてしまうと、基本的に計算の式が違うくらいでプログラムの機能としてはそれほど大きくは変わりません。

ですのでそれほど苦労なく別の試験用のプログラムを書くことが出来ます。
だいたいコピペで、計算のところだけ書き換えるとかそんなもんです。

これって非常に重要で、プログラムを書くコストがどんどん下がることになります。

つまり、 一回楽が出来ると次々に楽することができる

ということなんですね。

カンタンにすごいって思わせられる

データ整理で行う作業って

  1. ファイルを読み込む

  2. 数値計算をする

  3. ファイルに書き出す

って3つのプロセスしかありません。もしグラフを描くなら数値計算をしたあとグラフを表示するだけなんでプロセスは4つ。

意外と簡単なんですよね。ちょっとプログラミングを勉強したら十分作れるレベル。

一方で、私の周囲の学生を見ているとプログラミング出来るんですって人はほとんどいません(機械系の場合)

みーんな頑張って一つずつデータ整理を手作業でやってるんですよね。

実際私も最初はそうしてたんですが、ほとんどルーティンワークでやってて馬鹿らしく思ったんですよ。

(なんでこんなことに時間を使ってるやろ。もっとやるべきことあるやん。)

って。

そう思ってプログラムを作ってみると、自分の周りの人たちにすごいと言われるんですよ。

十数個のデータ処理が一瞬ですからね。

けれども人からすごいって言われる身としては内心

(結構カンタンなんやけど、なんで誰もやらんのやろ)

って気分なわけですよ。カンタンに周囲から賞賛される。

プログラム書けない人からみるとちょっとしたこともすごく見える。これってめっちゃコスパいいですよね。

まとめ

今回は私が実際に行ってきた経験から、研究で得たデータの整理はプログラムに任せるべき

という内容を紹介してきました。

実際にプログラミングというのはあくまでも目的達成の手段です。今回で言えばぱぱっとたくさんのデータの整理を行うようにするという目的を達成できれば良いわけです。

プログラミングと一口に言ってもたくさんやり方があります。

私の場合はPythonを用いましたが、多くの学部生が習うC言語(速度は速いし)でもいいしExcelのマクロを組んでもいい。

ただ、ルーティーンワークをPCにやらせる

という発想を持ち、より多くの時間を生産的な研究活動に充てていきましょう。