タグ

Pythonに関するitottoのブックマーク (8)

  • Pythonの非同期処理の基礎とOpenAI APIへ並列リクエストする実践例

    こんにちは、commmuneでデータサイエンティストをしているひぐです。 人間が苦手なマルチタスクをLLMに任せたら、効果的に処理してくれるのではないか?というモチベーションのもと、Pythonの非同期処理を使って並列かつストリーミングでChatGPTの回答を出力するアプリを作りました🤖 例えば下記は、ある課題を入力すると、深さ・広さ・構造・時間軸という異なる観点で解像度を上げてくれるアプリケーションです。 アプリに関する登壇資料↓ このアプリ作成にあたってPythonの非同期処理を勉強したところ、最初は多くの専門用語(コルーチン、イベントループ...)や独自の記法により、全体像をつかむのに苦戦しました。一方で、学んでみると予想以上にシンプルな記法で実装できること、そして応用範囲が広くて便利だと理解しました。 この記事では、そんな少し取っつきにくけど便利なPythonの非同期処理にフォー

    Pythonの非同期処理の基礎とOpenAI APIへ並列リクエストする実践例
  • Python普及しろ協会に入会したい

    この記事はタナイ氏によるPython滅ぼす協会に入会したいを読んでから執筆したものです。 この記事の趣旨はPython滅ぼす協会に入会したいに対する反論という形をとりながら、タナイ氏により「バカの言語」と揶揄され、「使ってエンジニアを名乗るというのは」「滑稽」とまで言われたPythonの立場を再考することです。 追記 記事は「Pythonはこれだけ優れた言語だからみんな使おう!」というものではなく「言うほど酷くないと思うよ」程度のものです。 型アノテーションがあるからと言って静的型付けを軽視しているわけでもなければ、map関数をもってmapメソッドを不要だと言っているわけでもありません。 この記法は嫌い〜この記法が好き〜と表明することは個人の自由ですが、同様に「この記法は実はこういう意味があって〜」という意見があればそれを聞いた上で、物事を判断して欲しいです。もちろん、聞いても意見が変わ

    Python普及しろ協会に入会したい
  • Numpyが18年ぶりのメジャーアップデート! 改善点、変更点まとめ - Qiita

    NumPy 2.0.0の主要な変更点 皆さんもお世話になっているであろう科学計算ライブラリNumPyが、2006年以降初めてのメジャーアップデートを発表しました。そこで、変更点をざっくりとまとめてみました。以下は変更点の一部であり、それ以外については実際のドキュメントを参照してください。 免責事項:この記事は、NumPy 2.0.0の変更点について個人的な見解を述べたものであり、NumPyの開発チームや関係者の公式な見解を代表するものではありません。変更点の影響や対応方法については、必ず公式のリリースノートと移行ガイドを参照してください。また、この記事には不正確な情報が含まれている可能性があります。記事の内容を実際のプロジェクトに適用する前に、必ず公式ドキュメントで情報を確認してください。 概要 2006年以来の最初のメジャーリリース 破壊的な変更あり 多くの新機能とPython/C AP

    Numpyが18年ぶりのメジャーアップデート! 改善点、変更点まとめ - Qiita
  • Bluetoothで家の中の携帯を見つけてみた - Qiita

    はじめに 皆さんにこんな経験はありませんか?? 家の中なのに携帯がない!! 自分はよく家の中で携帯を無くします。大抵30秒くらい探せば見つかるのですが、特には全く見つからない時もあり、切羽詰まっている時だと心の具合が悪いです。 部屋を整理整頓する!置き場所を決める!という古典的かつ最も有効な手法は一旦無視して、携帯を無くした時用の携帯捜索システムを作ってみました。 携帯捜索システムについて 今回は携帯のBluetoothの信号強度から位置(距離)を推定、携帯を探してみます。 イメージ図にすると以下です。 次に上記を達成するための具体的なステップは以下です。 1.携帯の識別(Bluetoothアドレスの取得) 2.携帯のBluetoothの信号強度取得 3.信号強度から携帯の位置の予測 4.実用化 順々に解説していきます。 1.携帯の識別(Bluetoothアドレスの取得) まずは自身の携帯

    Bluetoothで家の中の携帯を見つけてみた - Qiita
  • async/await 比較(C#, JavaScript, Python) - Qiita

    using System.Windows.Threading; Dispatcher.CurrentDispatcher.InvokeAsync(async () => { // いろいろな処理... // メッセージループを終了させる Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Normal); }); Dispatcher.Run(); WPF とか WinForms とかでは、フレームワークがすでにメッセージループを回しているので、自分で Dispatcher.Run() する必要はない。 JavaScript 自分で書く必要なし。 Python asyncio.run(最初に実行するasync関数)

    async/await 比較(C#, JavaScript, Python) - Qiita
  • メモリプロファイラ「Memray」の解説 | gihyo.jp

    Memray公式サイトのキャプチャ インストール方法は以下のとおりです。 $ pip install memray Memrayの基的な使い方 Memrayがインストールされていると、memrayコマンドが使えるようになります。 プロファイリング対象のスクリプトをmemrayから実行すると、スクリプトを実行した同じフォルダに実行時のプロファイリング結果がバイナリ形式でファイルに保存されます。 プロファイルの実行 サンプルのPythonスクリプトとしてsample.pyを準備します。以下のコードでは、状態表示をわかりやすくするために1秒間の待ちを入れています。実行内容は、リスト内包表記で要素数が約1億個のリストを生成しています。 sample.py - リスト内包表記でリストを作る import time time.sleep(1) # 状態表示をわかりやすくするために1秒待つ resul

    メモリプロファイラ「Memray」の解説 | gihyo.jp
  • Pythonスクリプトのパフォーマンス計測ガイド | Yakst

    Pythonスクリプトの速度を計測し、そのボトルネックを探る。さらに、メモリ使用量、メモリリークの原因特定までの調査方法を解説する。 あなたが書いたすべてのPythonプログラムで厳密なパフォーマンス計測が必要になるというわけではないにせよ、その時が来たら、役に立ってくれる様々な種類のツールがPythonのエコシステムにはあるのだということを知っておけば安心できるだろう。 プログラムのパフォーマンスを計測することは、すなわち以下の4つの基的な質問に答えることだと要約できる。 どのくらい高速に実行できるか? スピードのボトルネックはどこか? どのくらいのメモリを使うか? メモリリークしているのはどこか? これから、いくつかの素晴らしいツールを使ってこれらの質問に答えていくための詳細を見ていこう。 大ざっぱな実行時間 素早くざっくりとコードの実行時間を計るのに、古き良きUNIXのユーティリテ

    Pythonスクリプトのパフォーマンス計測ガイド | Yakst
  • Pythonはどうやってlen関数で長さを手にいれているの?

    Pythonには文字列やリストなど、長さをもつオブジェクトがあります。長さを手に入れるには、文字列なら、name.length ではなく len(name) のようにlen関数を使います。len関数はどうやってnameに入っているオブジェクトの長さを手に入れているのでしょうか。if文にはTrue/Falseとなる条件式を指定しますが、それだけでなく文字や数字、自分で作ったデータ型も渡せます。if文はどうやって与えられたオブジェクトがTrueなのかFalseなのかを手に入れているのでしょうか。 この発表では、Pythonのプログラムがどうやって必要な情報を手に入れているのか、また、自分で実装するときにどう実装すればlen()やif文やfor文に指定できるのかを説明します。 Read less

    Pythonはどうやってlen関数で長さを手にいれているの?
  • 1