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

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

Pythonで愛媛県感染症情報センターの新型コロナウイルスの患者報告数の週推移を取得する

https://www.pref.ehime.jp/site/kanjyo/39800.html

愛媛県感染症情報センターの新型コロナウイルス・インフルエンザの患者報告数の週推移を取得する

シンプルな表なのでpandasのread_htmlで変換

“`python
import pandas as pd

url = “https://www.pref.ehime.jp/site/kanjyo/39800.html”

df = pd.read_html(url, match=”患者報告数の週推移”)[0]
df
“`

結果を確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36151/329f8d13-e635-f32d-2f37-64c965858c97.png)

なぜか保健所名、保健所名.1、保健所名.2と月が複数回表示される

ブラウザで確認すると
![image.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

ローカルでMD5つけてからAWSコンソールでアップしてみる

“`python
import json
import hashlib

def calculate_md5(file_path):
“””ファイルのMD5ハッシュを計算する”””
hash_md5 = hashlib.md5()
with open(file_path, “rb”) as f:
for chunk in iter(lambda: f.read(4096), b””):
hash_md5.update(chunk)
return hash_md5.hexdigest()

def add_md5_to_json(json_file_path, md5_value):
“””JSONファイルにMD5ハッシュ値を追加する”””
with open(json_file_path, ‘r’) as f:
data = json.load(f)

data[“x-amz-meta-md5”] = md5_value

with open(jso

元記事を表示

自宅環境でLLM(Youri 7B Instruction GPTQ)使ってみた

## はじめに
こんにちは。@ken101と申します。

最近Sakana AIが話題ですね。
LLMを触ってみたくなりましたが、どうも自分のPCでは処理速度に問題があったため、
日本語に対応且つ軽そうなLLMを探しておりました。
LLM(Youri 7B Instruction GPTQ)というモデルを見つけたのでこちらで試してみます。

## 目的
昔OpenAI Apiを利用したvoice to voice のchatbotを作成し満足していたが、
応答テキスト作成の時間がボトルネックになっており、もっと高速化できないかと考えていた。
ローカル環境内ですべて完結させれば早いのではないかと考え実行。

## 環境
OS: WSL Ubuntu22.04LTS
GPU: RTX 4060Ti
メモリ 32GB

model: Youri 7B Instruction GPTQ

## まずは開発してみる
下記サンプルから適当に編集
https://huggingface.co/rinna/youri-7b

“`
import torch
import logging
import

元記事を表示

polarsでLazyFrameからピボットテーブルを作る方法とその速度比較

# polarsでLazyFrameからピボットテーブルを作る方法とその速度比較

ピボットテーブルを作る(ここではクロス集計をするという意味)際、`pl.DataFrame`には`.pivot()`メソッドがあるが、`pl.LazyFrame`には用意されていない。ではどのようにすればよいのだろうか。

ここでは簡単な例を用意して、いくつか方法を考案し、速度を比較してみたい。

## 例題

次のようなデータがあるとしよう。

“`python:元データの例
import numpy as np
import polars as pl

rng = np.random.default_rng(42)
df = pl.DataFrame(
{
“upper”: rng.choice(list(“ABC”), 10),
“lower”: rng.choice(list(“abc”), 10),
“value”: rng.integers(0, 5, 10),
}
)

print(df)
# shape: (10, 3)

元記事を表示

controlnet inpaintで画像の一部を入れ替えたり、表情を変えたり、描き加えて拡張したり

この記事はdiffusers(Stable Diffusion)の**controlnet inpaint**機能を使って既存の画像に色んな加工をする方法について説明します。

# inpaintとは

**インペイント**(**inpaint**)というのは画像の一部を修正することです。これはStable Diffusionだけの用語ではなく、opencvなど従来の画像編集ライブラリーや他の生成AIもインペイント機能を持っています。

Stable Diffusionでinpaintをする方法は主に2つに分けられています。
– (従来の)inpaintを使う
– controlnet inpaintを使う

従来のinpaintについてはこの前の記事の最後の部分で説明しました。

https://qiita.com/phyblas/items/eed011fd01f5afd0f759

しかしそこに書いた通り、あまり使い物にならなくて使うのを諦めました。

それに対しcontrolnet inpaintはかなり使い勝手がよくて凄いものです。だから今回の記事でcontrolnet i

元記事を表示

Pythonで親ディレクトリのモジュールをimportする

# ディレクトリ構成

“`
parentdir
+-upper.py
+-subdir
+-lower.py
“`

“`upper.py
def upper_method():
print(“Upper method”)
“`

“`lower.py
import sys
import os

# このlower.pyがあるディレクトリ(subdir)
current = os.path.dirname(os.path.realpath(__file__))
print(f'{current=}’)

# このlower.pyがあるディレクトリの親ディレクトリ(parentdir)
parent = os.path.dirname(current)
print(f'{parent=}’)

# その親ディレクトリをsys.pathに追加
sys.path.append(parent)

# これで親ディレクトリのモジュールがimportできる
import upper

upper.upper_method()
“`

# 実行結果
“`
pyt

元記事を表示

Workatoで長時間実行アクションを使わずに一定時間待つ方法

# はじめに

[こちらの記事](https://qiita.com/ykkoba/items/884c683f96e7f0b7134f)では、Workato の長時間実行アクション(Long Actions)には注意点があることをお伝えしました。

Workato には一定時間待つアクションが [scheduler by Workato] コネクターの [Wait for time duration] アクションとして用意されていますが、こちらは長時間実行アクションになっています。

単一のステップでは 90 秒でタイムアウトが発生するため、それ以上の時間に対応するためですが、待つ必要のある時間が 1 分程度の場合に長時間実行アクションの制限を回避する方法はないでしょうか?

# 実現方法

Python コネクターを利用することで、長時間実行アクションを使用せずに実現が可能です。

Ruby や JavaScript でも類似の機能は実現可能ですが、これらのコネクターはタイムアウト時間が 30 秒と通常のアクションより短いため、今回の用途では、タイムアウト時間が通常のアクションと同

元記事を表示

データから作成した確率密度関数におけるエラーバーの作り方

## データからの確率密度関数の作成方法

データから確率密度関数$f$を作成する際のプロセスを振り返る。データを$\\{ x_j; j = 1, 2, \cdots, n \\}$とし、データがサンプルされてきた確率変数を$X$と記す。

1. bin $b_0 < b_1 < \cdots < b_i < b_{i+1} < \cdots$を決める 2. binの各区間$[b_i, b_{i+1})$に入るデータ点の個数を数える: $\\# \\{ j; b_i \leq x_j < b_{i+1} \\} = n_i$ 3. 個数を全データの個数で割り、そのbinの区間に入る確率を求める: $p(b_i \leq X < b_{i+1}) \approx \frac{n_i}{n}$ 4. 確率をbin幅で割ることによって確率密度にする: $f_i \equiv f(\frac{b_i+b_{i+1}}{2}) \approx \frac{p(b_i \leq X < b_{i+1})}{b_{i+1}-b_i}$ このようにしてpdfを作ると次を満たす。 $$ \sum_{i

元記事を表示

Pythonの力を借りて、ComputerCraft (CC:Tweaked) でネット上の画像を表示する

![mc.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310556/43b1022b-1d22-ba62-6bb0-cabcbac06dfd.gif)
(表示されているのは音楽ゲーム『CHUNITHM』の楽曲『World Vanquisher』のジャケット画像です)

## おことわり
本記事で使用しているMinecraftのMODは『CC:Tweaked』です。これはComputerCraftを元のMODとは別の作者がMinecraft 1.12.2以降に対応させた別物ではあるのですが、高度な互換性がありほとんど同じものと言っても過言ではないので、本記事内では一貫して『ComputerCraft』と呼ばせていただきます。

本記事で使用しているMinecraftは1.20.1、CC:Tweakedのバージョンは1.111.0です。

## 概要
Pythonで画像加工のAPIを作り、それをComputerCraftのHTTP APIを利用して引っ張ってきています。
画像加工自体はComputerCr

元記事を表示

統計学メモ

“`
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# サンプルデータ
data = [1, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 8, 9, 9]

# 度数分布を計算
frequency_distribution = pd.Series(data).value_counts().sort_index()

# 相対度数分布を計算
relative_frequency_distribution = frequency_distribution / len(data)

# 累積度数分布を計算
cumulative_frequency_distribution = frequency_distribution.cumsum()

# 累積相対度数分布を計算
cumulative_relative_frequency_distribution = relative_frequency_distribution.cumsum()

元記事を表示

変数・値・参照・代入

# これは何?

変数ってなに? という話。
値なのか、参照なのか、代入したらどうなるのか、とか。そのあたり。

# いくつかの言語の事例

いくつかの言語の事例を書いてみる。

## C言語の場合

C 言語の変数は(概念としては)型が付与された一連のメモリである。この文脈ではオブジェクトと言ってもいい。
変数の型が決まれば、バイト数が決まる。

オブジェクトの正体は、構造体かもしれないし、ポインタかもしれない。

「概念としては」と書いたのは、コンパイルの結果その変数自体が消滅したり、いろいろあり得るから。

C言語では、同じ「一連のメモリ」を別の変数が直接指すということはできない。そうしたければポインタを使う。
あるいは `union` を使えば異なるメンバが同じ「一連のメモリ」を指すことが出来る。

Pascal なんかも同じだと思う。

“`C:C
a=b;
“`

という代入文は、暗黙の型変換が入らない場合「b が指す一連のメモリを a が指す一連のメモリにコピーする」という意味になる。
つまり、代入が行われても依然として a は b と別のもの(アドレスが異なる)であ

元記事を表示

Django Rest Framework VS Code おすすめ拡張機能

# 概要
本記事では、Django Rest Frameworkで開発を行う上で、おすすめの拡張機能を紹介する

# 拡張機能一覧

| 拡張機能名 | 作成者 |
| —- | —- |
| [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) | Don Jayamanne |
| [Django](https://marketplace.visualstudio.com/items?itemName=batisteo.vscode-django) | Baptiste Darthenay |
| [Django Template](https://marketplace.visualstudio.com/items?itemName=bibhasdn.django-html) | bibhasdn |
| [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.

元記事を表示

macでのpyenvインストール

# 概要
本記事では、macでのPyenvインストールから、Pythonのインストールまで行う

## pyenvのインストール
“`
~ % brew install pyenv
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/manifests/2.4.8
######################################################################### 100.0%
==> Fetching pyenv
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/blobs/sha256:45459a58894d
######################################################################### 100.0%
==> Pouring pyenv–2.4.8.arm64_sonoma.bottle.tar.gz
🍺 /opt/homebrew/Cellar

元記事を表示

将棋の駒の画像分類アプリ

# はじめに
はじめまして。
私は大学で統計学やデータサイエンスを専攻しており、Rという統計向きのプログラミング言語を使って学習しておりました。社会人になってからはエンジニアとして主にjavaを用いて開発をしております(2024年7月時点)。
AIがここ数年で凄まじい発展を遂げる中で興味が再燃し、転職やスキルアップを目指してオンラインスクール[「Aidemy」](https://aidemy.net/)の「AIアプリ開発講座」に通い始めました。

:::note info
このブログはAidemy Premiumの講座カリキュラムの一環である、受講修了条件を満たすために作成した成果物について記載しています。
:::

# 目次
学習モデルについて
実行環境
学習データの準備
モデルの作成
モデルの評価
webアプリ作成
終わりに

# 学習モデルについて
私が趣味で将棋をやっていることから、将棋の駒の画像分類モデルを作成したいと思いました。
技術としてはすでにHEROZ株式会社の[「棋神アナリティクス」](https://heroz.co.jp/release/2023/11/16_p

元記事を表示

麻雀AIプログラミングを行う際に有用となるサイト

### 概要
麻雀AIプログラムを作成する際に有用となるサイトの紹介。

### 麻雀AI対戦サーバ「Mjai」
rubyで作成された麻雀AI対戦用サーバ。
Socketで接続を行い、jsonデータを送信する。
* 仕様
* プログラミング言語:Ruby
* 接続方式:socket
* 公開サイト:[Mjai 麻雀AI対戦サーバ – namespace gimite](https://gimite.net/pukiwiki/index.php?Mjai%20%E9%BA%BB%E9%9B%80AI%E5%AF%BE%E6%88%A6%E3%82%B5%E3%83%BC%E3%83%90)
* インストール手順:[麻雀AI対戦サーバMjaiのインストール](https://qiita.com/techmilestone/items/06a273f85763f8a87428)

### 公開対戦サイト「RiichiLab」
公開サイトでプログラムをアップロードすることで公開対決が可能。
* 仕様
* プログラミング:Python
* 接続方式

元記事を表示

モーニングコーヒー中に学ぶDjangoで使う基本コマンドとデータ作成

「モーニングコーヒー中にDjangoについて勉強したいな…」

そんな風に思うことあると思います。

この記事では、Djangoについてよく使う基本的なコマンドとマイグレーション、テストデータ作成について説明します。

モーニングコーヒーの時間を有効活用して、Djangoについて詳しくなっていきましょう。

# Djangoのプロジェクトで仮想環境〜Djangoプロジェクト作成まで

まずは作業用のディレクトリを作成する

“`$ mkdir djnago_blog“`

“`$ cd djnago_blog“`

### 仮想環境の構築

“`$ python3 -m pip install pipenv“`

### 仮想環境に入る

“`$ pipenv shell“`

仮想環境に入ると以下のようになります。

“`(blog) ….blog $ “`

### djangoのインストール

“`$ python3 -m pip install Django“`

### djangoプロジェクトの作成

“`$ django-admin startp

元記事を表示

Xの長さと長方形の面積「数学 長方形の面積 問題」をsympyとFreeCADでやってみたい。

・**「相似」と「一般化」の勉強中です。**(2024/07/22)
・座標変換(回転)を使わなくても。錯角???を利用。

# オリジナル
・数がくラブ 様 (0:00〜7:49)
>ちなみに私は学校では習わない事を含めた…

# sympyで
**ver0.1 CAD風に。右上の三角形から下方向に順に。片押しで?**
・CADなら速攻?
・オリジナル 様と違う補助線?
???良さそうなDOCを探しています。
https://docs.sympy.org/latest/modules/geometry/lines.html#sympy.geometry.line.Ray2D.closing_angle
“`python
# ver0.1 CAD風に。右上の三角形から下方向に順に。片押しで?
from sympy import *
var(‘X’,real=True,poitive=True)
A,E=map(Point,[(-28,0),(0,-4)])
X=abs(Line(E,E+(A-E).rotate(rad

元記事を表示

「sympyのTriangleで、三角形に三角形を追加した。」自作プログラムmyTr02

・いつかは、作ってみたかった関数。
・tr1の[0]と[2]に、tr2を連結しています。(結局? tr1の[1]は、使っていません。)
・**2点に三角形をとりつけただけじゃないの?**
 **直線上に三角形をとりつけただけじゃないの?**
 **その通りです。** 三角形に三角形を連結と言えば、高級に聞こえるかも。
 keywordが使えるという事で。

# myTr02の使い方
・右上、tr1の[1]と[2]に、tr2を連結したい時、引数の順番をずらす。

# sympyで
・直角三角形を2個組み合わせて、長方形をつくった。
class sympy.geometry.polygon.Triangle(*args, **kwargs)
https://docs.sympy.org/latest/modules/geometry/polygons.html#sympy.geometry.polygon.Triangle
“`python
from sympy import *
var(‘X’,real=True,poitive=True)
def myMatrixToPoint(m

元記事を表示

Pythonでのバイトデータ処理: struct.packとstruct.unpackの使い方

## はじめに
Pythonの`struct`モジュールは、バイトデータを扱う際に便利です。特に、C言語の構造体(struct)のようにデータをバイト列としてパック(pack)したり、バイト列からアンパック(unpack)したりする機能を提供します。

## structモジュールの概要

`struct`モジュールは、主に以下の2つの関数を提供します:
– `struct.pack()`: データをバイト列に変換(パック)
– `struct.unpack()`: バイト列からデータを取り出す(アンパック)

## 基本的な使い方

### struct.packの使い方

`struct.pack`は、指定したフォーマットに従ってデータをバイト列に変換します。

“`python
import struct

# 整数2つをバイト列にパック
packed_data = struct.pack(‘ii’, 1, 2)
print(packed_data) # b’\x01\x00\x00\x00\x02\x00\x00\x00′
“`

ここで、`’ii’`はフォーマット文字列

元記事を表示

炎の揺らぎ(1/f)をデジタル実装する

# はじめに

炎のゆらぎを始めとして,自然界に多く存在するといわれる1/fゆらぎをデジタル上で再現します.今回は実際にLEDを光らせて,1/fゆらぎを表現します.

![無題の動画 ‐ Clipchampで作成.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459012/7927b405-f4c4-091f-9253-9730dc557174.gif)

# 1/fゆらぎとは

1/fゆらぎの正体とは,-10dB/decつまり周波数がパワースペクトルを持つノイズのことです.ピンクノイズとも呼ばれたりします.
一方ホワイトノイズ(一様乱数)は,周波数に依らず一様のパワーを持っています.
![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459012/2eb40af2-8699-6c13-7ce4-8a8e65a343ad.png)

# 1/fゆらぎの生成方法

ホワイトノイズを生成するライブラリは多く

元記事を表示

OTHERカテゴリの最新記事