AT's Blog

趣味のプログラミングに関する技術メモがメインです。

仕事と称してPythonで遊ぶ

私の職業は(今のところ)回路設計者なのですが、職場ではちょくちょくスクリプトを書いて遊んでいます。

回路設計では、回路そのものやシミュレーションデータを、ちょっとした規模のテキストとして扱うことがしばしばあります。 そういったときにスクリプトワンライナーでテキスト処理ができると、仕事が捗って早く家に帰れたりします。 逆にそれができないと、苦行のように延々と手作業でデータを処理し続ける羽目に陥り、深夜残業コースになりかねません。

本日のお題は、モンテカルロシミュレーション結果のなんちゃって統計解析です。 職場の設計環境にはPython2と標準ライブラリしか用意されていないので、 日曜プログラミングで作成したAnalysticクラスがまさかの活躍を見せてくれました。 リーダーは手作業前提で4日程の工数を見込んでいたのですが、解析自体は工数1日で済みそうです。

勉強メモ

以下職場でコードを書いていたときの調べ物メモです。

list.index()

  • 特定要素のインデックスが知りたかったけど、list.index()の存在をド忘れ。
>>> a=[1,2,3,4]
>>> a.index(2)
1

www.pythonweb.jp

sort -gオプション

  • “1.5e-11"のような指数表示の文字列を数値としてソートしたかった。
  • 指数表示の文字列は、なぜか左端のカラムにないと正しくソートされないようです。
>echo '2e10,A\n1.5e3,B\n2,C' | sort -g
2,C
1.5e3,B
2e10,A

orebibou.com

リストの重複要素を取り除く

  • 下記サイト様のremove_duplicates()がシンプルでよかった。 qiita.com

リストをn個ずつに分割

iogi.hatenablog.com

grepとwcで特定の文字をカウントとする

  • grep -oとwc -lで特定の文字をカウントします。
>echo 'AACDEAG' | grep -o A | wc -l
       3

www.turph.jp