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

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

DB取得データとキーが一致する処理データの値を比較して処理する方法【Python】

## 説明

### 処理の流れ
1. `db_data` から `id` と `code` をキーにした辞書 `db_dict` を作成します。
2. `chk_data` の各エントリの `id` と `code` を組み合わせて、`db_dict` のキーとして使用します。
一致するDBデータがあれば`db_match`に格納され、なければ`None`になります。
3. `db_match` が存在する場合、`chk[‘pos’]`(処理データの位置)と`db_match[‘pos’]` (DBデータの位置)を比較して、対応するメッセージを返します。
“`python
# 処理データ
chk_data = [
{ ‘id’: 1, ‘code’: ‘A10’, ‘pos’: 52 },
{ ‘id’: 3, ‘code’: ‘A30’, ‘pos’: 52 },
{ ‘id’: 4, ‘code’: ‘A40’, ‘pos’: 52 },
{ ‘id’: 5, ‘code’: ‘A50’, ‘pos’: 52 },
]

# DBデータ
db_d

元記事を表示

Python JSONファイルの動的解析: カスタムイテレータによる柔軟なデータ抽出

## はじめに

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/9d3dde36-e838-bdea-e07b-69fb185d8978.png)

JSONは現代のデータ交換フォーマットとして広く使用されていますが、大規模で複雑なJSONファイルを効率的に処理することは時として課題となります。本記事では、Pythonを使用してカスタムイテレータを実装し、JSONファイルを動的に解析する方法を紹介します。この手法により、メモリ効率の良い処理と柔軟なデータ抽出が可能になります。

## なぜ標準的なJSONパーサーではなくカスタムイテレータを使用するのか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/a17c325f-6941-2224-5da1-d85ebf168aed.png)

標準的なJSONパーサー(例:Python の `json.loads(

元記事を表示

PytorchがCUDA12.4に対応してたから環境構築して試す

# いつの間にかPyTorchがCUDA12.4に対応していた

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3568254/ba06b7a5-ddd3-d9b6-3ef9-b64f9959db47.png)

この前まで12.1までだった気がします。

# 作成した環境

– WSL2
– Dockerイメージ: nvidia/cuda:12.4.0-base-ubuntu22.04

# 手順

– CUDA12.4.0が入っているコンテナを作成してコンテナに入る

“`bash
docker run -itd –gpus all –name sandbox1240 nvidia/cuda:12.4.0-base-ubuntu22.04
docker exec -it sandbox1240 /bin/bash
“`

– 諸々アップデートしてPythonをインストール

“`bash
apt update
apt upgrade -y
apt install pytho

元記事を表示

指定キーのデータがDBから取得したデータに存在するか確認する方法【Python】

## 説明

1. `db_data` の各レコードから `id` と `code` をキーとしてセットを作成します(`db_keys`)。
2. `chk_data` 内の各データについて、`db_keys` に同じ `id` と `code` のペアが存在するか確認します。
3. 存在しないものは `ng_data` リストに追加され、最終的に結果を出力します。
“`python
# 処理データ
chk_data = [
{ ‘id’: 1, ‘code’: ‘A10’, ‘pos’: 52 },
{ ‘id’: 3, ‘code’: ‘A30’, ‘pos’: 52 },
{ ‘id’: 4, ‘code’: ‘A40’, ‘pos’: 52 },
{ ‘id’: 5, ‘code’: ‘A50’, ‘pos’: 52 },
]

# DBデータ
db_data = [
{ ‘id’: 1, ‘code’: ‘A10’, ‘pos’: 51, ‘sort’: 101 },
{ ‘id’: 2, ‘code’: ‘A20’, ‘po

元記事を表示

FLUX.1をdiffusers + torchaoでquantoよりも高速に使用する

# 概要

以前FLUX.1をdiffusers + quantoでVRAM 16GB環境でも読み込む方法を記事にしました。

https://qiita.com/yamichi77/items/1f12bac65d1584900b35#%E3%83%A2%E3%83%87%E3%83%AB%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E9%80%9F%E5%BA%A6%E3%81%AE%E6%94%B9%E5%96%84

量子化ライブラリはほかにもあるようで、torchaoと呼ばれるライブラリでFLUX.1を量子化するやり方が最近Github上に上がっていました。
早速試したところ、quanto環境より高速に推論までできましたので、記事にしました。
以下のリポジトリを参考にしております。

https://github.com/sayakpaul/diffusers-torchao

# 目次
* [動作環境](#%E5%8B%95%E4%BD%9C%E7%92%B0%E5%A2%83)
* [環境構築](#%E7%92%B0%E5%A2%83%E6%A

元記事を表示

知財のあれこれをPythonで何とかする

### クレームツリーを何とかする(その1)
出願明細書の請求項数が多い場合、請求項の従属関係をクレームツリーで表示させるとチェック作業が捗るかと思いクレームツリーを表示するツールを紹介したいと思います。
クレームツリー表示ツールは既に存在しますが、今回のようにソースコードがあれば必要に応じてカスタマイズが可能になる点で便利かと思います。

“`python:program1.py
#実行前にライブラリ導入(pip install anytree)
#part1 前処理(請求項と従属先のセットを作成)

import re
import unicodedata
import copy
meisai = []
s_base = []
f = open(‘meisai.txt’, ‘r’)#ANSIで保存すること
ms_base = f.read()
f.close()
ms_base=unicodedata.normalize(“NFKC”, ms_base)#請求項数の数値を半角にする
meisai = re.split(“【”,ms_base)#請求項ごとに分割する

clm_gr

元記事を表示

カグルとワタシ ~ kaggle GM振り返りポエム ~

KagglerはGrandMasterになるとポエムを詠むというので、類にもれず私も綴ろうと思いました。**過去に参加したコンペに関する思い出**的なものや、**コンペやってから変化があったこと**などをぼちぼち書いています。

技術的にはちょっとしたtipsぐらいしかないので、そういうのはあまり期待しないでください:pray:

# 自己紹介
– **アカウント名: K_mat**
– **Competition Grandmaster** (動画像系や時系列センサデータ系が主)
– 元々、本業はメカニカルエンジニアで博士 :airplane:
– Kaggleおよび機械学習は2019年から4-5年

[Pytorch]DatasetとDataloaderのイメージ図(自作Dataset版)

# 目的
DatasetとDataloaderのイメージ図』でMNISTに用いるDatasetとDataloaderのイメージ図を作成した。理解を深めるために単純なMLPを用いた単純な回帰問題を自作のDatasetとDataloaderを用いて解いたので共有する。

# データ処理のイメージ図と抜粋版スクリプト
■ データの生成 → 学習用と検証用データに分割 → Dataset作成 → Dataloader作成 → Dataloaderからミニバッチの取り出し部分 の部分のスクリプトを抜粋。
■ DatasetとDataloaderの理解に邪魔な部分は削除していますので、実際にスクリプトを動かしてみたい方は後述の『実際に動作するスクリプト』を使用してください。

■ データ処理のイメージ図
学習用と検証用データに同じ処理をしているのでイメージ図は学習用データのみとなっています。
![image.png](https://qiita-imag

元記事を表示

[Python / Conda / Github Actions] conda でパッケージインストールし、GitHub Actions で自動テストを行いたい時

# 概要

タイトルの通りです。
結構大変だったので、共有したいと思います。

# Dependencies

item|version
–|–
python|3.10.x
package manager|miniforge 24.3.0-0
test library|pytest 8.0.0

# ソースコード

全体は以下のようにしたところ、テストが通過した。

“`yaml:.github/workflows/pytest.yml
name: Pytest

on:
push:

jobs:
pytest:
runs-on: ubuntu-latest

steps:
– uses: actions/checkout@v4

# ここで conda を用意 (自分の場合は miniforge と conda-forge チャンネルを利用)
– uses: conda-incubator/setup-miniconda@v3
with:
auto-activate-base: t

元記事を表示

[自分用] X API(Basic)でハッシュタグ付きの投稿リストを取得(投稿言語指定)[Python3]

自分用:言語指定込み(en, ja, 無指定)でハッシュタグ付きの投稿を取得。
ランダムに近くするように、1日をN(24の約数)分割して、その中で取得時間幅(1分)を生成。

動くことは確認したがコードの適切性は入念に検証していない。あと改行が適当すぎる。

事前に開発者プラットフォーム
https://developer.x.com/
でログインして、APP作成&プロジェクト作成を済ませる

“`
import random
import requests

# 日付系。calenderなどはルーティーン処理したかったので追加した
import datetime
from time import sleep
from dateutil.relativedelta import relativedelta
import calendar

# 保存用
# import csv
import json

import tweepy
“`

“`
# Twitter Developer Platformの使いたいAPPのページから取得する
API_Key = ”
A

元記事を表示

【Django】001. (Djangoでの) Webページの基本

前回はDjangoでロケットを飛ばすまでを見ていきました。
[前回記事:【Django】000. Hello World (ロケット飛ばすまで)](https://qiita.com/ys_dirard/items/82d12c772494fd8a324b)

今回はDjangoということを念頭に置いてWebページの基本について確認していきます。

今回からしばらくは以下の本で学習をしていきたいと思います。

https://www.shuwasystem.co.jp/book/9784798062419.html

### MTVって何?
MTVとは以下の要素で構成されています:
* Model
* データベースの設計
* データベースとのやり取り
* Templates
* requestで返すHTMLファイル (ファイル自体は枠みたいなものであり、求められている要素を埋め込んで返すイメージ)
* View
* 様々な処理を行う
* ユーザーに返すTemplateファイルを決定する
* データをTemplateに渡す

![https

元記事を表示

初心者必見:ベイズ理論でデータ分析が劇的に変わる理由とは?

# はじめに
ベイズ的思考は、現代のデータサイエンスにおいて極めて重要な役割を果たしています。

ベイズの定理を中心にしたこの考え方は、データに基づいて信念を更新し、より精度の高い意思決定を行うための強力なツールです。

特にAIや統計分析の分野では、この手法が不可欠となっています。

本記事では、ベイズ理論の基本概念から、その実践的な応用までを解説し、データサイエンスにおけるベイズ的思考の具体的な利点を探ります。

# ベイズ理論の基礎
### ベイズの定理とは?
ベイズの定理は、初期の仮説に新しい証拠を取り入れることで、その仮説の確からしさを更新する方法です。この定理は以下の式で表されます。
![output.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603047/556af381-692d-fdf8-5732-f1b4e265a97f.png)

ここで重要なのは、事前確率(P(A))と事後確率(P(A|B))の概念です。

事前確率は、新しい証拠が得られる前に仮説がどれほど真実であると考え

元記事を表示

10K+ Bitcoinを保有する🐳の動向を追え!

# 趣旨
10K BTC以上を保有するアドレス数の上昇とビットコインの価格チャートを比較したら、クジラが買ってるか売ってるか判断できると思ったので、TradingViewなどを使わずに直接チャートを生成するためのコードを用意しました。

# コード
Jupyter Notebookでライブラリをインストールした後に起動すれば一発でチャート画像が生成されます。おすすめです。

“`python
import requests
import matplotlib.pyplot as plt
import pandas as pd
import yfinance as yf
from datetime import datetime

# Function to get balance data from API
def get_btc_balance_data():
url = ‘https://bitcoin-data.com/v1/balance-addr-10K-BTC’
headers = {‘accept’: ‘application/hal+json’}

元記事を表示

【Python】LinterとFormatterがオールインワンのRuffを使ってGithubActionsを組んでみる!

## はじめに

最近Ruffっていうpython用のリンタ兼フォーマッタを教えてもらいました。

https://docs.astral.sh/ruff/

以下の特徴があるらしいです。

– Rust製なのでさっくさく
– HPのベンチマークがえぐいことになってますね
– flake8とblackを内包したオールインワンライブラリ
– モノレポフレンドリー
– 各階層の設定ファイルが参照される

今回はpoetryとRuffを組み合わせてpythonのフォーマットとリントを試してみようと思います!
GithubActionsのテンプレートも作成します!:fire:

## 1. Install

https://docs.astral.sh/ruff/installation/

今回はMacで構築します。
公式ではpipで入れてますが、せっかくなのでasdf + poetryで構築します!

### 1. asdf

今回はasdf経由でpoetryをinstallするのでasdfを入れます。

https://qiita.com/ysmb-wtsg/items/ec5f

元記事を表示

(ABC368)C – Triple Attack と pop vs pointerの速度の話

## はじめに
ABC368のC問題です。
またしてもTLE(実行時間制限超過)が発生させて
ハマった話です。

https://atcoder.jp/contests/abc368/tasks/abc368_c

## 自分の回答(1回目)

“`py:ABC368_C_1.py
N = int(input())
E = list(map(int,input().split()))
T = 0
while E:
while E[0] > 0:
if E[0] >= 5:
T += 3
E[0] -= 5
else:
T += 1
if T % 3 == 0:
E[0] -= 3
else:
E[0] -= 1
E.pop(0)

print(T)
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/296985/6e934426-b779-30df-ac78-e6b0

元記事を表示

ガチ初心者のためのPythonチュートリアル ~AI・データサイエンティストへの第一歩~

# この記事のゴール
– Pythonについて理解する
– Pythonのインストール方法が分かる
– Pythonの実行環境の構築方法が分かる
– Pythonの便利機能について理解する

この記事を読めば,Pythonを使うメリットや実際に使うときのイメージが湧きやすいと思います!!
また,チュートリアル用の実践コードは以下を参照してください
(現在作成中,後日掲載予定)

尚,本記事では,[VSCode(Visual Studio Code)](https://code.visualstudio.com/download)を入れている前提で進めます.
開発は基本このVSCodeを使うので,インストールがまだの方は以下の記事を参照して,今すぐ入れてください!!
[初心者にもわかる「VSCode」の導入から基本操作まで解説](https://envader.plus/article/118)

# Pythonとは
**AI,機械学習**や**データ分析**,Web開発など、**Python**はさまざまな分野に使える汎用性の高い言語です。
特に「第3次AIブーム」に位置付けられて

元記事を表示

【Pythonの環境変えた話(25分でできたー)】Anacondaからpyenv + venv + pip

# Anaconda -> pyenv + venv + pip
Pythonの環境変えた話書くので参考になるところがあればうれしいです。(自分はWindowsなのでMac使ってる人には参考にならないかもしれない🙇)

## 動機
「大学の授業でPython使うからAnaconda入れといてね~」となって以降、そのまま約2年anacondaでPythonを使っていました。

ライブラリをインストールする際も「pip install ‘ライブラリ名’」のpipをcondaに変えるだけなので当初は不便に感じなかったのですが、たまにcondaではインストールができないものがあったり、その際に入れる方法を調べて下の例のようなコマンドに変更しなければいけなかったりでイライラさせられることが多かったため乗り換えを決意しました。
例:
“`shell
# yfinanceを入れるのに必要なコマンド
conda install conda-forge::yfinance
“`

(Anacondaでもpipは使えるっちゃ使えるのだが、依存関係の問題でクラッシュする恐れがあるらしい。怖い…)

元記事を表示

Python Pandasを使った時系列データの移動平均計算: 実装と分析技法

## はじめに

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/3822dd41-e2d6-c576-8b9d-c142684a739d.png)

時系列データの分析は、ビジネス、金融、科学研究など、様々な分野で重要な役割を果たしています。その中でも、移動平均は最も基本的かつ強力なツールの一つです。この記事では、Pandasを使用した移動平均の計算と可視化について、基礎から応用まで幅広く解説します。

### この記事を読むメリット

1. **実践的なデータ分析スキルの向上**: 単純な移動平均から適応型移動平均まで、様々な手法の実装方法を学べます。これらのスキルは、株価予測、需要予測、センサーデータの分析など、実務で即座に活用できます。

2. **効率的なコード設計とパフォーマンス最適化**: 大規模データセットの処理技術や、再利用性の高いコード設計について学べます。これにより、より効率的で保守性の高い分析プログラムを作成できるようになります。

3. **分析手

元記事を表示

ロボットアームのゲームです。

https://qiita.com/tetsutakamurata76/items/449c6f3f2086a963b041

GPT-2: ロボットエンジニアリング。3軸ロボットアームシミュレーションのゲームです。ロボットの制御は、ロボットがロボットを動かすための制御機構ですが、その制御をロボットに命令するのではなく、制御するロボットを制御するために、コンピュータがプログラムを実行します。 プログラムはプログラムの実行結果をコンピュータに送信し、プログラムが実行された結果がコンピュータのプログラムに送られます。プログラムを実行するロボットはロボット制御プログラム(プログラム制御)をプログラム実行プログラムとして実行しています。 このプログラムでは、プログラミングの知識がなくても、簡単にロボットを動かせますし、「ロボットプログラミング」というと、難しいイメージがありますが、「プログラミングを学ぼう」と思えば、誰でも簡単に学べるので、初心者でも安心ですね。

![スクリーンショット 2024-09-06 220116.png](https://qiita-image-store

元記事を表示

外接円の半径「高校入試チャレンジ問題 円Oの面積を求めよ(中学生の力で)」をsympyとFreeCADでやってみたい。

・問題文は2次元ですが、3次元FreeCADのマクロで、XY平面上に作図しました。
**・やっていて、何をやっているか、わからかくなりました。**

# オリジナル
・YUUU0123 様 (0:00〜4:01)

# sympyで(オリジナル 様の方法を参考に)
・解説を聞いていると、正弦定理の証明のような。気のせい???
#### ver0.1 >1:2:√3 なので…
“`python
# ver0.1 >1:2:√3 なので…
from sympy import *
AB,BC=2,7
BD=AB*Rational(1,2)
AD=BD*sqrt(3)
DC=BC-BD
AC=sqrt(AD**2+DC**2) ;print(“#”,AC)
l =AC/AD*2 ;print(“#”,l)
r =l/2 ;print(“#”,r)
print(“#”,pi*r**2)
# sqrt(39)
# 2*sqrt(13)
# sqrt(13)
# 13*pi

元記事を表示

OTHERカテゴリの最新記事