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

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

電子化対応を支援する!請求書自動整理ツールのご紹介

# 最近思うこと
 2024年1月に電子帳簿保存法が改定され、領収書や請求書を紙ではなく電子データのまま保存できるようになりました。さらに、同年10月には郵便料金の値上げも予定されています。この変化により、多くの企業では経営層や他部署から「なぜ電子化に対応していないのか?」という声が上がり、情報システム部門が大規模なシステム導入を迫られることが予想されます。こうしたシステムには数百万円から数千万円の投資が必要で、導入の際には費用対効果が重要なポイントとなります。

 ただ、電子化によって削減される作業時間を正確に定量化するのは難しく、その効果を見える形にすることは簡単ではありません。削減された業務時間を、よりクリエイティブで価値の高いタスクに活用することが理想ですが、日本全体として、就職後にスキル

元記事を表示

Fast APIチュートリアルを試してみた-①(Path,Query Parameter)

# 背景・目的
前回、Fast API(※下記の記事参照)について特徴を整理し簡単に試しました。

https://qiita.com/zumax/items/7684e7f06b06e8960702

今回は、下記のチュートリアルを通して理解を深めたいと思います。

https://fastapi.tiangolo.com/tutorial/first-steps/

https://fastapi.tiangolo.com/tutorial/path-params/

https://fastapi.tiangolo.com/tutorial/query-params/

# まとめ
下記に特徴を整理します。

|特徴|説明|
|:–|:–|
|Starlette|軽量のASGIフレームワーク/ツールキットであり、Python で非同期 Web サービスを構築するのに最適。|
|ASGI|Asynchronous Server Gateway Interfaceの略

非同期対応のPython Webサーバ、フレームワーク、アプリケーション間の標準インターフェイス

元記事を表示

ComfyUIでLayerDiffuseを使えるようにする

# はじめに
皆さん、ComfyUI使ってますか?私は趣味でゲーム制作をしているのですが、その素材をAIで作成できないかと格闘したときにハマってしまったので共有します。

# LayerDiffuseとは

https://gigazine.net/news/20240306-layer-diffusion-generate-transparent-image/

このGigazineさんの記事がわかりやすいのでURLを貼り付けておきます。
簡単に言えば透過画像を生成できるようにする拡張機能です。
ちなみにLayerDiffuseはStableDiffusionWebUIForge用であるLayerDiffusionをComfyUIで使えるように改良したものになります。

# 普通に導入しても動作しない問題
ComfyUIで拡張機能を導入するときは、基本的にはComfyUI-Managerを利用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1751564/d629bd84-f

元記事を表示

JSONを用いた動画生成

## 概要
AIのセグメンテーション結果の流し見など、色々な画像を動画に合わせて同時にみたいという時があります。
その時、いちいちコード上でレイアウトを変更して…とかやっているとミスが多いため、すべてをjson上でまとめてそこで管理すればいいのでは?と考えてコードを作成してみたので公開します。

## コード内容
### 動作環境
– opencv
– PIL
– python 3.10
### ファイル構成

“`
.
├── README.md
├── main.py # まとめて動かすためのコード
├── outline.json # レイアウトを記載
├── pictures # 複数の元画像を結合した画像を格納
├── src
│ ├── movie_maker.py # 動画作成
│ └── picture_maker.py # 画像生成
├── venv
├── video.mp4
└── video_output
“`

### JSONによる画像の配置の設定
1フレームごとの画像を生成する際、複数の画像の配置やサイズ、背景画

元記事を表示

SeleniumでのXPath参照、ファイルダウンロード、確認ダイアログ操作を解説

PythonでSeleniumを使う場合の、XPath参照、ファイルダウンロード、確認ダイアログ操作を解説します。

## Selenium導入

下記コマンドでSeleniumを導入します。

“`text
pip install selenium
“`

(参考) [Selenium Pythonのインストール](https://www.seleniumqref.com/introduction/python/Python_Sele_Ins.html)

## Chrome Driver ダウンロード

image
まず、Chromeのバージョンを確認します。(バージョンはヘルプ-Google Chromeについてから確認できます。)
本記事記載時点ではバージョン`128`でした。

下記サイトからバージョンの一致する**chrom

元記事を表示

【生成AI】 RAGをより理解しよう! LlamaIndexでのQuery Engineの機能

# はじめに
RAGのより理解して活用したい人向けに、Llamaindex v0.11.9(2024年9月16日現在での最新)でのQuery Engineの機能を整理しました。

Query Engineは、各種ドキュメントデータをベクトル化し、ナレッジデータとして格納したインデックスに対して、高度な検索や質問応答を可能にするエンジンです。生成AI(LLM)を活用して、自然言語のユーザクエリを理解し、関連する情報を効率的に抽出します。

また、LlamaIndexではFLARE技術(※)などにより、反復的な検索を使用して応答内容のギャップを埋め、より詳細で適切な情報をLLMに提供することで、知識拡張長文生成を強化しています。

::: note info
FLARE技術
知識拡張型の「長文生成」を実現するために開発された技術。文ごとに検索を行いながらテキストを反復的に生成する。各文が生成されるたびに、関連する情報が必要かどうかを判断し、必要に応じて情報を検索して内容を充実させて行きます。
:::

#

【Python入門】dictitonaryを使用した関数制御について

# はじめに
“`dict“`に関数を定義して、関数を呼び分ける方法について解説します。
一般的には処理を分けたい場合は分岐処理を行う必要がありますが、キーを使って処理を制御することができます。

# 一般的な関数呼び分け
関数を呼び分けたい場合、通常であればステータス毎や引数の値からどのような関数を呼び出すか判定を行い、制御する方法になるかと思います。

例えば四則演算を行う場合、引数で渡された関数名で分岐をするのが一般的かと思います。
“`python
def add(a, b):
return a + b

def sub(a, b):
return a – b

def mul(a, b):
return a * b

def div(a, b):
return a / b

if argv[1] == “add”:
print(add(int(argv[2]), int(argv[3])))
elif arg

Pythonで始めるMapReduceデータ処理:中級者向け

## 1. はじめに
MapReduceは大規模データ処理のための強力なプログラミングモデルです。本記事では、Google Colab環境でPythonを使用してMapReduceの概念を学び、効率的なデータ処理パイプラインを構築する方法を解説します。

![napkin-selection (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/e45c9abd-2158-c4d9-2f31-6269ad261694.png)

### MapReduceの概要

![napkin-selection (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/a0a34859-5a84-ebac-901b-71b92f504172.png)

MapReduceは主に2つの段階から構成されています:

1. **Map**: 入力データを key-value ペアに変換する
2. **Redu

Django を始めたい方へ

# はじめに

※随時更新予定です (※2024/09/16)

PythonでWebアプリケーションを実装していくことを考える、FlaskやFastAPIなどが選択肢としてありますがやはりDjangoの人気は高いと思っています。ただ、Djangoは他にフレームワークと比べると少し難易度は高い気がします。今回はそのDjangoをなるべくハードル低くと始められるように記事を書いてみました。初心者の勉強に役立ててもらえたらと思います。

# 手順

### Starter

[1]. プロジェクト用のディレクトリ作成

“`
$ mkdir todo
“`

[2]. 仮想環境の構築

“`
$ python -m venv venv
$ . venv/bin/activate
“`

[3]. プロジェクトの立ち上げ

“`bash
(venv)$ pip install django
(venv)$ cd todo
(venv)$ django-admin startproject todoproject .
“`

※ 「startproject」 : 必要なファイルを

円周率の近似値の推定手法

# はじめに
円周率の近似値を求める方法は、たくさんある。そこで、できるだけマニアックな方法で円周率の近似値を出すことができたら喜ばしい限りである。そこで、前半戦では、今回はガウス関数の面積は円周率で表されることを利用して、モンテカルロ法で面積を近似し、円周率を推定する。後半戦では、三角関数のsin関数をマクローリン展開で多項式近似し、二分法を用いることで円周率を推定する。

# ガウス関数による推定

ガウス関数の広義積分は以下のように表される。

“`math
\int_{-\infty}^{\infty}e^{-x^2} = \sqrt{\pi}
“`

したがって、上記のガウス関数$y=f(x)=e^{-x^2}$と$y=0$で囲まれる面積をモンテカルロ法で求める。ここで、$0

paizaラーニング問題集「階段の上り方2」を解いてみた

▼感想:

問題文に
「n, a, b の値によっては答えが0になることがある」
と書かれていたので、
0になる場合を考えif,elifでコーディングしました。
しかし、解答コード例はそうコーディングされていませんでした。
もう少し、理解を深めたいと思います。

▼コード:
“`py
########## 処理0(準備) インプット,リスト定義など ###########

n,a,b = map(int,input().split())

########## 処理1 漸化式の定義、計算、出力 ##########

if a > n and b > n:

print(0)

elif a > n:

if n % b != 0:
print(0)
elif n % b == 0:
print(1)

elif b > n:

if n % a != 0:
print(0)
elif n % a == 0:
print(1)

else:

dp = [0]*(

wslでmanim その26

# 概要
wslでmanimやってみた。
練習問題やってみた。

# 練習問題
ハノイの塔を図解せよ。

# 方針
– 再帰を使う。

# 成果物

![test_ManimCE_v0.18.1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/0bb17b27-19f8-f9e8-4df2-ccb9d7a7bee4.gif)

# サンプルコード

“`

from manim import *

class test(Scene):
def hanoi(self, disk: int, src: str, dest: str, support: str):
if disk < 1: return self.hanoi(disk - 1, src, support, dest) print(f'move {disk} from {src} to {dest}') self.move(disk, src, dest) self.hanoi(disk - 1, su

Fast APIを試してみた

# 背景・目的
FastAPIに触れる機会があったので、基本的な特徴などを整理します。

# まとめ
下記に特徴を整理します。

|特徴|説明|
|:–|:–|
|FirstAPI|標準のPython型ヒントに基づいてPythonでAPIを構築するためのモダンなハイパフォーマンスなWebフレームワーク|
|特徴|・高速
・高速なコーディング
・少ないバグ
・直感的
・簡単
・簡潔
・堅牢
・標準ベース|
|Requirements|下記を前提にしています。
・Starlette
・Pydantic|
|Dependencies|下記に依存しています。
・Pydantic
・Starlette|
|FastAPI CLI|FastAPI アプリの提供、FastAPI プロジェクトの管理などに使用できるコマンドラインプログラム

開発モードと本番モードをパラメータによって分ける|
|ライセンス|MITライセンス|

# 概要
## コンセプト
下記を基に整理します。

https://fastapi.tia

皆で使おう 専門分野特化のLLM streamlitでインターネットで公開!!!

皆で使おう 専門分野特化のLLM streamlitでインターネットで公開!!!

追加学習済みのLLMを安価に共有する方法です。
完成ずみのwebapiを使って、
既にある、皆様のポータルサイトで呼び出したり
別途、独立サイトで運用したり 色々できます。

完成イメージ

![スクリーンショット 2024-09-16 9.50.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237930/8ffcd30c-ae6b-db88-d961-705ae36c5a38.png)

https://bono0-ghc4uieygq-an.a.run.app

https://
bono0-ghc4uieygq-an.a.run.app

前回までの24

第四回:追加学種済み LLMのwebapiをクラウドデプロイ

https://qiita.com/bono0/items/f954ca48d19cc51fb344

第三回:追加学習済み LLMのwebapiを作る

https:/

paizaラーニング問題集「階段の上り方1」を解いてみた

▼感想:

ヒントを参考にして解きました。
理解を深めるため、
実際にn=0から1ずつインクリメントして、結果を見たいと思います。

▼コード:
“`py
########## 処理0(準備) インプット,リスト定義など ###########

n = int(input())

########## 処理1 漸化式の定義、計算、出力 ##########

dp = [0]*(40+1)

dp[0] = 1

for i in range(1,n+1):

if i >= 1:
dp[i] += dp[i-1]

if i >= 2:
dp[i] += dp[i-2]

print(dp[n])
“`

【Google Maps API】Pythonで複数目的地訪問時の最適経路提案してみた【Tkinter】

## 目次
[0.結論](#0-結論)
[1.はじめに](#1-はじめに)
[2.スクリプトの説明](#2-スクリプトの説明)
[2-1.ライブラリのインポート](#2-1-ライブラリのインポート)
[2-2.RoutePlannerクラス](#2-2-RoutePlannerクラス)
[2-3.経路検索の処理 (search_routeメソッド)](#2-3-経路検索の処理 (search_routeメソッド))
[3.GUIの説明](#3-GUIの説明)
[4.おわりに](#4-おわりに)

### 0. 結論
Python(Google Maps API)を用い、目的の訪問先を巡回する際の最短時間となる経路の提案可能。
検索の際にはGUIにて出発地や訪問先を入力可能。
Google Maps API取得し、本内容をコピペすることで誰でも活用可能。

▼作成したスクリプト
“`Python:
import googlemaps
from math import dist
import tkinter as tk
from tkinter import ttk #プログレスバー表

【Getty Images】Pythonで画像収集してみた【Selenium】

## 目次
[0.結論](#0-結論)
[1.はじめに](#1-はじめに)
[2.FlickrAPI取得](#2-flickrapi取得)
[3.スクリプトの説明](#3-スクリプトの説明)
[4.おわりに](#4-おわりに)

### 0. 結論
Python(FlickrAPI)を用い、目的の検索語句にて自動画像取集が可能。
FlickrAPI取得し、本内容をコピペすることで誰でも活用可能。

▼作成したスクリプト
[Get_Image_At_Flickr_For_Qiita.ipyb](https://colab.research.google.com/drive/1pPEDpwWwpCoBcsBuQN6TQ5Bfru1cHw9r?usp=sharing)

### 1. はじめに
機械学習を進める中で一つの大きなフェーズとして、学習に用いるデータ取集があります。

AIコンペティション参加するのであれば、用意されているデータセットを使うことで、データ取集を省略できます。

しかし、自ら課題設定を行い、AI開発を進めていく場合はデータ収集を自分で行う必要があります。

今回は画像

Pythonで『The MagPi』の全号を一括ダウンロードするスクリプト

「The MagPi」は、Raspberry Piに関する情報を提供するマガジンです。チュートリアル、プロジェクトのアイデア、最新情報などを掲載し、コーディングやロボティクス、DIYエレクトロニクスに興味のある人々にとって役立つ内容が満載です。

The MagPi” のPDFは公式サイトで無料でダウンロードできます。最新号からバックナンバーまで、Raspberry Piに関する様々な記事やプロジェクトが掲載されています。公式サイトを訪れて、直接ダウンロードしてください。

Link: https://magpi.raspberrypi.com/issues

“`python:download_magpi_all_issues.py
# 『The MagPi』雑誌の全号を一括ダウンロードするPythonスクリプト
import webbrowser
from time import sleep as wait

# 1から144までの範囲でループを実行
for i in range(1, 145):
# 号のダウンロードURLを生成
url = f”https://

wslでmanim その25

# 概要
wslでmanimやってみた。
練習問題やってみた。

# 練習問題
ルービックキューブを描け。

# 成果物

![test_ManimCE_v0.18.1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/aca3d3ad-15cf-944a-1316-d0fe18e5f8a2.gif)

# サンプルコード

“`

from manim import *

class RubiksCube(VGroup):
def __init__(self, **kwargs):
self.colors = [“#FFD500”, “#C41E3A”, “#009E60”, “#FF5800”, “#0051BA”, “#FFFFFF”]
vectors = [OUT, RIGHT, UP, LEFT, DOWN, IN]
faces = [self.create_face(color, vector) for color, vector in zip(self.co

wslでmanim その24

# 概要
wslでmanimやってみた。
練習問題やってみた。

# 練習問題
コッホ曲線を描け。

# 参考にしたページ

https://github.com/pdcxs/ManimProjects/blob/master/other/l_system.py

# 成果物

![LSystem_ManimCE_v0.18.1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/0e846f2b-e88b-9c23-469a-1615285d949c.gif)

# サンプルコード

“`

from manim import *

class LSystem(Scene):
def setup(self):
self.rules = {‘F’: ‘F+F–F+F’}
self.angle = PI / 3
self.start_rot = 0
self.initial = ‘F’
self.actions = {}
self.locations = []