タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとPythonとperformanceに関するmanabouのブックマーク (4)

  • うわっ…私のpandas、遅すぎ…?って時にやるべきこと(先人の知恵より) - Lean Baseball

    ※あくまでもイメージです(適当) 仕事じゃなくて、趣味の方の野球統計モデルで詰まった時にやったメモ的なやつです.*1 一言で言うと、 約19万レコード(110MBちょい)のCSVの統計処理を70秒から4秒に縮めました. # 最初のコード $ time python run_expectancy.py events-2018.csv RUNS_ROI outs 0 1 2 runner 0_000 0.49 0.26 0.10 1_001 1.43 1.00 0.35 2_010 1.13 0.68 0.32 3_011 1.94 1.36 0.57 4_100 0.87 0.53 0.22 5_101 1.79 1.21 0.50 6_110 1.42 0.93 0.44 7_111 2.35 1.47 0.77 python run_expectancy.py events-2018.c

    うわっ…私のpandas、遅すぎ…?って時にやるべきこと(先人の知恵より) - Lean Baseball
  • Pythonで省メモリに大量の文字列を扱う工夫 - MNTSQ Techブログ

    たくさんの文字列(や離散的な符号列)をメモリに載せないといけないんだけど、いろんな制約があって通常のList[str]では載らない…ということありませんか?(まぁあんまりなさそうですね) たまたまそういうことがあったので、その際に検討した内容をまとめておきます TL;DR メモリをもっと増やしましょう 富豪的に解決できるならいつでもそれが最高です しかし、世の中それでなんとかならんこともたくさんあります 用途があうのであれば専用のデータ構造を採用する 例えばもし共通のprefixやsuffixが存在し、順序に興味がなければtrie treeなどが使えます 例えば、弊社であれば、法人名をメモリに持ちたいなんてときもあります。そういうときに法人名の辞書をtrieで持ったりすることがあります 「株式会社」「一般財団法人」や「銀行」といった共通語がたくさんでてくるのでtrie treeでごりごり削

    Pythonで省メモリに大量の文字列を扱う工夫 - MNTSQ Techブログ
  • 100万倍速いプログラムを書く - Qiita

    この記事はなんなの プログラミングを始めたばかりで高速化の大枠が全くわからず意味不明なことをしていた在学時、こんな資料があったら良かったのになあ、と思って書いたもの。 書いて、在学時研究室に押し付けた後紛失したと思われていたものが発掘されたもの。 要約 ライブラリがあるならそれを使う。 ライブラリが無ければ、ボトルネック部分を探してそこだけ高速な言語で書きなおすか、可能なら事前コンパイルする。 最初から全てを Low-Level な言語で書くと大変、でも結果のプログラムは速い。 以下の時間の計測ではインポートにかかる時間は除いています。 使用するもの Python(3系) Numba Scipy Line Profiler Fortran(gfortran) QUADPACK QUADPACK以外の導入方法の説明は色んな所にあるので各自でお願いします。上3つに関しては、個人的にはAnaco

    100万倍速いプログラムを書く - Qiita
  • 高速化のためのPython Tips - のんびりしているエンジニアの日記

    皆さんこんにちは お元気ですか?私は元気です。 Pythonにおける高速化手法を掲載してみます。 簡単なコード並びに索引のような感じで引けるようなイメージで作成しました。 日の目次です。 Pythonにおける高速化の必要性 Pythonの高速化 高速化の手順 Profiling的な条件 計測コード Pythonの基的な書き方部分 rangeよりxrangeを(Python2.7) リストの生成 文字列結合 Import文のコスト 関数呼び出しのコスト ドットを避ける yieldを使う Numpyに関するTips Numpyを使用して基演算を高速化する Numpyの要素にアクセスする演算をしない Numbaで手早く高速化 その他高速化ツール Cython Dask PyPy 感想並びに展望 参考文献 Pythonにおける高速化の必要性 PythonC++Javaと比較すると非

    高速化のためのPython Tips - のんびりしているエンジニアの日記
  • 1