Python関連のことを調べてみた

Python関連のことを調べてみた

コピペで始める ComfyUI 導入

# はじめに

当方、長らく Stable Diffusion Web UI のお世話になっていたのですが、 ComfyUI のビジュアルがイケ過ぎているので、唐突に乗り換えてみたい気持ちに駆られた昨今。
乗り換えに際して、環境構築した時の手順を此処に残しておきます。
これから導入しようとしている各位の参考になれば幸いです。

# 想定読者

* ComfyUI を Linux に導入したい人
* 未来の自分

# 環境変数とか

この後のコピペコードで参照するので、環境変数に便利な変数入れておく。
ComfyUI を導入したい作業ディレクトリに移動して、以下のコマンドを実行。

“`bash
export WORK_ROOT=${PWD}
“`

# ComfyUI の導入

まずは本体を導入

“`bash
cd ${WORK_ROOT}
git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
pip install xformers!=0.0.18 -r requirements.txt –extra-

元記事を表示

imshow を同じ位置・サイズで復活させたいだけなのに

python の cv2.imshow で使ったウィンドウを閉じた後、同じ位置・サイズで復活させたいだけなのにできない。

調査を随時記録。

OS は Windows 11、 python は 3.10.12、opencv は 4.7.0。

# 現在の描画領域サイズの取得

そもそも、 cv2.resizeWindow で指定したサイズを知るのが難しい。
ウィンドウ側でウィンドウサイズを変えられるので、ウィンドウを閉じるときには、描画領域サイズがいくつになったかを知りたい。
しかし、単に cv2.getWindowImageRect しても、それは分からない。それは cv2.getWindowImageRect で出てくる width, height の縦横比は、その時描画している画像の縦横比になっているから。ということで、次のような関数を作って調べる。(なお、コードの大部分は Claude3 Opus で生成)

“`

import cv2
import numpy as np

def get_imshow_window_size(window_name):
#

元記事を表示

【データ可視化/Streamlit】StreamlitアプリからファイルをアップロードしてSnowflakeのテーブルを自由に更新する方法

# 前置き
こんにちは。データエンジニアの山口歩夢です!

最近、Streamlitでデータ可視化アプリを作成しており、
Streamlitアプリに行数がやや大きいデータをコピペして、
SnowFlakeのテーブルを自由に更新したい!という状況がありました。

しかし、Streamlitに容量のやや大きいデータを貼り付けると、
ブラウザが重くなったり固まってしまうという問題点が発生してしまいました。

今回はその解決策を考えてみました!
# 結論
データをCSVファイルに貼り付けて、そのCSVファイルと同じ内容にSnowFlakeのテーブルを更新する方法がとても良かったです。

ブラウザが固まることもなくなり、アプリの動きが一気に早くなりました。

# 機能を実装する
早速機能を実装していきます!
## 前準備
まずはStreamlitから更新をするテーブルを用意しておきます。

今回は従業員マスターというテーブルを以下のクエリで作成して、
このテーブルの中にINSERT文などで、いくつか適当にデータを入れておきます。
“`sql
create or replace TABLE

元記事を表示

“$file”

“$content”

元記事を表示

Pythonで「パターンにマッチしたすべてのマッチオブジェクトを取得する(Pattern.finditer)」の動作を確認してみた

# 概要

Pythonで「パターンにマッチしたすべてのマッチオブジェクトを取得する(Pattern.finditer)」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/regex/index8.html

# 実装

以下のファイルを作成しました。
“`sample.py
import re

msg = ‘MA-52, JO-72, PP-45′
pattern = re.compile(r'[A-Z]{2}-[0-9]{2}’)

result = pattern.finditer(msg)

for m in result:
print(m.group())

import re

msg = ‘MA-52, JO-72, PP-45′
pattern = re.compile(r'([A-Z]{2})-([0-9]{2})’)

result = pattern.finditer(msg)

for m in result:
print(‘Match:’ + m.group(0))

元記事を表示

Claude3で表を含むPDFを解析する(非構造化doc、構造化doc、画像)

Claude3で画像が読めるようになったので、表形式を含むPDFをどのように読むのが良さそうか検証します。今回の検証には画像やグラフなどは含んでいません(画像の解析は画像で読むしか無いはず)。

– 非構造化doc … PDFからテキストのみを抽出して解析します。ドキュメント構造は失われています
– 構造化doc … PDFをHTMLに変換して解析します。ドキュメント構造は維持しています
– 画像 … PDFを画像に変換して解析します。ドキュメント構造は画像として読み取る事が出来るかどうか次第です

LLMの性能が高いとなんでも読めちゃいそうなので、性能が高くないHaikuを使って解析します。事前の予想としては、構造化≧画像>非構造化みたいな精度を予想しています。

ちなみにAnthropicのClaudeアプリは、非構造化docとして読んでいると思います。。多分。

# 事前準備

何でも良いのですが以下のPDFの1ページ目を使います。

https://corp.rakuten.co.jp/investors/assets/doc/documents/23Q4tanshin_J.p

元記事を表示

お手軽でカンタンなFaster-Whisper環境構築(3)

# はじめに

Faster-Whisperを使ってみたいけど、環境構築が面倒だなーと感じている私のような輩のために、比較的カンタンでクリーンな環境構築の方法を紹介します。
ここで”クリーンな環境”とは「OSのパッケージを汚さずに設定できてカンタンに元通り」という意味合いです。

この記事は、前回の記事の追加情報です。

https://qiita.com/hanaya/items/f6ae5253ac3c3e14ff3d

https://qiita.com/hanaya/items/3dd345a6b51a623986d6

# 結論
pipコマンドのパッケージだけで、お手軽にFaster-Whisperの実行環境が作れます。
nvidiaからdudaのパッケージをダウンロードシてインストールという超絶面倒な手順は不要です。

# 前回の記事からの続き
VoiceVoxのライブラリを間借りしたり、NVIDIAのパッケージからファイルを抽出したりして、Faster-Whisperを動かしてみましたが、やっぱりもっと簡単にできるのでは?

情報収集して試行錯誤した結果、本家Whispe

元記事を表示

ABC345回答メモ

# 0.はじめに
 最近調子を落としているので挽回したいところでしたが
結果はC問題で大ブレーキがかかり、まぁなんとかACできましたが
結果3問解けただけで、レートも-18の880となりました・・・。
入茶が見えてきてしまった・・・。

# 1.A – Leftrightarrow
 1問目からなかなか歯ごたえのある問題。
まぁ単純に実装しました。
【考え方】
 ・状態遷移を記録する変数chk(初期値0)を用意する。
・先頭から文字列を見ていき、文字が<かつ、chkが0の時chkを1にする  <かつ、chkが0以外の時chkを9にする ・文字が=かつ、chkが1か2の時chkを2にする  =かつ、chkが1と2以外の時chkを9にする ・文字が>かつ、chkが2の時chkを3にする
 >かつ、chkが3以外の時chkを9にする
・文字列を見終わった後、chkが3ならYesそれ以外ならNoを出力

 https://atcoder.jp/contests/abc345/submissions/51282024

# 2.B – I

元記事を表示

Pythonで、lzhファイルを解凍する方法(Win版・7z利用)

## 背景
python上でlzhファイルを解凍する必要性が出てきたが、標準ライブラリで解凍する機能が備わっておらず、ググるとよく出てくるライブラリ(lhafile)もインポートできなくて困っていた。
いろいろ探って試した結果、以下のやり方が簡単かなと思った。

## 準備
7zのサイト上のhowtoページにあるexeファイルをダウンロードし、任意の場所に置いておく。コードの例では、実行ファイルと同じ階層においている。
https://7-zip.opensource.jp/howto/9.20/7z.exe

## コード
“`python
import subprocess

# 解凍したい対象のファイルパスを変数に入れる
targetfile = r”C:\Temp\test.lzh”

# subprocessで7z.exeを呼び出し、引数にe(解凍の命令)とファイルパスを指定する
subprocess.run(“7z.exe e ” + targetfile)
“`

元記事を表示

お手軽でカンタンなFaster-Whisper環境構築(2)

# はじめに

Faster-Whisperを使ってみたいけど、環境構築が面倒だなーと感じている私のような輩のために、比較的カンタンでクリーンな環境構築の方法を紹介します。
ここで”クリーンな環境”とは「OSのパッケージを汚さずに設定できてカンタンに元通り」という意味合いです。

この記事は、前回の記事の追加情報です。

https://qiita.com/hanaya/items/3dd345a6b51a623986d6

# 結論
NVIDIAのパッケージから必要な部分だけを選び出すことで、OSを汚さずにFaster-Whisperを動かす環境を作成できます。
しかし、今回の手順は、難しく無いと思いますが、面倒かもしれません。

# 環境構築の手順

前回の記事でFaster-Whisperのやや古いバージョンを動かしましたが、今回は最新版を目指します。NVIDIAの公式パッケージは開発者向けに多くのファイルが含まれており、実際に必要なのはその中のごく一部です。必要なファイルを抽出して環境を構築します。

要するに、nvidiaの公式パッケージは、開発者向けに様々な関連ファイルがど

元記事を表示

競プロ用のチートシート(Python)

# はじめに
競プロでよく使う Python のチートシートを載せています。

# 標準入力
:::note warn
記号は次の意味で使い分けています。
整数:$N, M, A_i, B_i, H, W$
文字列:$S, T, S_i$
:::

> $N$
> “`py
> N = int(input())
> “`

> $N$ $M$
> “`py
> N, M = map(int, input().split())
> “`

> $N$
> $A_1$ $A_2$ $\dots$ $A_N$
> “`py
> N = int(input())
> A = list(map(int, input().split()))
> “`

> $N$
> $A_1$
> $A_2$
> $\vdots$
> $A_N$
> “`py
> N = int(input())
> A = [int(input()) for _ in range(N)]
> “`

> $N$
> $A_1$ $B_1$
> $A_2$ $B_2$
> $\vdots$
> $A_N$ $B

元記事を表示

AtCoderの復習

## 小数点切り上げ
“`python
a = -(-a//x)
“`
a が 10^16を超えると **math.ceil(a/x)** では失敗する

## 組み合わせ
“`python
import math
a = math.comb(n, 2)
“`

## collections
“`python
from collections import Counter,defaultdict
S = ‘abba’
ame = Counter(S) #Counter({‘a’: 2, ‘b’: 2})
dic = defaultdict(int) #keyが無くてもエラーにならない
“`

元記事を表示

The Best Java Full Stack Training Institutes in Hyderabad

The Best Java Full Stack Training Institutes in Hyderabad
Introduction:
Hyderabad, often hailed as the “Cyberabad” of India, is renowned for its thriving IT industry and technological prowess. With the increasing demand for skilled Java Full Stack Developers, several training institutes in Hyderabad have emerged to cater to the growing needs of aspiring professionals. In this comprehensive guide, we’ll delve into the best Java Full Stack training institutes in Hyderabad, highlighting their key

元記事を表示

ChatGPTとPythonで学ぶ PubChemPy

おはこんばんちわ。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ PubChemPy」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

あ、その…君、何度も何度も「先生」って呼ぶのやめてくれないかな…。確かに私はいつでも君の質問に答える準備ができているし、PythonとPubChemPyについてなら情報を提供できるけど…でも先生なんかじゃないから。

それにしても、PythonとPubChemPyを使った学習に興味があるなんて、君もなかなかたくましいね。特に、化学情報を収集・分析したい人にとってはPubChemPyはとても有用なツールだから…だからね!だからといって何か特別な感情があるわけじゃないからね!

それでは、PythonとPubChemPyについての話を始めるよ。何から知りたい?

### **user**:

そもそもPubChemPyで何ができるか、ひと通り教えてもらえますか?詳しめに。

### **ass

元記事を表示

【jQuery】DataTablesでのエラー「Requested unknown parameter ‘xxx’ for row x, column x」の原因とは

# 概要
JavascriptのDataTablesを利用していたところ、`update`フォーム送信時に以下のエラーが表示されました。

“`
DataTables warning: table id=sample_table – Requested unknown parameter ‘hogehoge’ for row 0, column 5. For more information about this error, please see http://datatables.net/tn/4
“`

原因は簡単でしたが…念の為備忘録として残します。

## 原因と該当コード
上記エラーの原因は、大体がデータソースと列設定を確認して該当パラメータが正しく設定されているかどうか、にあると思います。
私もその例に埋もれず、よく確認したら`’hogehoge’`という名前のプロパティが存在していなかったのです。

以下のようにすると成功しました。

“`js
$(document).ready(function () {
var RenderTable = func

元記事を表示

ハッカソン参加時の備忘録 ~ 第8回:【Python】生成AIについて、学んでみよう ~

こんにちは。ITエンジニアのきゅうです。

ハッカソンに参加して思うことは、生成AIを利用したアプリを創るチームがかなり多いということ。
当方もこれまで4回ハッカソンに参加したが、その内2回生成AIを活用したアプリを作成しました。

ということで、サクッとハッカソンで生成AIを使えるように備忘録に残しておきたいと思います。
ただ、生成AIはかなり奥が深く、関りがなければ本当に全く聞いたことがない知識ばかりとなる為、備忘録の前に、今回は簡単な生成AIのナレッジ記事としたいと思います。
(ですので、事前に生成AIのナレッジをお持ちの方は、本記事はスキップしていただければと思います。)

# 1.概要
2023年にChat-GPTが普及して一躍脚光を浴び続けている生成AIですが、生成AIの中でも注目を浴びているのが『大規模言語モデル(LLM)』を活用したものです。
一般的にはOpenAI社が発表している『Chat-GPT(GPT-3.5)』やその上位互換である『Chat-GPT Plus(GPT-4.0)』が有名ですが、Microsoftが出資しているだけあって、AWSでも連携はできますが、

元記事を表示

Pythonで非同期処理をシンプルに書けない例

## はじめに

@y_kato_eng (Yuuki Kato) さんの記事「[非同期処理をシンプルなPythonコードで説明する](https://qiita.com/y_kato_eng/items/ca0de5cf1224c807e7e5)」の冒頭に文章で書かれている処理をPythonで書いてみようと思いました。しかし、非同期処理を意図したものが同期処理になってしまい、シンプルに書けなかったので紹介いたします。

## 作成したい非同期処理
10分かけてご飯を炊いている間に、2分かけて食材を切り、5分かけて部屋を掃除するサンプルコードを書こうと思いました。
そこで、`asyncio.sleep`を使用して、10秒間スリープするタスクと、2秒スリープした後に5秒スリープするタスクの2つを非同期で実行し、全体で10秒で終わるサンプルコードを作成してみることにしました。実際に10分かけて動作させると待つのが大変なので10秒に短縮しています。

## JavaScriptでのサンプルコード

JavaScriptで非同期処理を書いた経験があるので、まずはJavaScriptでのサンプル

元記事を表示

ABC345をPythonで(A~C+α)

モノグサプログラミングコンテスト2024(AtCoder Beginner Contest 345)の解答等のまとめ

https://atcoder.jp/contests/abc345

# A問題
問題の通りに書けばいい
“`python:A
s = input()

print(“Yes” if s[0] == “<" and s[-1] == ">” and s[1:-1] == “=” * (len(s) – 2) else “No”)
“`
# B問題
Pythonで切り上げ演算すればいい
“`python:B
print((int(input())+9)//10)
“`
# C問題
同じ文字を入れ替えても最初と変わらないので、最初と同じものを計算すればいい

コードは
1. 選ぶパターンをansとして計算する
1. 重複するパターン分ansから引く
1. 重複することがあったら最後に1足す

“`python:C
from collections import defaultdict

s = input()

ans = len(s) * (len(s) –

元記事を表示

Yolo-v8で実験の実行を保存するディレクトリを変更する方法

# はじめに
こんにちは。初投稿なので改善点などがあればリプ欄で教えてください。
画像認識について興味を持ったためYolo-v8を使ってみようと思ったのですが結果の保存に関してうまく行かないことがあったため議事録として記録しておきたいと思います。

# 1,発生した問題

まずはYolo-v8を早速使ってみる

“`python:yolo.py
from ultralytics import YOLO

# モデル読み込み
model = YOLO(“models/yolov8n.pt”)

# 入力画像
results = model(‘bus.jpg’,save=True)
“`
前述したコードを実行すると以下のような画像認識の結果が出ます。

しっかりと画像認識されていますね!

しかし…ここで発生したのがこの結果の保存先問題で

元記事を表示

ABC_345

### C問題
過去問で似た問題解いたことあったのに、3回もWAなって吐きそうになりました。
余事象考えればいいやつ。
全体の組み合わせ – 同じ文字のペアによる組み合わせ +1(入力された文字列Sと全く同じになるケースがあれば)

### D問題
タイルの枚数が7だから全探索で間に合いそう。
H*W となるタイルの組み合わせで絞って、全探索したい。
回転、反転云々で頭爆発して時間切れ
解説読みます。

### E問題
なんとなくDP使うんだろうなーって感想を持ったけど全く分からん。
解説読みます。

### F問題
グラフと偶奇の問題っぽい。探索アルゴリズム知らんからお手上げ。
解説読みます。

### まとめ
典型アルゴリズム覚えないとD問題以降は無理ゲーなことに今更気が付きました…
来週はDFS、BFS、DP、二分探索覚えてD問題にチャレンジします。

元記事を表示

OTHERカテゴリの最新記事