Python関連のことを調べてみた2021年11月02日

Python関連のことを調べてみた2021年11月02日

Python 例文集

# Python で使える例文集

自分用の備忘録として。

## API への問い合わせ

### API に問い合わせ、結果の JSON を dict 型として読み込む場合

返ってくる値は`レスポンスオブジェクト`。格納される主な属性は以下の通り。

– `status_code`: レスポンスのステータス(200など)。str 型
– `headers`: レスポンスヘッダ。dic 型
– `text`: レスポンス文字列本体。

“`py
import requests
import json

# API クエリをそのまま渡す場合
def get_malApi_response(arg):
url = ‘https://example.com/api/’
param = arg # arg = get/detail
res = requests.get(urlrl + param)
data = json.loads(res.text) # text 属性のデータを dict 型に変換

return data

# API ク

元記事を表示

Raspberry PiとJuliusでとにかく励ますロボット作ってみた

# 開発経緯
今回製作した励ますロボット「ぽじてぃぶだいあろーぐ」は、2021年9月18,19,25,26日の計4日にかけて行われた株式会社サポーターズ主催の「技育展」に向けた開発です。その中でも私は9月25日に行われた「はじめてのアウトプット3」に登壇させていただきました。

https://talent.supporterz.jp/geekten/2021/

登壇させていただくにあたって、どういったものを作ろうかと考えていた時、日々を生きていく上で、落ち込むことは誰しもあるものです。なので、落ち込んだ人を励ますロボットを作ろうと思いました!

![ぽじてぃぶだいあろーぐ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1426467/fed4446e-aa57-bc77-aa2d-e439a7e49a26.jpeg “ぽじてぃぶだいあろーぐ”)

# メカニズム&使用技術
###使用したもの
– 使用マイコンボード:Raspberry Pi 3 Model B
– 使用言語:Python
– 使用

元記事を表示

AWS LambdaにPythonサードパーティ製ライブラリを入れる

# はじめに

AWS Lambda はサーバレスでイベント駆動型のコンピューティングサービスであり、非常に手軽に使えるサービスとなっている。Amazon S3 のような AWS の他サービスから Lambda をトリガーすることもでき、使い勝手が良いのだがサードパーティ製ライブラリを扱う際にはひと手間かかってしまう。そこで本記事では、Python のサードパーティ製ライブラリを Lambda で扱うための方法を紹介する。[How to use external libraries in Lambda Function](https://wakeupcoders.medium.com/how-to-use-external-libraries-in-lambda-function-df1cee4a7c3a)、[Managing external libraries in AWS lambda functions](https://dev.to/alim1496/managing-external-libraries-in-aws-lambda-functions-1g0m) を参考にし

元記事を表示

PythonからWindows APIを使ってサウンド再生

#はじめに
ctypesパッケージを使ってWindows APIを呼び出すサンプルとしてサウンドを再生してみた。

#ソース

“`beep.py
from ctypes import *
from ctypes.wintypes import *
import time

winmm = windll.winmm

WAVE_FORMAT_PCM = 1
WAVE_MAPPER = UINT(-1)
CALLBACK_NULL = 0x0000_0000

class WAVEFORMATEX(Structure):
_fields_ = [
(“wFormatTag”, WORD),
(“nChannels”, WORD),
(“nSamplesPerSec”, DWORD),
(“nAvgBytesPerSec”, DWORD),
(“nBlockAlign”, WORD),
(“wBitsPerSample”, WORD),
(“cbSize”, WORD)

元記事を表示

ディープラーニング使って画像生成を行うレシピの紹介

# はじめに

Axrossを運営している松田です。

**[Axross](https://axross-recipe.com/recipes)** は、エンジニアの”教育”と”実務”のギャップに着目し、「学んだが活用できない人を減らしたい」という想いで、ソフトバンク社内起業制度にて立ち上げたサービスです。

現役エンジニアによる実践ノウハウが”レシピ”として教材化されており、Pythonプログラミングを活用して実際の業務に近いテーマで、動くものを作りながら学ぶことができます。

Axross:https://axross-recipe.com
公式Twitter:https://twitter.com/Axross_SBiv
![Axrossアイキャッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/9f500e0e-a759-20e2-bb8b-480bbcfaaf9b.png)

# 画像生成の仕組み
## 画像生成とは

**画像生成(Image Generation** とは、

元記事を表示

PythonでUnit Testを記述する。

# PythonのUnit Test について

PythonでもUnit Testを記述することは、品質を保つために重要です。しかしながら、テストコードを書くのは、結構手間がかかります。テストはしたいけど、めんどくさい感がプロジェクト内部でもないでしょうか?今回はテストコードを書くのはめんどくさいという課題を解決するツールを紹介します。

# PythonのUnit Testで使用するツール

[Python テストコード生成ツール](https://github.com/shigeshige/py-ut-generator)

このツールは、テストメソッドや呼び出し、パラメータの記述、関数のモック化を自動で記述してくれます。なので、あとはパラメータを調整し、内部で呼んでいる関数のモックを設定すれば、テストが実行できます。

## インストール

下記のコマンドでインストールできます。
[Python Unit Test Generator install](https://pypi.org/project/pyutgenerator/)

“`
pip install py

元記事を表示

kerasのBERTでunder sampling + baggingのジェネレータ

# はじめに
機械学習初心者ながら、UTH-BERTを用いた自然言語処理(NLP)のタスクが指導教員から降ってきたので試行錯誤しております。

BERTで不均衡なデータセット(全体のうち正例が0.6%)で文章の2値分類をしており、そのままunder samplingしたら性能はすこぶるいいけど、そのままぶっこんで回したら正例がまったく当たらない(当たり前、損失関数はそう動く)。
それでも負例の情報量をばっさり切り捨てるのは如何なものかと悶々としてたら、指導教員から「under sampling + bagging」がいいみたい、と言う天の声が…実装するしかないでしょ。

[[1] UTH-BERTをTensorflow2.X / Keras BERT から利用して文書分類を行う](https://qiita.com/Kunikata/items/d9fda2351a273a7412f6)
[[2] itokashi: 不均衡データ分類問題をDNNで解くときの under sampling + bagging 的なアプローチ](https://devblog.thebase.in/ent

元記事を表示

sqlalchemy で engine の作り方に注意

# はじめに
threading を用いた並行処理をさせる常駐型の Python プログラムにおいて、データベースに接続する際に sqlalchemy の create_engine の使い方を間違えるとデータベース接続数が爆増してしまうので注意が必要です。本稿ではそれについて簡単に説明したいと思います。

# TL;DR
以下のいずれかの方法を選択すると必要以上に接続数が増えることはないでしょう。

* create_engine() はプログラム開始時に一回だけ呼んで Engine クラスインスタンスを使い回す
* NullPool を指定してコネクションプールを使わないようにし、scoped_session でセッションを生成する

# 環境
以下の環境で実験しています。

| 項目名 | バージョン |
| — | — |
| OS | Ubuntu 18.04.6 LTS |
| Python | 3.10.0 |
| MySQL | 5.7.36-0ubuntu0.18.04.1 |
| SQLAlchemy | 1.4.26 |

# テストコード
## ディレク

元記事を表示

PythonからWindows APIを使ってウィンドウ表示

#はじめに
ctypesパッケージを使ってWindows APIを呼び出すサンプルとしてウィンドウを表示してみた。

![winapp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/257554/5f334710-989c-8921-bfcc-3e212acd06b7.png)

#ソース

“`winapp.py
from ctypes import *
from ctypes.wintypes import *

gdi32 = windll.gdi32
kernel32 = windll.kernel32
user32 = windll.user32

CS_HREDRAW = 0x0002
CS_VREDRAW = 0x0001
IDC_ARROW = 32512
COLOR_WINDOW = 5
WS_OVERLAPPEDWINDOW = 0x00CF0000
CW_USEDEFAULT = 0x80000000
SW_SHOWDEFAULT = 10
WM_DESTROY = 0x0002

元記事を表示

3次元有限要素法をPythonで実装する(四面体要素)

# 概要
有限要素法といえば3次元での解析が一般的ですが、Qiitaに3次元解析の実装方法についての記事があまり無かったの投稿しました。
今回はオーソドックスな四面体要素を実装してみます。
簡単のため、まずは微小変形の弾性解析で実装してみます。
また、この記事では下記のサンプルを解く処理を実装してみます。

# 解くべき方程式
有限要素法では以下の式を解くことが目的となります。

“`math
\boldsymbol{K}\boldsymbol{\tilde{U}} = \boldsymbol{F} \\
\begin{align}
&\boldsymbol{K} : 剛性マトリクス \\
&\boldsymbol{\tilde{U}} : 節点の変位ベクトル \\
&\boldsymbol{F} : 節点に働く荷重のベ

元記事を表示

【Python】スクリプトから簡易編集モードを無効にする

#はじめに
コマンドプロンプトなどコンソールウィンドウをpythonの標準出力として使う場合、 簡易編集モード(QuickEdit)は便利ですが、 処理の実行中に標準出力を使う場合などには意図しない中断を招いてしまいます。

もちろんコンソール画面を右クリックすればプロパティからの変更はできるのですが、自分以外の人間の利用を想定する場合にはコードで設定できた方がうれしいです。

#簡易編集モードを無効化するスクリプト

“`python
import ctypes

kernel32 = ctypes.windll.kernel32
mode=0xFDB7 #簡易編集モードとENABLE_WINDOW_INPUT と ENABLE_VIRTUAL_TERMINAL_INPUT をOFFに
kernel32.SetConsoleMode(kernel32.GetStdHandle(-10), mode)

“`
これだけです。
(注) コンソールウィンドウが出てからこの処理が実行されるまでのわずかな時間は簡易編集モードが有効になっています。

以下を参考にしました
[How

元記事を表示

[Flask]ModuleNotFoundError: No module named ‘app’

#エラー
初めてFlaskにデプロイする際、タイトルのようなエラーが出て困ったので解決方法をメモしておく。

“`:エラー
ModuleNotFoundError: No module named ‘app’
“`

#解決方法
[このサイト](https://stackoverflow.com/questions/22711087/flask-importerror-no-module-named-app)より
→pythonファイルの名前を`app.py`にしたら解決した。

元記事を表示

SIGNATEのSOTAに参加した話

ここで実行されているコードはこちらの[github](https://github.com/jaguar2801/hikkoshi)にあります

## [アップル引越しセンターのデータ分析](https://signate.jp/competitions/269)
今回の評価は平均誤差で行う。[MAE(mean_absolute_error)](https://keras.io/ja/losses/)

### データの前処理
与えられたデータには「日付、法人が絡むかどうか、休業日、午前の料金区分、午後の料金区分」の5つの説明変数と、目的変数が需要数となります。
 日本のデータなので、日付から曜日を出して、説明変数に付け加えた。曜日をダミー変数にしてデータに付け加えて、データの前処理を行なった。

標準化や正規化は、カテゴリデータが多いのでやっても意味をなさないと思い、今回の解析では行わなかった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1157150/3047c5b1-c7aa

元記事を表示

転移学習の使い方と効果の確認

#1. はじめに

転移学習の使い方と効果について、自分で検証をしてみたいと思い、
InceptionV3をベースとした転移学習を行ってみました。

転移学習とは、既にに学習されたモデルを他の新しいタスクに適用することで、
効率的に新しいタスクに適応することを基本的な考えとしています。

題材としては、以前行ったCelebAの性別判定とし、
より少ないデータ数、試行回数で学習を行って、
どれくらいの正答率を得られるのか検証してみました。

↓以前CNNを用いて行ったCelebAの性別判定
訓練データ数:10,000
試行回数:20
テストデータ正答率:94.00%

https://qiita.com/ToppaD/items/4756f2eaa7dff82d6434

#2. 前準備
##2-1. InceptionV3とは

Inception-v3とは、Googleによって開発されたニューラルネットワークで、ILSVRCという大規模画像データセットを使った画像識別タスク用に1,000クラスの画像分類を行うよう学習され、非常に高い精度の画像識別を達成しています。
以下のコードにより

元記事を表示

【Python】機械学習で使える簡単な教師データ作成

## 概要

セグメンテーションタスクで使える入力画像・教師画像を作るのがいつもめんどくさいと感じていたため、保存用としておいておきます。
ランダムな場所にランダムな丸を作成するプログラムです。

– 丸の大きさはテキトーにしてるので、都度直してください。
– cv2.circleだけでなく、cv2.rectangle等を混ぜるとより良いかも。

こんなものができます(ちっちゃい!)。
![input](https://user-images.githubusercontent.com/93382642/139674105-68889d73-669d-4d6d-a551-658b13f6985c.png) ![correct](https://user-images.githubusercontent.com/93382642/139674024-c9d08e2c-42a4-4b66-acc1-e10de635b38e.png)

## 想定内容
今回は図形(丸)の色を塗りつぶすセグメンテーションタスクを想定しています。
今回のソースをベースにしたら色んなパターンに応用でき

元記事を表示

Django Logginについて 覚え書き

logを作ろう。
setting.py(設定ファイル)にlogを書く。
Djangoのlogはpythonのライブラリを元に作られているらしいので大まかなところは変わらないらしい…..

LEVELが存在する。以下の5種類

“`
DEBUG :デバッグ目的の低レベルシステム情報
INFO :一般的なシステム情報
WARNING :発生した軽微な問題を説明する情報。
ERROR :発生した重大な問題を説明する情報。
CRITICAL :発生した重大な問題を説明する情報。
“`

“`
ロガー
– ログを記述する働き
ハンドラ
– ログをどのように動かすかを決めれる。
フォーマッター
– どのようにログに表示するかの書式を決めれる
“`

“`

#logging setting
LOG_BASE_DIR = os.path.join(‘/Users’,’name’,’projects’,’test’,’log’)
LOGGING = {
‘version’:1,
‘disable_existing_loggers’: False,
‘format

元記事を表示

【Python】動画をコマ送りで見る方法をOpenCVで実装

## 概要
動画をじっくりしっかり見たい!と思っても、なかなか
**1コマ1コマ止めながら**とか、**ズームしたい!**ってできませんよね。
動画の細かい部分を見たい時があったので、デバッグ用として作成しました!
(エラー処理は超ゆるいです)

## 使い方
次のコマに進めるには何かしらのキーを押さないといけない。
キーを押すまでは**imshow**によりズームなり何なり可能。
“q”で再生終了。

## ソースコード

“`python:debugVideo.py
import cv2

video = cv2.VideoCapture(“output.mp4”)

while video.isOpened():

ret, frame = video.read()

cv2.imshow(“Preview”, frame)

if cv2.waitKey() & 0xFFF == ord(‘q’):
break

video.release()
“`

## 詳細

GitHubにも載せています。

https://github.

元記事を表示

フォルダを監視して更新があるとマージしてepubファイルを作るボイラープレート

# 概要

フォルダを監視して更新があるとマージしてepubファイルを作るボイラープレートです。

長文というかepubファイルを作る環境を整えたかったので作ってみました。

コマンド部分をいじることでpdfやwordなどにも応用可能です。

# 場所

[https://github.com/mi-ki-ri/writing-repository-boilerplate-python](https://github.com/mi-ki-ri/writing-repository-boilerplate-python)

# 使い方

上記リポジトリをDownload ZIPします。

(この方法がおすすめです。フォークなどもできるかとは思いますが)

フォルダをリネームします。

フォルダ内で、

“`sh
$ brew install pandoc
$ python3 -m venv venv
$ . venv/bin/activate
$ pip install -r requirements.txt
$ sh app.sh
“`

をそれぞれ実行します。

(Mac版です。

元記事を表示

【OpenCV + MoviePy】画像から動画を自動生成してみた!

# はじめに
[とあるハッカソン](https://jphacks.com/2021)にて,動画生成を行うプロダクトを開発したのですが,MoviePyに関わる日本語の記事がほとんどなくかなり苦戦したため,自分でまとめてみることにしました!?
1週間で調べたことなので,誤りなどがあれば気軽にコメントをしていただけると嬉しいです?

# 使用環境
– Python 3.8.3
– OpenCV 4.5.1
– MoviePy 1.0.3
– NumPy 1.18.5

# 今回使用する画像
みなさんご存知のLennaさん(`Lenna.png`)をお借りします.

# 今回生成する動画
今回は0.5秒ごとにLennaさんが拡大または縮

元記事を表示

線形回帰を理解してPythonで1からコードを書いてみよう

線形回帰について現時点で私が理解していることと、その過程で書いたPythonのコードをまとめます。数学はガバガバですがご了承ください。

# 回帰分析
回帰分析とは、原因となったデータと結果となったデータを分析し、その二つのデータの関係性を導き出すための手法です。線形と非線形に分けることができます。

### 線形回帰
身長と体重の二つの変数からなるデータを考えてみましょう。以下のデータがあったとします。

| 身長 | 体重 |
| — | — |
| 170 | 63 |
| 175 | 67 |
| 164 | 52 |
| 157 | 50 |
| 180 | 75 |

これを散布図で表してみます
![scatter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2235373/8b39ec2d-32f0-59cf-57b1-828a93a19c6f.png)

この図に対して、**いい感じな直線**を引いてみましょう。

![simple_linear.png](https://qi

元記事を表示

OTHERカテゴリの最新記事