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

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

URDFを表示するだけのpython

![SS 192.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565043/a41cd967-f549-8677-1efa-2e99bf69518d.png) ほんとにちょっと表示するだけのメモ

## やること

URDFファイルのロボットをpythonで表示だけプレビューします。
pybulletを使います。
ROS環境は不要です。
コードは適当ですが動くメモです。

## コード

“`python:urdf_preview.py
import os
import pybullet as p
import pybullet_data
import time
import tkinter as tk
from tkinter import filedialog
import re

def find_directory(root_dir, target_dirs):
“””ルートディレクトリ内で特定のディレクトリを検索”””
for dir_name in target_dir

元記事を表示

additionalProperties:構造化出力のための設定

※ この記事は生成AIで作成しました。

## はじめに

JSONデータの処理において、データの構造を定義し制御することは非常に重要です。特に、OpenAIのGPT-4などの大規模言語モデルを使用する際、出力の正確性と一貫性を確保するために、JSON Schemaの適切な設定が不可欠です。本記事では、JSON Schemaの重要な属性である`additionalProperties`に焦点を当て、その意味と適切な使用方法について解説します。

## additionalPropertiesとは

`additionalProperties`は、JSON Schemaにおいて、オブジェクトが定義されていない追加のキーと値を含むことを許可するかどうかを制御するプロパティです。この設定は、データの構造を厳密に管理する上で極めて重要な役割を果たします。

### additionalPropertiesの基本

– `additionalProperties: true`(デフォルト):未定義のプロパティの追加を許可します。
– `additionalProperties: false`:未

元記事を表示

JSONファイルの “False” および “True” 文字列をブール値として読み込む方法

※ この記事は生成AIで作成しました。

JSONファイルを扱う際、文字列として保存された “False” や “True” をそれぞれブール値の `false` と `true` として読み込みたいケースがあります。この記事では、Pythonを使用してこの問題を解決する方法を詳しく解説します。

## 問題の背景

JSONファイルには、しばしば “False” や “True” という文字列が含まれることがあります。しかし、Pythonでこのファイルを読み込むと、これらの値は文字列として解釈されてしまいます。プログラムの論理的な処理のためには、これらをブール値として扱うことが望ましい場合が多々あります。

## 解決策:カスタムJSONデコーダーの使用

この問題を解決するための効果的な方法は、カスタムJSONデコーダーを実装することです。このデコーダーを使用することで、JSONファイルを読み込む際に “False” と “True” 文字列を自動的にブール値 `false` と `true` に変換できます。

### カスタムJSONデコーダーの実装

以下に、”False”

元記事を表示

PythonにWEBスクレイピングをやらせてCPUやGPUのコストパフォーマンスをなるべく簡単に比較する

# 動機
自作PCの構成を考えていると,予算の中で最も性能のいいパソコンは何なのかをよく考えるけど,その情報は意外と少ない.多くのサイトでは,ベンチマークスコアの一覧,価格の一覧の一方はまとめらているが,それを同時に見ながらどのコスパがいい・悪いを比較できる情報先はあまりないように思う.これはおそらく,価格変動が激しいのでコストパフォーマンスの変動も大きいことが理由なんだと思う.

そんな中,価格コムなどでの価格調査をpythonによるWEBスクレイピングにやらせる[記事](https://happy-shibusawake.com/web-scraping1/559/)を発見,これは使えそうということで,WEBスクレイピングの勉強も兼ねて実装してみた.

# 目的
なるべくリアルタイムの市場状況(価格・在庫)を反映したCPU・GPUのコストパフォーマンスを,PythonのWEBスクレイピングを使って調べる.

# 開発環境
実装環境は以下の通り.
– MacBook Pro 14 (M1 Pro)
– Python 3.9.19

# 必要なライブラリ
全てpipで入る.
– req

元記事を表示

【Django】000. Hello World (ロケット飛ばすまで)

## はじめに
この記事(Djangoについてナンバリングされたシリーズ)ではDjango初心者の投稿主が書籍やサイト等にて学習した内容をメモとしてまとめていく予定です。

記載する記事は前回の記事からの続きになることもあるかと思いますし、突発的に思いついた内容になることもあるかと思います。

~~Q:前回からの続きかもわからないのになぜナンバリングするの?
A:積み重ねている感があってテンションが上がるから!~~

頑張って週に1記事は投稿していきたいです。

## 参考書籍候補
以下のようなもの(たち)を読んでみようかな〜と思っております。

たくさんあげていますが、多く読めば良いという話でもないのでこの中から取捨選択することにはなると思います。

最初は1冊目にあげてある「Python Django 4 超入門」を読んでいく予定です。

https://www.amazon.co.jp/Python-Django-4-%E8%B6%85%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%B6%E4%B9%83/dp/47980

元記事を表示

Pythonで実装されたCOBOLインタープリタのご紹介

## はじめに

プログラミングをしていると、「この機能はどう動作するのだろう?」と気になることがよくあります。そんな時、まずはWebで検索して機能を確認し、さらに簡単なプログラムを書いて動作を確認することが一般的です。

Ruby、Java、Pythonならば、コードを書いて即実行できるので、試してみることに抵抗がありません。C++も、Visual Studioなどを使用すれば比較的簡単に試すことができますね。

しかし、COBOLはどうでしょうか?

手軽に動かせるCOBOL環境はなかなか見つかりません。もちろん、OpenCOBOLなどをセットアップすれば動作させることは可能ですが、そのセットアップには時間と労力がかかり、誰でも簡単に扱えるとは言い難いです。

そこで、「ないなら作ってしまおう」と考え、開発したのがインタープリタ型COBOL「Smart Interpreter Training COBOL」(以下 SIT COBOL)です。

![Black Beauty Makeup YouTube Thumbnail.png](https://qiita-image-stor

元記事を表示

【Python】GPT-4o+Whisper+VOICEVOXでアバターAI対話アプリを爆速構築

# はじめに

**好きなアバターを使って理想の対話ができるアプリを作りたい…**

がしかし、3DCGアプリケーションで制作したアバターを使ったAI対話アプリの構築は、アプリを動かすPCのリソース要件が高かったり(特にGPU)、BlenderやUnityといった3DCGを扱うソフトのスキルが必須で、私にとってハードルが高い。。

ということで、今回は以下のコンセプトで対話システムを構築してみました。

– できる限り実装はPythonだけで完結させたい
– リップシンク、発話スピードなど対話システムとしての質はいったん無視
– dGPUを搭載していないPC環境でもアプリを動かしたい
– 手元のデスクトップにはGPUがあるので、VTuber向けの3Dアバター制作ソフトは一応動く

このコンセプトでサンプルアプリを作ったところ、こんな感じになりました。

– アバター:VRoid Studio → 3tene → 動画キャプチャー
– 対話生成:GPT-4o
– 音声認識:whisper-mic
– 音声合成:VOICEVOX ローカルAPI

機能

– リアルタイムの音声認識チャ

元記事を表示

Kaggle LLM 20 Questionsの解説と上位ソリューションまとめ

# はじめに
この記事では、先日Kaggleで行われた『LLM 20 Questions』の上位ソリューションについてまとめます。LLMとゲームAIが合わさったコンペティションでした。

https://www.kaggle.com/competitions/llm-20-questions

私はソロで参加し、832チーム中9位(上位1.1%)の成績となり、金メダルを獲得しました。また、このたびの成績によって、Kaggle Competitions Masterに昇格しました!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627015/1816aef9-d8ef-e33f-d9fb-08342e8b7e12.png)

最終順位発表後におけるリーダーボード

![inbox_5927283_69cdf479e9b4e8df5e5158e98d2239f9_0hourstogo (1).png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

Python CSVデータの効率的な処理: イテレータを使った実践的なデータ変換

## はじめに

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/ab45fbe1-caca-e9c4-3f16-3e4b6f08106f.png)

ビッグデータの時代において、大規模なCSVファイルの処理は多くの開発者が直面する課題です。特に、メモリ使用量の制御と処理効率の向上は重要な問題となっています。この記事では、Pythonのイテレータを活用して、メモリ効率が良く、柔軟性の高いCSVデータ処理方法を紹介します。

実際のビジネスシナリオを想定したユースケースに焦点を当て、中級者のプログラマーにも役立つ実践的な技術を解説していきます。さらに、サンプルデータを生成するコードも含めることで、読者が直接コードを試せるようにします。

## イテレータの基本と利点

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/34ca7088-7b4d-3231-580c-

元記事を表示

[Python]最適化を用いたモデルマッチング(PIDゲインの調整方法)

# 目的
最適化を用いたモデルマッチング(PIDゲインの調整方法)を行うためのPythonスクリプトを紹介する。また、限界感度法と比較してモデルマッチングの方が調整されたPIDコントローラの制御性能が高いことを示す。

尚、この記事で紹介しているモデルマッチングは制御対象のモデルが必要となる手法であるが、データ駆動型制御といわれる手法を用いれば制御対象のモデルを使用せずにモデルマッチングを行うことも可能である。

参考情報:データ駆動型制御(FRIT、VRFT)を図的に理解する

# 本記事のPIDゲイン調整の概要
制御対象のモデルを作成し、PIDゲインを変更したコントローラと制御対象のモデルを用いたシミュレーションをなんども繰り返すことで少しずつPIDゲインを調整していく。
調整するPIDコントローラと制御対象のモデルのブロック線図を以下に示す。

![image.png](https://qiita-image-store.s3.ap-nor

元記事を表示

pythonプログラムをモジュールベースで開発する

Pythonプログラムでモジュールベースの開発をする例を述べる。

## 想定読者
– Linux ユーザー
– Pythonプログラマ
– 画像認識・機械学習は熟知しているが、システム全体の構築経験は少ないプログラマ

## サービスをモジュールへと分解する。
サービスとして自動起動される1つのプログラムも、さらにモジュールという構造を分解していく。
サービス-> モジュールの集まりへの呼び出しに分解

サービスプログラムの完成度を高めることを
各モジュールの完成度を高めることにブレークダウンしたい。

– 巨大すぎるプログラムでは、プログラムのテストが、プログラム開発完了後にスタートされることが多い。
– しかし、モジュールをベースとしたプログラムでは、開発中の時点で既にテストコードが存在して、テストをパスする状態を保ちながらコードが開発されていく。(テスト駆動開発)

## モジュール(やパッケージ)の役割を明確にすること
– モジュールに機能を加えすぎない。
– モジュールの仕様を確定させて変更を加える理由をなくしていく
# モジュールを適度に分割すること
## モジュールを分

元記事を表示

pythonでjsonデータをhttp POSTリクエストするための備忘録

pythonでjsonデータをhttp POSTリクエストするための備忘録

# テストサーバ

[`http://httpbin.org/`](http://httpbin.org/)を参照させていただきます
> A simple HTTP Request & Response Service.
> Run locally: $ docker run -p 80:80 kennethreitz/httpbin

# 実行環境

`Python 3.12.3`環境

“`sh
$ python –version
Python 3.12.3
“`

(recommend) `venv`環境を使う

“`sh
# cd (working directry)
python3 -m venv venv
source venv/bin/activate
# (deactivate)
“`

install

“`sh
pip install requests
“`

# テストコード

コード

> https://blog.apify.com/python-post-reques

元記事を表示

SpotifyAPIを使わずにSpotifyをいじる。(Mac, Linux)

KITHUB夏アドカレです。
下書きに眠ってたので投稿します。

Mac

“`mac.py
import osascript

track_osa = ‘tell application “Spotify” to name of current track as string’
artist_osa = ‘tell application “Spotify” to artist of current track as string’
play_stop_osa = ‘tell application “Spotify” to playpause’
next_osa = ‘tell application “Spotify” to next track’
back_osa = ‘tell application “Spotify” to back track’

osascript.run(play_stop_osa)

osascript.run(next_osa)

track = osascript.run(track_osa)[1]
artist = osascript.r

元記事を表示

ABC369回答メモ

# 0.はじめに
 先週のABCで700台に復帰したと思いきやその後のARCで
 一つも回答できず、レート-44の667と大幅ダウンを鞍って迎えた今回。
 A~Cしか解けずにレート-2の665と停滞しました。
 ここら辺がまぁ今の実力なのかと思います。
 9月からARCのレートが変わる為、ARCで一発逆転が狙えなくなるので
 地道にABCを積み重ねて行きます。

# 1.A – 369
 Aの難易度が上がっている気がする今日この頃。
 結果的には6分くらいで解けているのでまぁ、小手調べとしてはちょうどいいのかも。

 【考え方】
  ・ABの差からC1・A・B、A・C2・B、A・B・C3の3種類の等差数列を
   求め、C1、C2、C3の種類数を求める。
 【実装】
  ・とりあえずA≦Bに整える
  ・AとBの差Cを求める
  ・C1は、A-C
  ・C3は、B+C
  ・C1とC3が同じなら、答えは1種類
  ・異なる場合は、答えは2種類か3種類
   →Cが2で割り切れればC2が整数となるので
    答えは3種類
   →Cが2で割り切れなければC2が整数ではないので
   

元記事を表示

PythonのLambda Layerを作成する方法

# フォルダ直下構成
以下の構成が必要なようです
pythonディレクトリ内に必要なライブラリをインストールする必要があります
![lambda_layer.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1952885/460ae25f-ac39-183b-f78a-1cd5b212ba24.png)

# 実際の作り方
1.任意のディレクトリ内にpythonディレクトリを作成する
2.pythonディレクトリに必要なライブラリをインストールする
“`
pip install boto3 -t python
“`
3.pythonディレクトリをzip化
“`
zip -r layer.zip ./python
“`
4.手順3でzip化したものをlayerとして登録する
[AWS Lambda Layersでライブラリを共通化](https://qiita.com/t_okkan/items/394a15577bd1aad46ec3#layer%E3%81%AE%E8%BF%BD

元記事を表示

キャッシュとしてのRedis導入(Python)

**備忘録✍️**
redis clientを独立したファイルで定義して、どこでもimportで呼び出して使えるように。

**redis_client.py**
“`python
# redis_client.py
import os
from redis import Redis
from dotenv import load_dotenv

load_dotenv()

# redisの接続設定
REDIS_HOST = os.getenv(“REDIS_HOST”, “redis”)
REDIS_PORT = int(os.getenv(“REDIS_PORT”, 6379))

redis_client = Redis(host=REDIS_HOST, port=REDIS_PORT)
“`
**環境変数**
“`
# redis
REDIS_HOST=redis
REDIS_PORT=6379
“`
**呼び出し先でやること(変数等は開発当時まま)**
“`python
# redis clientのimport
from app.services.redis_

元記事を表示

小さなGPTでのエンジニアリング。僕だけのGPTを作るというゲーム。

##### 前回のあらすじ。

https://qiita.com/tetsutakamurata76/items/e3ad0d3ce53a1d35734c

### タイトル: 「僕だけのGPT」
東京の夜が深まり、街は静寂に包まれていた。雑踏の音が遠くに消え、オフィスビルの一室で一人のプログラマ、ケンイチ・タナカがパソコンの前に座っていた。彼の目の前には、コードが無限に続くスクリーンが広がっている。彼の手は、キーを叩くたびに、次第に夢中になっていった。

ケンイチは、最近のプロジェクトに取り組んでいた。彼が取り組んでいるのは、GPT(Generative Pre-trained Transformer)という言語モデルの小型版の開発だった。彼の目標は、一般的なGPTモデルをより軽量化し、個人的なニーズに合わせてカスタマイズすることだった。自分だけのGPTを作り上げることが、彼にとっては最高の挑戦であり、楽しみでもあった。

「このモデルは僕の考えを形にするツールなんだ。」ケンイチは呟いた。彼の思考は、数式とアルゴリズムの間を行き来していた。GPTモデルは、膨大な量のテキストデータを

元記事を表示

[Python]NotionAPIのORMっぽいライブラリを作ってみた

Notion API ORMは、Notion APIを簡単に使用するためのPythonライブラリです。このライブラリを使用することで、NotionのデータベースをPythonオブジェクトとして扱うことができ、データベース操作を簡素化することができます。

## 主な機能

– Notionデータベースレコードの作成、読み取り、更新、削除
– Pythonクラスを使用したデータベーススキーマの定義
– データベーススキーマの自動マイグレーション
– データベースレコードのフィルタリングとクエリ
– 様々なフィールドタイプのサポート: CharField, IntegerField, SelectField, MultiSelectField, DateField, BoolField

## インストール

GitHubリポジトリから直接インストールできます:

“`bash
pip install git+https://github.com/yuki5155/notion-api.git
“`

## 1. モデルの定義

モデルは、Notionのデータベースの構造を表現するPy

元記事を表示

ゲーム画面を画像分析してみた

### 背景
プレイ中のゲーム画面を画像分析させたりできないかなぁと思っていた所、思っていたよりかなり簡単に実装できたので記事にしました。

### 使用技術
– Python
– Pillow(画像を扱うためのライブラリ)
– OpenCV(画像解析用ライブラリ)

### 実際の例
今回は例として、テトリスを画像分析してみることにします。

import cv2
import numpy as np
from PIL import Image, ImageGrab
import time

# 1.テトリスブロックのテンプレート画像ファイルのパス
block_templates = [‘block_I.png’, ‘block_J.png’, ‘block_L.png’, ‘block_O.png’, ‘block_S.png’, ‘block_T.png’, ‘block_Z.png’]

def capture_screen():
“””スクリーンショットを取得してOpenCV形式に変換”””

元記事を表示

ABC369(Atcoder Beginner Contest)のA~F(A,B,C,D,E,F)問題をPythonで解説(復習)

# ABC369(Atcoder Beginner Contest)のA~F(A,B,C,D,E,F)問題をPythonで解説(復習)

# A問題
– 以下の `3` パターンしかない.
– `A == B` のとき, `1` 種類のみ
– `(A – B)%2 == 1` のとき,`2` 種類のみ
– それ以外の時, `3` 種類のみ
“`A.py
“””
<方針>
– 以下の `3` パターンしかない.
– `A == B` のとき, `1` 種類のみ
– `(A – B)%2 == 1` のとき,`2` 種類のみ
– それ以外の時, `3` 種類のみ
“””
# 入力
A, B = map(int, input().split())

# 1種類
if(A==B):
print(1)
# 2種類
elif((A-B)%2==1):
print(2)
# 3種類
else:
print(3)
“`

# B問題
– 右手と左手で分けて考える.
– ピアノを弾く時に,手を動かせば最小の疲労になる.
– 愚直にシミュレーションを行う.
“`B

元記事を表示

OTHERカテゴリの最新記事