仕事と称してPythonで遊ぶ
私の職業は(今のところ)回路設計者なのですが、職場ではちょくちょくスクリプトを書いて遊んでいます。
回路設計では、回路そのものやシミュレーションデータを、ちょっとした規模のテキストとして扱うことがしばしばあります。 そういったときにスクリプトやワンライナーでテキスト処理ができると、仕事が捗って早く家に帰れたりします。 逆にそれができないと、苦行のように延々と手作業でデータを処理し続ける羽目に陥り、深夜残業コースになりかねません。
本日のお題は、モンテカルロシミュレーション結果のなんちゃって統計解析です。 職場の設計環境にはPython2と標準ライブラリしか用意されていないので、 日曜プログラミングで作成したAnalysticクラスがまさかの活躍を見せてくれました。 リーダーは手作業前提で4日程の工数を見込んでいたのですが、解析自体は工数1日で済みそうです。
勉強メモ
以下職場でコードを書いていたときの調べ物メモです。
list.index()
- 特定要素のインデックスが知りたかったけど、list.index()の存在をド忘れ。
>>> a=[1,2,3,4] >>> a.index(2) 1
sort -gオプション
- “1.5e-11"のような指数表示の文字列を数値としてソートしたかった。
- 指数表示の文字列は、なぜか左端のカラムにないと正しくソートされないようです。
>echo '2e10,A\n1.5e3,B\n2,C' | sort -g 2,C 1.5e3,B 2e10,A
リストの重複要素を取り除く
- 下記サイト様のremove_duplicates()がシンプルでよかった。 qiita.com
リストをn個ずつに分割
grepとwcで特定の文字をカウントとする
- grep -oとwc -lで特定の文字をカウントします。
>echo 'AACDEAG' | grep -o A | wc -l 3