タグ

pythonに関するnaga_sawaのブックマーク (11)

  • pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator

    - はじめに - Pythonのパッケージ管理ツールは、長らく乱世にあると言える。 特にpip、pipenv、poetryというツールの登場シーン前後では、多くの変革がもたらされた。 記事は、Pythonパッケージ管理ツールであるpip、pipenv、poetryの3つに着目し、それぞれのツールに対してフラットな背景、技術的な説明を示しながら、所属企業内にてpoetry移行大臣として1年活動した上での経験、移行の意図について綴り、今後のPythonパッケージ管理の展望について妄想するものである。 注意:記事はPythonパッケージ管理のベストプラクティスを主張する記事ではありません。背景を理解し自らの開発環境や状態に応じて適切に技術選定できるソフトウェアエンジニアこそ良いソフトウェアエンジニアであると筆者は考えています。 重要なポイントのみ把握したい場合は、各章の最後のまとめを読んで頂

    pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator
    naga_sawa
    naga_sawa 2021/04/04
    各環境で安定して使えるパッケージシステムに統一されてほしいもんです/poetry使ってみるか
  • Pythonの知っておくと良い細かい処理速度の違い8個 - kumilog.net

    はじめに 標準入力 input と sys.stdin.readline ソート sort と sorted ソートの key ループ for と while リスト リストの初期化 二次元配列の場合 リストの値参照 リストへの値追加 それぞれの処理速度 まとめ はじめに 最近、PythonAtCoderなどの競技プログラミングに挑戦しています。これまであまりに気にしなかったけど、ちょっとした書き方で処理速度が変わってくることに気づいたので、これを気に少し調べてみました。 目次にあるように、標準入力、ソート、ループ、リストについて、計8個の処理の速度比較を行いました。処理速度の計測方法は、Mac Book Pro*1を使い、timeitでそれぞれ100回計測*2し、平均と標準偏差を求めています。 結果だけ知りたい方は、まとめへどうぞ。 計測に用いたコードは以下にあります。 github.

    Pythonの知っておくと良い細かい処理速度の違い8個 - kumilog.net
    naga_sawa
    naga_sawa 2020/05/09
    python 書き方による速度の違い
  • Pythonプログラムが遅い!高速化したい!そんな時は... - Qiita

    Pythonで実装したときに、処理時間が長すぎて要件を満たせないことがあります。そんなときにはこの記事で示す4種類の対策があります。 なお、高速化のために何かをすると別の何かを失います。トレードオフの代表例としては、表現の自由度、可読性、依存度、メモリ使用量、CPU使用量でしょうか。用法・容量を守って正しくお使いください。 また、高速化をする前にはスクリプトのどこが遅いのか、プロファイリングツールなどを使って確かめる必要があります。遅くない処理を頑張って高速化しても、全体の実行時間にはほとんど影響を与えません。この記事ではその手順については説明しません。 4種類の高速化手法 この記事では、下記の4種類の高速化手法について紹介します。 言語仕様・標準ライブラリの範疇でスクリプトを書き直す ライブラリを使う ライブラリを作る バイトコードを最適化する 1. 言語仕様・標準ライブラリの範疇でスク

    Pythonプログラムが遅い!高速化したい!そんな時は... - Qiita
    naga_sawa
    naga_sawa 2020/05/09
    python高速化テクニック各種/オブジェクトアクセスが結構重いのでループ内とかだとインスタンスメソッド叩く代わりにキャッシュするほうがよさそう
  • Pythonistaなら知っておきたい計算量のはなし - Qiita

    最近久しぶりにアルゴリズムイントロダクションを読んでいるのですが、ふと「Python(CPython)のデータ構造に関する各操作の計算量ってどれくらいなのかな?」と気になったので調べてみました。以下のページを参考にしています: Python Time Complexity 以下では $n$ や $k$ といった記号を使います。ここで $n$ はコンテナ内の要素数、$k$ はパラメータ内の要素数かパラメータの値とします。では見ていきましょう。 2021/05/02 コメントでのご指摘を記事に反映しました。ありがとうございます。 リスト まずはリストです。Pythonではリストは内部的にはC言語の配列として表しているようです。そのため、先頭要素の追加や削除を行うとそれ以降の要素をすべて移動する必要があるため大きなコストがかかります。なので先頭に要素を追加したり削除する必要がある場合は、代わりに

    Pythonistaなら知っておきたい計算量のはなし - Qiita
    naga_sawa
    naga_sawa 2020/05/09
    python各種コレクションの計算量
  • GitHub - pistatium/about_python_logging: 「すっきり分かる Python のログ」 の資料です

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - pistatium/about_python_logging: 「すっきり分かる Python のログ」 の資料です
    naga_sawa
    naga_sawa 2020/02/21
    pythonのloggerの使い方
  • pythonによる画像処理入門 - webエンジニアの日常

    はじめに 今回はpythonによる画像処理のお話です。 普段仕事ではRubyメインなのですが、最近趣味pythonを勉強しはじめ、画像を加工するのが意外と簡単だと分かったので、簡単な画像処理について書いてみました。 pythonについてはまだまだ勉強中なので、python的にはこうは書かない、これだと処理が遅い、コードが汚いなどなどありましたら、コメントで教えていただけると幸いです。 また、以下のコードではpythonのライブラリ、numpy, pillowを使用しています。 著者の環境ではwindows10上でAnaconda3を使用しているため別途インストールは不要でしたが、実行する際は必要に応じてインストールをお願いします。 画像処理の概要 画像の加工は単純に各ピクセルの色を画像の端から端まで順番に変更することで実現しています。 そこで、まずは画像ファイルを読み込み、操作しやすいよ

    pythonによる画像処理入門 - webエンジニアの日常
    naga_sawa
    naga_sawa 2017/08/16
    python による画素操作の基礎/のような
  • PythonでCSVを高速&省メモリに読みたい - tkm2261's blog

    今日はPython (Pandas)で高速にCSVを読むことに挑戦したいと思います。 Kaggleに参加するたびに、イライラしていたので各実装の白黒はっきりさせようと思います。 R使いが羨ましいなぁと思う第一位がCSV読込が簡単に並列出来て速いことなので、 なんとかGILのあるPythonでも高速に読み込みたいと思います。 ただ、この検証ではコーディング量が多いものは検証しません。 CSV読込は頻出するので、フットワークの軽さが重要です。(オレオレライブラリ嫌い) Pickleは早いけど。。。 結論はDask使おう! 検証環境 データ 速度検証 pandas.read_csv() pandas.read_csv() (dtype指定) pandas.read_csv() (gzip圧縮) numpy.genfromtxt() pandas.read_csv() (chunksize指定 +

    PythonでCSVを高速&省メモリに読みたい - tkm2261's blog
    naga_sawa
    naga_sawa 2017/08/09
    高速にCSVを読むには『daskを使うのが速くて実装が楽です!』
  • 超簡単!Pythonを使って中学・高校レベルの数学問題を解いてみた - paiza times

    秋山です。 PythonはNumpyとかSympyとか、数値計算が得意なライブラリが充実しています。もちろん中学・高校の数学で習うレベルの計算もすぐにできちゃいます。 というわけで今回はPythonでプログラミングをして、中学・高校で習う数学の問題を解いてみました。 Pythonが使えるようになれば、中学・高校レベルの数学では困らずに済む。かもしれない。 ■中学2年生レベル ◆連立方程式 ◇問題 x + y = 3 x + 3y = 13 のとき、xとyを求めよ。 Numpyを使って、連立方程式を行列計算で解いてみました。 ■中学3年生レベル ◆2次方程式 ◇問題 x^2 - 10x + 24 = 0 のとき、xを求めよ。 昔の授業では (x - 4)(x - 6) = 0 x = 4 , 6 このような解法を習ったと思います。 この問題は、NumpyのPolynomialを使って式を作り

    超簡単!Pythonを使って中学・高校レベルの数学問題を解いてみた - paiza times
    naga_sawa
    naga_sawa 2017/04/26
    Pythonで数学処理/へー、python ってこんなこともできるんだー/という意図でブクマするpython未習者
  • Web開発でもアプリ開発でも使える状態遷移図を自動生成するツールを作りました - Qiita

    概要 先日こちらの記事でgraphvizを使って状態遷移図を作成する方法をご紹介したのですが、これでもまだ複雑で記述量も多いのでとっつきづらいと思い、このgraphvizのソースコードを自動生成して画像を出力するコマンドラインアプリケーションを作成しました。 このアプリケーションはPyagram(ぱいあぐらむ)といい、その名前から察しがつくかと思いますがPythonを使用して開発されました。開発期間は1日でした。 このPyagramを使うことで複雑な状態遷移図を比較的簡単に作成することができるようになりますので、以下でご紹介したいと思います。 状態遷移図の描き方についてはこちらの記事を参考にしています。 出来上がりの図は以下のような感じになります。 図には幾つかのオブジェクトがあります。 図のタイトル(最上段) ビュー(二重丸) サーバサイドの処理(灰色の背景の一重丸) 画面遷移(破線の矢

    Web開発でもアプリ開発でも使える状態遷移図を自動生成するツールを作りました - Qiita
    naga_sawa
    naga_sawa 2016/08/07
    http://qiita.com/hideshi/items/2b671033766b9602c38d とセットで/Mac用/Web のテキストボックスに流し込んだらpngでダウンロードできるとかそんなサービスになればなぁ
  • MessagePack RPCクライアントの振る舞い及びエラー処理

    msgpackrpc.md MessagePack RPCクライアントの振る舞い及びエラー処理 概要 MessagePack-RPCのクライアントのエラー処理を正しく、またその後に何をすべきか(可能か)まとめる。 「このエラー起きたとき、どう処理すべきか?」ということを説明する。 説明しないこと:RPCサーバの作り方、各言語のライブラリのプロトコル実装やエラー定義の差。 結論 エラー内容を正確に取得したければC++クライアントを使う Ruby, Python, Javaの実装では、1度RPCに成功した後、同じオブジェクトで次にRPCを実行して発生したトランスポート層のエラーは必ずtimeout errorとなってしまう(トランスポート層で何が起こったのか、接続し直したのか、何が原因となっているのか例外からは判別できない) 回避策として、RPCを呼び終わったらセッションを閉じて、再度接続し直

    MessagePack RPCクライアントの振る舞い及びエラー処理
    naga_sawa
    naga_sawa 2016/08/01
    各MessagePack RPCでのクライアントの挙動
  • 【Python】いつまでprintデバッグで消耗してるの? - らっちゃいブログ

    Python を初めて間もない頃、自分も print デバッグしてました。効率の悪さを認識しつつも、IDEを導入してデバッグする方法を調べてセッティングして、という手順が面倒でずっと放置してました。 // 普段は vim で開発してます そうこうしてたら print デバッグではどうにもならないバグにぶち当たり、仕方なくデバッグポイントを置く方法を調べたわけです。するとどうでしょう。 ソースコード中に以下の一文を入れるだけではないですか。 import pdb; pdb.set_trace() たったこれだけで、上の一文を挿入した行で処理が停止し、コンソール上でステップ実行が出来るようになります。最高かよ。 個人的にですが、デバッガー起動中によく使うコマンドとしては以下です。 コマンド 説明 s(tep) ステップイン n(ext) ステップオーバー r(eturn) ステップアウト l(

    【Python】いつまでprintデバッグで消耗してるの? - らっちゃいブログ
  • 1