タグ

Pythonに関するzak3のブックマーク (14)

  • そのPythonパッケージ管理、venv + pipでよくないですか? in 2023/1

    そのPythonパッケージ管理、venv + pipでよくないですか? in 2023/1 各所(主にPython界隈の外)で「Pythonパッケージ管理どうするのが正解なの?」とよく耳にするので2023年初頭時点での私の見解を書きます。 tl;dr 多くの場合のPythonパッケージ管理はvenv(virtualenv) + pipで済むのでは? 前提 タイトルにvenvとついていますが、以降venv(virtualenv)については言及しません。仮想環境内で作業している前提で話を進めます。 この記事では基的にsetup.py / setup.cfgではなくpyproject.tomlでのパッケージ定義方法を採用します。これはPEP 621がここ最近で採択・実装されたためです。 なお、想定しているPythonや各ツールのバージョンは以下の通りです。 Python >= 3.8 pip

    そのPythonパッケージ管理、venv + pipでよくないですか? in 2023/1
    zak3
    zak3 2023/05/17
  • [2023年最新版:rye対応]Python案件で汎用的に使えるモダンなプロジェクトテンプレート

    概要 チームでPythonを開発する場合に活用可能な、パッケージや構成などの開発テンプレートを紹介します。 パッケージ管理、lint, test, loggingなどの、汎用的にプロジェクトで活用可能な構成になっています。 このテンプレートを導入することで、パッケージ管理やLint等の非機能系タスクから解放され、機能開発系のタスクに集中できるようになります。 パッケージ管理ツールとして、最近リリースされて使用感が良いと話題のryeを採用したバージョンについても説明しています。 今回説明する内容のリポジトリは以下の通りです。 rye使用バージョン 新しいパッケージ管理ツールであるryeを使用したバージョンは以下の通りです。 Poetry使用バージョン(従来版) 想定読者 PythonやGitの基的な使い方を理解している方を想定しているため、基的な用語説明は省略しています。 環境 エンジニ

    [2023年最新版:rye対応]Python案件で汎用的に使えるモダンなプロジェクトテンプレート
    zak3
    zak3 2023/05/17
  • Pythonを高速化する「Codon」コンパイラを使ってみた | DevelopersIO

    データアナリティクス事業部のueharaです。 今回は、Pythonの実行がシングルスレッドで従来の10~100倍以上高速化すると言われている「Codon」というコンパイラを使ってみたいと思います。 Codonの概要 Pythonは世界的にも広く使われている言語であり、シンプルでわかりやすい文法や豊富なライブラリ、拡張性など、多くの利点があります。 しかし、その一方で、Pythonの実行速度に課題があるという指摘は皆さんも一度は耳にしたことがあるかと思います。 この課題を解決すべく、MITの研究者らが開発した「Codon」について紹介したいと思います。 Codonは、ランタイムのオーバーヘッドなしで Pythonのコードをネイティブなマシン語にコンパイルする高性能なPythonコンパイラです。 Codonを使うとシングルスレッドでも十分な高速化を行うことができますが、マルチスレッドもサポ

    Pythonを高速化する「Codon」コンパイラを使ってみた | DevelopersIO
  • https://74th.tech/events/techbookfest5/fabric.freepaper.pdf

    zak3
    zak3 2023/02/13
    Task runner, invoke
  • 2022年度版Python環境構築徹底解説 - Qiita

    各機能とツールについて、説明していきます。 エディタ Visual Studio Code エディタやIDE(統合開発環境)は好きに選んでいただければ良いとは思いますが、特に希望がないならば、Visual Studio Codeを選んでおけば間違いないでしょう。 Pythonを含む幅広い言語に対応し、豊富な拡張機能を備えている非常にリッチなエディタです。とりわけPythonプロジェクトについては、これさえ有れば、特にIDEなどは必要ないと思います。 インストールは↓から。 バージョン管理ソフト Python3系は日夜アップデートされていて、2022年12月現在の最新verは、3.11.1が提供されています。 とはいえ、プロジェクトによっては、3.7.1までしか動作が担保されていないもの、3.9.0で現在開発中のもの...などがあります。最新のPythonが常に必要、というわけでは決してなく

    2022年度版Python環境構築徹底解説 - Qiita
    zak3
    zak3 2022/12/26
  • [Python] with構文で使用できるクラスを実装する - Qiita

    with構文とは with構文とは後処理が必要な機能を使う際に、使用者がその機能を安全に、そして簡単に使用できるための構文になります。 with構文を使わない場合 with構文を使わないの例をみてみましょう。下のコードになります。 from stove import Stove stove = Stove() stuff = 'うどん' print('%sを作ります。' % stuff) try: stove.switch_on() stove.boil(stuff) except: raise finally: stove.switch_off() print('%sができました。' % stuff) Stoveクラスを使ってうどん茹でています。最初にswitch_onメソッドでコンロに火を点けて、そのあとboilメソッドでうどんを茹でています。そしてfinally句でswitch_of

    [Python] with構文で使用できるクラスを実装する - Qiita
    zak3
    zak3 2022/10/25
    with syntax
  • Python 3.11の新機能(その3)関数呼び出しのインライン化 - python.jp

    Python 3.11では、パフォーマンスチューニングの一環として、Python関数呼び出しのインライン化 が行われました。既存のPythonインタープリタのしくみを大きく変更する変更ですので、簡単に解説しておきます。 先に書いておきますが、今回行われた「関数呼び出しのインライン化」は、C/C++などの inline のように、ユーザ定義関数を呼び出し元で展開してオーバヘッドを削減するものではありません。また、Schemeなどにある末尾再帰の最適化でもありません。 cevalループ¶Pythonインタープリタは、Python 3.11の新機能(その2) 特殊化適応的インタープリタ で解説したように、Pythonのソースコードをバイトコードへ変換し、順次実行します。このバイトコードを実行する関数はPythonインタープリタの心臓部であり、CPythonソースツリーのファイル Python/c

    zak3
    zak3 2022/09/06
  • Python言語による実務で使える100+の最適化問題 | opt100

    はじめに 書は,筆者が長年書き溜めた様々な実務的な最適化問題についてまとめたものである. 書は,Jupyter Laboで記述されたものを自動的に変換したものであり,以下のサポートページで公開している. コードも一部公開しているが,ソースコードを保管した Github 自体はプライベートである. を購入した人は,サポートページで公開していないプログラムを 圧縮ファイル でダウンロードすることができる. ダウンロードしたファイルの解凍パスワードは<に記述>である. 作者のページ My HP 書のサポートページ Support Page 出版社のページ Pythonによる実務で役立つ最適化問題100+ (1) ―グラフ理論と組合せ最適化への招待― Pythonによる実務で役立つ最適化問題100+ (2) ―割当・施設配置・在庫最適化・巡回セールスマン― Pythonによる実務で役立つ

  • tqdm/tqdm: A fast, extensible progress bar for Python and CLI

    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. Dismiss alert

    tqdm/tqdm: A fast, extensible progress bar for Python and CLI
    zak3
    zak3 2022/03/30
    tqdm jupyter integration
  • シグモイド関数 — 機械学習の Python との出会い

    なお, @staticmethod のデコレータを用いて,静的メソッドとして定義してあります. sigmoid() は数学関数であり,値はその引数だけに依存し,オブジェクトやクラスの内容や状態には依存しないので,このように静的メソッドとして定義しました. それでは,実行してみましょう. sigmoid() は静的メソッドなので,オブジェクトを生成しなくても実行できます. In [10]: from lr1 import LogisticRegression In [11]: LogisticRegression.sigmoid(0.0) Out[11]: 0.5 In [12]: LogisticRegression.sigmoid(1.0) Out[12]: 0.7310585786300049 In [13]: 1.0 / (1.0 + 1.0 / np.e) Out[13]: 0.7

  • python で sigmoid を算出する時は定義域に注意 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    python で sigmoid を算出する時は定義域に注意 - Qiita
  • 忙しい研究者のためのテストコードとドキュメントの書き方 - Qiita

    はじめに 「研究用のプログラムにもテストコードやドキュメント書いたほうがいいよね。」 「分かっちゃいるけど、そんな面倒なことやってられないよ。」 という研究者あるあるを解決すべく、僕が普段実践している開発スタイルを紹介します。 この開発スタイルのすごいところは: テストやドキュメントを一切書かない場合と比べて 追加の工数がほぼゼロ。 普通にコーディングしているだけで、いつのまにかテストコードとドキュメントまでできあがっている。 実装、コメント、テスト、ドキュメントが自然に同期するので、保守しやすい。 Pythonを例に紹介しますが、コメント内にテストを書けるツールと、コメントからドキュメントを生成できるツールをもつ言語ならばどれにでも応用できるはずです。 この開発スタイルに至った背景 ソフトウェア開発において、テストコードやドキュメントを整備することでプログラムの品質が向上することは広く知

    忙しい研究者のためのテストコードとドキュメントの書き方 - Qiita
    zak3
    zak3 2021/01/09
  • Kaggleで戦いたい人のためのpandas実戦入門 - ML_BearのKaggleな日常

    はじめに 自分は元々pandasが苦手でKaggleコンペ参加時は基的にBigQuery上のSQLで特徴量を作り、最低限のpandas操作でデータ処理をしていました。 しかし、あるコードコンペティションに参加することになり、pythonで軽快にデータ処理をこなす必要が出てきたので勉強しました。 そこで、当時の勉強メモをもとに「これだけ知っていればKaggleでそこそこ戦えるかな」と思っているpandasの主要機能をまとめました。 注記 実戦入門 のつもりが ほぼ辞書 になってしまいました orz pandasとはなんぞや的な内容は書いていません (import pandasやDataFrameとは何かなど) pandas1.0系でも動くように書いたつもりですが間違ってたらすみません 目次 はじめに 注記 目次 Options DaraFrame 読み書き CSVファイル 読み込み 書き出

    Kaggleで戦いたい人のためのpandas実戦入門 - ML_BearのKaggleな日常
    zak3
    zak3 2020/04/01
    Pandas practical manual
  • Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ

    砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通なんですよね?」 「pipenv があれば venv はオワコンなんですね?」 「pyenvは要らないんですよね!?」 「Python歴史が古い分、Rubyなどに比べてカオス」 みたいな混乱をよく目にします。 実際、複数のツールがあって(一見)複雑です。また「なぜこうした状況にあるのか」がドキュメント化されているわけでもありません。 なので、私なりに整理してみることにしました。 ※「追伸」を追加しました。この記事では汎用プログラミング言語としてPythonを使うケース(Webアプリとか、CLIツールとか、ライブ

    Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ
    zak3
    zak3 2019/10/28
  • 1