タグ

Pythonに関するbabydaemonsのブックマーク (97)

  • 【保存版】 2 万文字で語る Python の with 文で始めるリソース管理 ── C++/Go/TypeScript の技法を横断

    記事では、Python の with 文を起点に、多言語の with に相当する概念を横断的に比較し、 リソース管理という "地味だけど重要" なテーマ を一気に理解できるように整理しました。 「〇〇をしたら必ず △△ する」 をコードで保証する ── リソース管理とは? A. 「そのタスク終わったら Slack で私に連絡してくださいね!」 B. 「はい、わかりました!」 (数日後...) A. 「あれ、Slack で連絡来てないな。」 B. 「違う仕事していたら、Slack で連絡するの忘れてました!」 そんな経験、ありませんか? 「〇〇をしたら絶対にこれをやる」ということを強制する。 それを実現するのが、Python の with 文です。 〇〇をしたら絶対にこれをやるというのは、 例えばファイルを open したら必ず close をするなどのリソースに対して行うことは特に多く、

    【保存版】 2 万文字で語る Python の with 文で始めるリソース管理 ── C++/Go/TypeScript の技法を横断
  • こいつは本物だ!o3-mini あまりに凄いので緊急ハッカソン開催決定!|shi3z

    ついに予告通りo3-miniが公開された。 何より特筆すべきはそのコーディング能力の高さ。 ちょっと触っただけでも、マインクラフトクローンを爆速で書いてくれたり、3Dのマリオっぽいゲームを自動生成したり、僕が長年頭を悩ませていてついに作れなかった四次元球のポリゴン表現や四次元フラクタルのリアルタイム描画など、サンプルコードが存在すらしていないような難問を次々と解決してしまう。もう面倒だから結果だけ見てくれ マイクラもどき ちゃんとブロックを追加したりできる3Dマリオっぽいゲーム。ちゃんとジャンプして床を渡ることができる。ステージは自動生成四次元球体の三次元断面のポリゴン表現 オレには一生書けないと思っていたその驚異的な性能については、もう動画で解説したので無料部分だけでも見てくれい それで、この凄すぎるo3-miniを使いこなすのに人間一人の力では無理があることを悟ったので、明日の午後から

    こいつは本物だ!o3-mini あまりに凄いので緊急ハッカソン開催決定!|shi3z
  • 【いま話題】MCPサーバーを10分で構築してみた

    こんにちは。 今話題のMCPサーバーを構築してみようと思い、備忘録としてこの記事にログを残していこうと思います。 MCPのイントロダクション 上記の絵がMCPの役割を簡潔に表してくれていると思います。各サービスとの連携時にMCPがハブになってくれるようです。 (エンジニアバブルの終焉は近いですね。) MCPサーバーの構築 サンプルにはPythonとNodeJSがありましたが、普段TypeScriptをよく触るので、勉強がてらにPythonで構築してみます。 環境 Python 3.10 or higher installed. You must use the Python MCP SDK 1.2.0 or higher. uvのインストール そもそもuvとは? Rust製のpythonのパッケージ管理ツールのようです。 詳しくはこちらを参照してみてください。わかりやすく解説してくださって

    【いま話題】MCPサーバーを10分で構築してみた
  • wikipedia dump から固有表現抽出(NER)のためのデータセットを作るメモ

    背景 LLM 向け日語データセット(コーパス)構築している... 扱うのは TB 単位の日語... jagger-python https://zenn.dev/syoyo/articles/9ac920632ba5c9 jdepp-python https://zenn.dev/syoyo/articles/d642867aae9aee で高速な形態素解析と係り受け解析はできた! 次, 照応解析, 共参照解析(coref)したいがそのまえに固有表現抽出(ner)が必要っぽい. Wikipediaを用いた日語の固有表現抽出データセット があるが, 件数が少なそ? あと人力アノテーションつらいぽよ... 全部自動でやりたいぽよ... wikipedia dump から抽出します! 方針 wikipedia の title を固有表現, category のメタ情報をベースに分類を決めま

    wikipedia dump から固有表現抽出(NER)のためのデータセットを作るメモ
  • Pythonが遅い理由とその対策 - Qiita

    はじめに Pythonは柔軟性が高く、初心者にも適したプログラミング言語ですが、その一方で速度面では他の言語に劣るとされています。記事では、先月ピッツバーグで開催されたPyCon US 2024で紹介されたPythonの高速化技術について詳しく解説します。 Pythonの速度問題 「Pythonはランタイムにコストを払う」という古い格言が示す通り、Pythonは解釈型言語であり、実行時に多くの処理を行うため速度が遅くなることがあります。Pythonはソースコードを効率的なバイトコードに変換し、それを直接実行することで動作します。このプロセスには多くの間接処理が含まれ、単純な命令でさえも多数のCPU指示に分解されます。例えば、二つの数値を足すだけでも500以上の命令が実行されることがあります。 高速化のためのコンパイル技術 Cythonによる最適化 PyCon 2024でのSaksham

    Pythonが遅い理由とその対策 - Qiita
  • Pythonの爆速化! ピュアPythonに組み込まれている機能でコードの最適化を実現するには

    Pythonの爆速化を可能にするにはどうすればいいのか。ツールやライブラリに頼る前に、まずはピュアPythonに組み込まれている機能を使い、コードの最適化を図るべきです。なぜなら、処理速度の課題を解決できる可能性が高いからです。今回はPythonのパフォーマンスを劇的に向上させるためのテクニックを解説した『爆速Python』(翔泳社)から、Pythonの組み込み機能のパフォーマンスを引き出す方法を紹介します。 記事は『爆速Python』の「Chapter 2 組み込み機能のパフォーマンスを最大限に引き出す」から一部を抜粋したものです。掲載にあたって編集しています。 ※書はTiago Rodrigues Antãoによる『Fast Python: High performance techniques for large datasets』(Manning Publications)の邦

    Pythonの爆速化! ピュアPythonに組み込まれている機能でコードの最適化を実現するには
  • NuitkaでPythonプログラムを配布してみよう

    こんにちは。Technicalスペシャリストの黒住です。 最近、Pythonの人気がさらに加速していますね。特に、AI開発やデータ分析においてはPythonの利用頻度が非常に高くなっています。 しかし、「Pythonプログラムを配布する」部分では問題が多いのではないでしょうか。そこで、今回は「Pythonプログラムをexe形式で配布する方法」についてご紹介します。 Pythonでexeファイルを作成する方法 C#やC/C++などのプログラミング言語では、実行可能なexe形式のプログラムファイルを作成できますが、Pythonにはexeファイルを作成する機能はありません。 そこで、Pythonのコードを実行可能な状態で配布したい場合は、他のツールを使用してexeファイルを作成する必要があります。exe化のツールはいくつか存在しますが、有名なものは以下の通りです。 PyInstaller Py2

    NuitkaでPythonプログラムを配布してみよう
  • pyproject.toml入門 〜 Cython を添えて 〜

    Python格的に使ってみようと思い立った初心者が、最初のプロジェクト構成でつまずいた記録です。最近ナウいといわれているpyproject.tomlを使ってみます。 プロジェクト概要 C++のコードとそれをサポートするためのPythonのコードを書くプロジェクトです。C++のコードはCythonでラップしてPythonから呼び出すことにします。 C++のコードはCMakeでビルドして、Pythonの環境はvenvで構築します。 参考サイト: 最終的なフォルダ構成 最初に全体像として今回実験した結果から、次のようなフォルダ構成でいこうと思っています。 📂proj-root/ ├── 📄README.md # プロジェクト全体の説明 ├── 📄LICENSE.txt # プロジェクトのライセンス ├── 📄CMakeLists.txt # 全体のビルド設定 ├── 📄.clang

    pyproject.toml入門 〜 Cython を添えて 〜
  • 【個人開発】爆速な賃貸検索サービスをさらに高速化した【Rust】 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 個人で運営している賃貸物件の検索サービス Comfy のバックエンドを Rust でリプレースしました。この記事では、そのリプレースの背景と詳細をご紹介します。 まずは結果から 技術構成: Rust + Cloud Run1 へ移行 (Python + GCE2 から) 性能向上: 約 1.5 倍 開発期間: 1 ヶ月間 コード行数: 約 40 % インフラ費用: かなり減少 (多分3) 短い期間・少ないコードでかなり高速化できちゃった上に、開発体験もとてもよい Rust当に素晴らしいです…!! サービス概要 Comfy は 日

    【個人開発】爆速な賃貸検索サービスをさらに高速化した【Rust】 - Qiita
  • Pythonで中~大規模開発をする際のススメ5選 - Qiita

    はじめに Pythonはその構文の簡単さやスクリプト言語特有の実行のしやすさから人気を博している言語だ。 私は最近この「Python」を使って業務改善をする仕事をしているのだが、改善の規模や複雑度がそれなりに大きいプロジェクトに出会い、従来のように適当にPythonを打って使っていたところ非常に辛い思いをすることになり、中~大規模開発向けの方法を模索する事になった。 そこで、模索した結果辿り着いた、Pythonにおける中~大規模開発を行う際の、個人的なおススメ方法を共有していきたいと思う。 1.Pythonを静的型付けで開発する 数十行程度のスクリプトを作る時ならともかく、実際の業務に使うようなスクリプトを書いたり、ましてやアプリ開発までしようとすると、どうしても動的型付けのデメリットであるバグの多さ/発見しづらさが目立ってしまう。そこでまずJavaScriptにおけるTypeScript

    Pythonで中~大規模開発をする際のススメ5選 - Qiita
  • Python3ではじめるシステムトレード: PCA - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ギルバート・ストラング先生の「線形代数入門」の第6版(英語版)が2023年1月に発売されました。総ページ数は440ページで、前の5版の574ページよりもかなり少なくなりました。ちなみに4版の英語版は585ページです。私が持っている5版はカラーで文字も大きく、一方、6版は白黒で文字も小さくなっています。私は5版の特異値分解と主成分分析のところが気に入っていましたが、残念ながら、6版では内容がかなり変更され、主要な部分はコンパクトで分かりやすく、またある部分は詳細に改善されましたが、例題の部分は多くが削除されています。そこで、私は5版の7.

    Python3ではじめるシステムトレード: PCA - Qiita
  • PythonとSeleniumをheadlessで動かしても速くならない理由

    seleniumをheadlessモードで動かすと速くなると言われていますが、実際に測定したことがなかったので測定してみました。 結果は、ヘッドレスモードで速くなるものの、現実的なWEBスクレイピングの運用では、ヘッドレスモードの恩恵を受け取れません。サーバや通信経路等による速度への影響が大きいためです。 seleniumをheadlessモードで、速度測定した方法 WEBサイトをget()してから完了するまでの時間を測定しました。 計測対象としたサイトは、以下のものです。 ローカルサーバある、外部にアクセスをしないhtml ローカルサーバにコピーした、コーポレートサイト(WordPress) インターネット上のサイト3つ これらのサイトをヘッドレスモードでないのとヘッドレスモードで、測定しています。 Pythonの速度を測定したソースコード 全ての測定したソースを書くと長くなるので、実践

    PythonとSeleniumをheadlessで動かしても速くならない理由
  • SeleniumからHeadless Chromeを使ってみた - Qiita

    2018年5月6日: Headless ChromeがStableになった後の現状に合わせた新しい記事を書きました。こちらもご参照ください。 先日PhantomJSのVitalyさんがメンテナーを引退するという話が話題になっていました。ヘッドレスなブラウザーを気軽に使う手段としてPhantomJSにはお世話になりました。今後はHeadless Chromeを使って欲しいとのことなので、試してみました。 Node.jsを使うサンプルは多く見つかりますが、諸事情でPythonを使いたかったので、ここではSelenium経由でHeadless Chromeを使います。 Headless Chromeとは Google Chrome 59から使えるようになる予定の、画面を表示せずに動作するモードです。自動テストやWebスクレイピングなどに役立ちます。 2017年4月28日現在、Mac版とLinux

    SeleniumからHeadless Chromeを使ってみた - Qiita
  • PythonのコードをEXE化するには?PyInstallerやその他ツールの特徴や使い方

    PythonのコードをEXE化するPythonは、初心者でも簡単に習得できるプログラミング言語の1つです。インタープリター型であるPythonスクリプトのコード開発には、数多くの公開ライブラリが活用できます。 Pythonでは開発したスクリプトコードを配布して利用できますが、ターゲット環境にもPythonが必要であり多少の準備が必要です。コンパイラ言語のようにEXEファイルを配布したい場合もあるでしょう。 そこで、ここではPythonのコードをEXE化して利用する方法を解説します。 PythonのコードをEXE化するメリットですが、次の3点を紹介します。 1つ目は、ターゲットとなる実行環境にPythonが不要である点が挙げられます。ソフトウェア開発者はPythonの開発環境を用意している場合が多いですが、ユーザ環境やオペレータ向けの環境では開発環境を導入することができません。 この場合でも

    PythonのコードをEXE化するには?PyInstallerやその他ツールの特徴や使い方
  • ゼロから機械学習エンジニアになった方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 未経験から機械学習エンジニアになって2年が経った節目にここに至るまでの経緯を紹介します。 初期スペック 30代 高専卒 工場勤務 数学は学生時代は並みの上くらいだったがほとんど忘れてる プログラミングスキルゼロ パソコンスキルはオフィスソフトが事務作業レベルで使える程度 タイピングできる 初期のモチベーション 今の仕事は今の会社じゃないと役に立たないスキルしか身につかないと感じ、何か自力で稼げるスキルを身に着けたい。 人生の大半の時間を費やす仕事を苦痛で終わらせたくない。楽しい仕事がしたい。 パソコン触るの好きだし、プログラミ

    ゼロから機械学習エンジニアになった方法 - Qiita
  • PythonでC/C++に匹敵する実行速度を実現 米MITなどコンパイラ「Codon」開発(ITmedia NEWS) - Yahoo!ニュース

  • python的な書き方を学ぶと良い話 - Qiita

    はじめに Pythonは可読性が高く、ライブラリが豊富というメリットがあります。一方で、遅いから使いたくないと言われることもあります。たしかにコンパイル方式の言語に比べれば遅い部類ではあります。しかし、実際のところではpython的な書き方を分からず、他の言語の流儀でコーディングをしたことに起因して処理時間がかかっているケースも見受けられます。 例えば総当り計算や画像処理に多重ループを使う、といったものです。記事では多重ループを例にして、python的な書き方に書き換えることで、どのような変化があるか紹介します。それを通してpython的な書き方を学ぶ意義について説明したいと思います。 対象の読者 他の言語からpythonに入った方(組み込みC言語からpythonに入った過去の私) 例: 総当りの計算をする 数列に対して、それぞれの要素同士に対して総当りで何らかの計算をするコードについて

    python的な書き方を学ぶと良い話 - Qiita
  • DTW(Dynamic Time Warping)/動的時間伸縮法について話す - Qiita

    最近時系列分析を勉強していて、時系列同士の類似度を測る際にDTWという手法を学んだのでゆるくまとめてみようと思います。今回は説明編、次回を実践編としたいです。 DTW(Dynamic Time Warping)/動的時間伸縮法とは DTWとは時系列データ同士の類似度を測る際に用いる手法です。波形の類似度を求める手法としてはユークリッド距離やコサイン距離等があるかと思います。 DTWは2つの時系列の各点の距離(誤差の絶対値)を総当たりで求め、全て求めた上で2つの時系列が最短となるパスを見つけます。 対応する点を選ぶ際に重複を許す(その時点までに選択済みの点も選択できる)ため、時系列同士の長さや周期が違っても類似度を求めることができます。 なので、DTWは「周期はずれているが、形は似ている」という場合や、系列同士の長さが異なるデータの類似度を測りたいときに他の手法よりも便利な手法だと言えます。

    DTW(Dynamic Time Warping)/動的時間伸縮法について話す - Qiita
  • Pythonの機械学習ライブラリtslearnを使った時系列データのクラスタリング

    tslearnとは 時系列分析のための機械学習ツールを提供するPythonパッケージで、scikit-learnをベースとして作られているみたいです。 主な機能として、クラスタリング、教師ありの分類、複数の時系列を重ねた際の重心の計算ができたりします。 今回使用するに至った一番のモチベーションは、波形や振動などの時系列データに対してクラスタリングできるというところです。 tslearnインストール pipコマンドでインストールできます。 Kshapeというクラスタリング手法 今回tslearnで使用するモジュールとして、Kshapeというクラスタリング手法を時系列データに適用していきたいと思います。 Kshapeは2015年に下記の論文で提唱された方法で、以下の流れで実行されるアルゴリズムになります。 相互相関測定に基づいた距離尺度を使う(Shape-based distance: SBD

    Pythonの機械学習ライブラリtslearnを使った時系列データのクラスタリング
  • NumPy配列ndarrayのスライスによる部分配列の選択と代入 | note.nkmk.me

    Pythonではコロンを使って表すスライス[start:stop:step]によって、リストや文字列、タプルなどのシーケンスオブジェクトの一部分を選択して取得したり別の値を代入したりできる。 NumPy配列ndarrayに対してもスライスで部分配列を選択して抽出したり別の値を代入したりすることが可能。 以下の内容について説明する。 スライスの基 一次元のNumPy配列ndarrayにおけるスライス 多次元のNumPy配列ndarrayにおけるスライス ビュー(参照)とコピー ファンシーインデックス(リストによる選択)との組み合わせ NumPy配列ndarrayの要素や部分配列を選択する方法についてのまとめは以下の記事を参照。 関連記事: NumPy配列ndarrayの要素・行・列を取得(抽出)、代入 また、条件を満たす行・列を抽出したい場合は以下の記事を参照。 関連記事: NumPy配列

    NumPy配列ndarrayのスライスによる部分配列の選択と代入 | note.nkmk.me