Python関連のことを調べてみた2023年10月01日

Python関連のことを調べてみた2023年10月01日

FastAPI + sqlalchemy + MySQLで主キーがUUIDのテーブルを作り自動テストをするまで

下記の構成でAPIとDBをローカル環境に構築。
UUIDの設定とテストに若干苦戦したので、備忘のため記録。

– OS: Windows11
– パッケージ管理: pipenv
– Python: 3.11
– フレームワーク: FastApi
– ORマッパー: sqlalchemy
– DBMS: MySQL8.0
– テストツール: pytest

DBはDockerコンテナで作成します。

## フォルダ構成

“`
.
├── $HOME
├── Pipfile
├── Pipfile.lock
├── app
│ ├── README.md
│ ├── __init__.py
│ ├── database.py
│ ├── main.py
│ └── models.py
├── compose.yml
└── test
├── __init__.py
├── test_data.py
└── test_main.py
“`

## 仮想環境

pipfileがこちら
“`
[[source]]
url = “https:/

元記事を表示

【Docker】入門:pythonが実行できるubuntuのコンテナを作成し、Dockerhubにpull

# はじめに
UdemyでDockerの学習を進めている最中で、途中経過をアウトプットしたいと考えています。
今回は、
1. ubuntuのコンテナを起動し
2. pythonをインストール
3. コンテナをイメージに保存してDockerHubにpushする

ことをやっていきたいと思います。

# 環境
– Windows10
– Docker version 24.0.6

# 1.コンテナを起動
以下のコマンドでubuntuのコンテナを起動します。
“`cmd
>docker run –name ubuntu-python -it ubuntu bash
“`
# 2.pythonをインストール
apt-getのアップデートをします。 “`apt-get update“`
“`terminal
root@[id]:/# apt-get update
“`
“`terminal
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
.
.
Get:18 http://arc

元記事を表示

農業のデータを日本地図で可視化してみた 〜九州編〜

# はじめに
前回、区域データと福岡県の農業データから日本地図上に農業産出額を可視化できるコードを展開しました。
前回の記事はコチラ?

https://qiita.com/wooooo/items/af87e8c2a19cfafba829

今回は九州6県上にデータ可視化できるコードをご紹介します。
(沖縄は表示の関係で対象外としました)

# 使った環境
+ 国土数値情報(国土交通省)
https://nlftp.mlit.go.jp/ksj/
このサイトでは市町村のプロットのためにgeojsonファイルを使用しています

+ 農林水産省-統計情報
https://www.maff.go.jp/j/tokei/index.html
このサイトでは農業の各種データのあるCSVファイルを使用しています

# 環境
“`
Python 3.11.5
pandas 2.1.0
numpy 1.26.0
folium 0.14.0
geopandas 0.14.0⭐️
“`
今回はgeopandasを使用しています。

# 環境構築
“`shell
pip install panda

元記事を表示

Pythonのfoliumで簡単に地理情報を可視化できる

Pythonで地理情報を可視化できるfoliumというライブラリを見つけたので、ざっくりと使い方をまとめます。

# 実行環境

– Python 3.9.13
– macOS 12.6.8

# データの準備

最近暑かったので今回は気象庁の気温データを可視化してみます。

– 気温データ

気象庁([https://www.data.jma.go.jp/gmd/risk/obsdl/index.php:title])から各都道府県庁所在地の最高気温をとってきて↓みたいな感じに整形しておきます。

`kion.csv`

| | 北海道 | 青森県 | 岩手県 | … | 宮崎県 | 鹿児島県 | 沖縄県 |
| —- | —- | —- | —- | —- | —- | —- | —- |
| 2023/6/1 | 24.7 | 26.5 | 24.1 | … | 21.1 | 24.4 | 26.6 |
| 2023/6/2 | 21.9 | 20.0 | 19.3 | … | 23.4 | 27.9 | 26.5 |
| … |

元記事を表示

dockerで機械学習書籍・ソースM2:macOS確認中。

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

dockerの動作確認。新たな課題があれば記録。記事の誤植訂正を行う。

||title url|q:views|q:goods|q:stocks|docker|d:star|d:down|
|:–|:–|:–|:–|:–|:–|:–|:–|
|1|「ゼロから作るDeep Learning – Pythonで学ぶディープラーニングの理論と実装」斎藤 康毅 著。dockerで機械学習 with anaconda(1) https://qiita.com/kaizen_nagoya/items/a7e94ef6dca128d035ab|5969|4|15|https://hub.docker.com/repository/docker/kaizenjapan/anaconda-deep-1/|0|141|
|2|dockerで機械学習(2)with anaconda(2)「ゼロから

元記事を表示

[004] Pythonの環境を選ぶ

# Pythonを使う目的
関数電卓,Excel,Scilabなどのツール類をPythonに統合したい.
非情報系のエンジニアなので,開発環境の構築等にはあまりこだわらない.
まずはサクッと使える環境として良さそうなものを選ぶ.

# 環境候補
+ Anaconda & Jyupiter lab
+ Python標準インストール & Jyupiter lab
+ Google colab

# 結論

自分で必要なパッケージを都度インストールしたいという欲求があるので,Python標準インストール & Jyupiter labに決定.Google colabも便利だと思うので,サブマシンなんかで併用することにした.

## 追記
プロジェクトごとに仮想環境を作って動かすほうが良さそうな気はしている.
実際に問題に直面するまではローカル環境で動かしていくことにする.

元記事を表示

ABC322回答メモ

0.はじめに
 久々に、A~Cを快調にクリアでき、1時間以上のこしてDに。
 でもD問題は複雑で、実装は全然間に合わず、結局
 3問でフィニッシュ。
 3問解くスピードはそこそこだったためか、レートは11あがり
 700台に復帰できました。

1.A – First ABC 2
 単純にループしていき、文字列Sの[i:i+3]がABCならi+1を出力し
 終了。最後まで一致しなかったら-1を出力して終了

 https://atcoder.jp/contests/abc322/submissions/46061289

2.B – Prefix and Suffix
 Tをスライスして、先頭N文字・末尾N文字をSと比較して
 出力条件ごとの判定をして出力して終了

 https://atcoder.jp/contests/abc322/submissions/46068301

3.C – Festival
 解説を読むと自分の実装と若干違いました。
  ・変数N,MとリストAを読み込む
  ・変数pを0で初期化
  ・ループを、iが1~Nを取るようにまわす
   ・i日目の値としA[

元記事を表示

Deployment ManagerでPythonを使ってデプロイする

# 構成ファイルを作成する
deploy.yml、vm-python-template.py、parameter.pyを作成します。
以下の内容をそれぞれのファイルに記述してください。
“`yaml:deploy.yml
imports:
– path: vm-python-template.py
– path: parameter.py

resources:
– name: python-template
type: parameter.py
“`
“`python:vm-python-template.py
def GenerateConfig(context):
resources = [{
‘name’: context.properties[‘name’],
‘type’: ‘compute.v1.instance’,
‘properties’: {
‘zone’: context.properties[‘zone’],
‘machineType’: ”.join([‘zones/’

元記事を表示

Amazon Bedrockを使って、マルチモーダルっぽいAIと対話するコードを書いてみた

# 概要
[前回](https://qiita.com/hamanuman/items/0b60fddb6da3bd553bac)[記事](https://qiita.com/hamanuman/items/7de7a46bff390b15dfa8)で、Amazon BedrockのAPIをpythonから実行してみた
通常のチャットモデルClaude2と画像生成AI StableDiffusionの呼び出しを組み合わせて、チャットの中でユーザが画像がほい場合にStableDiffusionにデータを送るコードを書いてみた
多分、StableDiffusionに投げるかもCloude2に判定してもらった方がいいかも

# コード
“` invoke_multimodel.py
import boto3
import json
import base64
import sys
from datetime import datetime

sample_prompt = “A photograph of an dog on the top of a mountain covered in

元記事を表示

boto3 でAmazon Bedrock経由でStable Diffusionを叩いて、画像を保存する

# 何の記事?
– 2023/09/28にGAになったAmazon Bedrockに遅れて、boto3(python のAWS SDK)が対応した
ので、boto3経由で叩く
の続き
– 記事タイトルの通り

# IAM Policy
– RecouseのARNはAPIサンプルのモデルIDがわかればOK
– モデルIDは、モデルのページ(例えば[ここ](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/providers?model=claude-v2))に記載されている、APIRequestのmodelIdと一致する
“` policy.json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
“Action”: [
“be

元記事を表示

boto3 で Amazon Bedrock を叩く on Docker

## 何の記事?
– 2023/09/28にGAになったAmazon Bedrockに遅れて、boto3(python のAWS SDK)が対応した
ので、boto3経由で叩く
– あまりまとまった情報がなかったぽい、IAM ポリシーについて記載する
(モデルのARNがパッとわからなかった)

## 前提
– Amazon bedrockのサービスで利用するモデルのアクセス申請を行い、利用可能状態にしておく
 やりたかは[こちら](https://qiita.com/hamanuman/items/771ad6e3a205be1896f8)を参照
– 手元のPyhon/boto3を気軽にバージョンアップできないため、コンテナを作成して環境を作る
– コンテナにCoredntialファイルを渡すため、念の為新しいbedrock用のポリシーをもったCredentialを用意する

## Amazon Bedrock利用可能なPolicyの作成
– 2023/10/1 時点で、AWS Managedのいい感じのPolicyがなかったため、自身で作成する
– 今回利用するのはとりあえず

元記事を表示

k近傍法(kNN)でモデルの適用範囲(AD)を評価する!

# はじめに
k近傍法を用いたモデルの適用範囲評価について解説していきます。

# k近傍法とは?
– k近傍法(**k-NN**:kNearest Neighbors algotithm)はデータ密度を計算する手法
– あるサンプルに対してデータセットの中から最も距離が近いサンプルk個を選択してその平均距離を算出
– 距離の平均値が小さいほどデータの密度が高いと考える
– この手法を選択することでデータの密度で評価できるので、データ分布が複数に分かれている場合でも適切にAD(Applicability Domain)を設定できる

# k近傍方を用いたモデルの適用範囲の決定方法
– トレーニングデータで平均距離が小さい順にサンプルを並べる
– しきい値を上位●%と定め、その平均距離より大きいサンプルはデータの密度が小さくAD外と見なす
– 例えばトレーニングデータが100個あって上位80%のサンプルの平均距離を10とした際には、平均距離が10以下のサンプルはAD内と見なす

# k近傍法の実装
“`python
#ライブラリのインポート

元記事を表示

ABC322をPythonで(A~E)

AtCoder Beginner Contest 322
https://atcoder.jp/contests/abc322
# A問題
全探索をする
“`python:A
n = int(input())
s = input()

for i in range(n – 2):
if s[i:i+3] == “ABC”:
print(i + 1)
exit()

print(-1)
“`
# B問題
接頭辞が違ったら答えに+2
接尾辞が違ったら答えに+1
“`python:B
n, m = map(int, input().split())
s = input()
t = input()

f1 = s == t[:n]
f2 = s == t[-n:]

ans = 0
if not f1:ans += 2
if not f2:ans += 1
print(ans)
“`
# C問題
最終日から数えていくとよい
花火を打ち上げる日をsetで管理するとやりやすい
“`python:C
n, m = map(int, input().s

元記事を表示

BuildozerファイルをカスタマイズしてAndroidアプリのアイコンを変える。

# はじめに
 Python+Kivy+BuildozerでAndroidアプリを作ることができる。ただ、Buildozerをデフォルト設定でビルドするとアイコンがKivyのマークになる。この記事では、自作のアイコンへ変更する方法についてまとめる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1299802/8c70d61c-a8a2-00c7-5d3c-07a3341dd638.png)

PythonでAndroidアプリを作る方法は下記参照。

https://qiita.com/tapitapi/items/e91d67d59ed10caa59f6

# Buildozer.specをカスタマイズしてアイコン変更
 アイコン含めBuildozerの設定は、“`buildozer init“`で生成される“`buildozer.spec“`ファイルを変更することでできる。アイコン変更は“`icon.filname“`を有効にすればOK。
 “`%(source.

元記事を表示

積分方程式(定数型)「2009 奈良教育大学前期【3】」をChatGPTとWolframAlphaとsympyでやってみたい。

・次のリンクで積分方程式をまとめています。ガンバリマス。
 (本ページは,**モトネタ**です。)
https://qiita.com/mrrclb48z/items/d05574b3c60327e96ab2#fxgx%CE%BBintegratehtfttab
・**WolframAlpha先生**が、
「Solution as a Fredholm integral equation」**Fredholm?** とおっしゃています。
 matahematicaを調べる必要がありそうです。

オリジナル

https://mathmathmass.exblog.jp/33461892/

上と同じです。大学入試数学問題集成 様>テキスト【3】

https://mathexamtest.web.fc2.com/2009/200910621/2009106210100mj.html#top-0103

# ChatGPT-3.5先生へ(**???私の方が、わからなくなってきました。???**)
入力文(一括です。)
“`
次の等式を満たす関数f(x)を求めよ.
f(x)=cos(x)

元記事を表示

(途中)定数型のみ「積分方程式(英:Integral equation)」を調べました。sympyで

記事タイトルを変更する予定です。

**パイソニスタの方へ**
・多項式を+で分割する方法を教えて下さい。(ソースコード参照)
 現在.関数の引数の分割?にしています。
・被積分関数の中にxがある。h(t)→h(x,t)の場合。
 アドバイスを頂けると助かります。

# DOC

https://ja.wikipedia.org/wiki/積分方程式

https://en.wikipedia.org/wiki/Integral_equation

>高校数学で登場する積分方程式には,大きく以下の**2種類**があります:
>定数型:積分区間に変数を含まない
>変数型:積分区間に変数を含む

https://manabitimes.jp/math/1895

# 定数型:
## f(x)=g(x)+λ*integrate(h(t)*f(t),(t,a,b))
・過去問2問で、sympyのプログラムを実行しました。
 似ていると思いました。
 **T氏の数学日記 様の 奈良教育大学2009年第3問**
 **数学ⅲ チェック&リピート 様の類題演習(23 山梨大 工1(3))**
・ T

元記事を表示

最新の「デジタルビジネス」に関する情報をお届け

Brand New Biz | デジタルビジネス最新情報メディア

https://brandnewbiz.net/

最新の「デジタルビジネス」に関する情報をお届けするWebメディア【Brand New Biz 】。AI、IoT、デジタルマーケティング、サステナビリティ、ウェルビーイング、DXなどの情報を【海辺の部屋】がお届けします。

著者名:【海辺の部屋】メディアチーム


【海辺の部屋】は経済産業省から「IT専門家」の認定を受け、40社以上から業務を依頼されてきた『デジタルマーケティング』のスペシャリストです。高い倫理観を持ったデータ活用、個人情報の適切な管理、サステナビリティを重視した「人に優しい世界」を目指しています。『マーケティングは愛である』をモットーにしています♪


【資格等】:NewsPicksビジネスエキスパート、中小企業デジタル化応援隊、介護職初任者研修、日本医療事務協会認定保険請求技能検定試験、JASRAC会員、診療報酬請求事務能力認定試験

<カテゴリー>

・DX
https://brandnewbiz.net/?cat=3

・SNS
https:/

元記事を表示

Pythonでバーコードの生成と認識

# 開発環境
– Mac OS X
– Python 3.11.5

# zbar library インストール
“`bash
% brew install zbar
“`

# python仮想環境作成

“`bash
% python3 -m venv venv
“`

“`
% tree -L 2
.
└── venv
├── bin
├── include
├── lib
└── pyvenv.cfg

“`

仮想環境のアクティベート
“`
% . venv/bin/activate
“`

# python lib インストール
“`bash
% pip install pystrich
% pip install pyzbar
“`

“` bash
% pip list
Package Version
———- ——-
Pillow 10.0.1
pip 23.2.1
pyStrich 0.8
pyzbar 0.1.9
setuptools 68.1.2

元記事を表示

PythonからArduinoの点灯を試してみた

概要
=
Pythonで画像認識した結果をCANで別のツールに伝えるためにPySerialを使いたく、試しにArduinoとのシリアル通信を実験した結果をメモした。
ここの実験内容:Jupyterから1のbyte情報をArduinoに送り、Arduinoがそれを受け取りLEDを点灯する

Auduino側
=
![スクリーンショット 2023-09-30 122230.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3181208/c2f56d59-04ac-0591-89e9-a34cb334dc10.png)

~~~~~~~~~~~~~~~~~serial.c
#define LED_PIN 8

//シリアル通信(PC⇔Arduino)
char data;

void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
LED_ON();
delay(1000);
LED_OFF();
}

void loop(){
if

元記事を表示

pfnet/plamo-13b を quantizeしてシングルGPUローカルマシン(RTX3090)で動かしてみた・・・

# はじめに
9月28日に、pfnは商用利用可能な大規模言語モデルをオープンソースソフトウェアライセンス(Apache2.0)で公開したと発表があった。日英2言語対応、特に日本語対応モデルとして、国産、最大規模(13b)ということで、生成される文章の語彙力、文法の正確さに期待して試してみたいと思い、早速、手元のマシンで、pythonのサンプルを動かしてみた。ただし、そのままのモデルの大きさは、30GB程度あり、手元のマシンのVRAM容量内に収まらない。そこで、今回は transformers の quantization オプションを使ってモデルを読み込ませ、ローカルのマシンで動作させた。

日英2言語対応の大規模言語モデルPLaMo-13Bを研究・商用利用可能なオープンソースソフトウェアライセンスで公開

# 操作環境
OS: Ubuntu 22.04 (RAM: 32GB、GPU:RTX3090(VRAM 24GB)
gcc: 11.4
cuda: 11.7 (nvidia driver version 535.104.12)
Python 3.10.12
“`
pip install transfor

元記事を表示

OTHERカテゴリの最新記事