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

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

テンプレートライブラリを用いてpytestのコードを生成する

# 実現したいこと
:::note
自動テストのスクリプトをなんとか自動で生成したい!
:::
現在、モデルベースドテストやキーワード駆動テストなど「説明可能性の高いテスト」に関する技術について調査を進めています。

そのような技術の一つのゴール地点である「自動テストコードが自動で生成され、自動で実行される」を目指すために、如何にテストコードを生成するかを検討しました。
上流部分(モデルやキーワードからどのようにテストケースを導出するか)は別途検討中のため今回は触れません。

# 実装内容
「あらかじめテンプレートを設定しておくと、渡されたデータに応じたテストコードを生成してくれる」という仕組みになります。
Pythonのコードやテストコードはお試しで作ったものなので、ご参考までに!
### ディレクトリ構成
“`
testcode-gen/
├ .gitignore
├ poetry.lock
├ pyproject.toml
├ src/
├ main.py
├ templates/
├ te

元記事を表示

CloudWatchとAWS Lambdaを用いてAmazon EFSのスループットモード変更を自動化してみた

# はじめに

業務で使用している`Amazon EFS`の`BurstCreditBalance`が2週間程度で枯渇するため、これまではその都度手動でスループットモードを変更するという対応を取っていたのですが、`CloudWatch`と`AWS Lambda`を用いて対応を自動化してみましたのでその際に設定した内容を記します。

## 注意事項
– この記事の内容は執筆時点のものであるため、最新の設定方法とは異なっている可能性があります。
– 入力が任意の設定項目については記載を割愛している場合があります。
– 自身の備忘録も兼ねて記載しているので内容の誤りや、より効率的に実現する方法がある可能性があります。気になる点などがありましたらお気軽にコメントいただけますと幸いです。。。!

# やったこと

1. Amazon SNS – トピック作成
1. CloudWatch – アラーム作成
1. AWS Lambda – 関数作成
1. IAM – 許可ポリシー追加

## Amazon SNS

Lambda関数を実行させるトリガとしてトピックを2つ作成しました。

| トピック

元記事を表示

pythonで「計量時系列分析」を読む1 時系列分析の基礎概念

時系列分析で有名な「計量時系列分析」をpythonで実装しながら読み進めていきます。
汚いコードですが自主学習・記録が目的ですのでご了承ください。
様々な人がより分かりやすい記事を書いていますのでそちらをご覧ください。
そして、本格的に勉強したい方・細かい内容を知りたい方はぜひ参考書を手に取って勉強してください。
また、何か問題があればご連絡いただければと思います。

次の本を扱います。

### 参考書

https://www.amazon.co.jp/%E7%B5%8C%E6%B8%88%E3%83%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E8%A8%88%E9%87%8F%E6%99%82%E7%B3%BB%E5%88%97%E5%88%86%E6%9E%90-%E7%B5%B1%E8%A8%88%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%BC-%E6%B2%96%E6%9C

元記事を表示

[Python] TikTokAPI エラー KeyError: “name=’ttwid’, domain=None, path=None”

# 該当エラー
“`
Requesting data from TikTok
Traceback (most recent call last):
File “D:\desarrollo\tiktok\tiktokapi.py”, line 39, in
for video in api.trending.videos():
File “C:\python\python390\lib\site-packages\TikTokApi\api\trending.py”, line 40, in videos
ttwid = spawn.cookies[“ttwid”]
File “C:\python\python390\lib\site-packages\requests\cookies.py”, line 328, in getitem
return self._find_no_duplicates(name)
File “C:\python\python390\lib\site-packages\requests\cookies.py”, line 399, in _find_no_

元記事を表示

ABC259 D Dif:947 『AtCoder ABC251~275 ARC140~151 灰・茶・緑問題 超詳細解説』サンプル

この記事は 『AtCoder ABC251~275 ARC140~151 灰・茶・緑問題 超詳細解説』 のサンプルです。

値段:300円(Kindle Unlimited対象)
【kindle】

【booth(pdf)】
https://sano192.booth.pm/items/4455120

ARC140~151の部分のみ抜粋した廉価版 もあります。
値段:200円(Kindle Unlimited対象)
【kindle】

【booth(pdf)】
https://sano192.booth.pm/items/4455133

【サンプル一覧】
ABC251 A:https://qiita.com/sano192/items/810a4a7d5cf61321bb05
ABC262 B:https://qiita.com/sano192/items/8a9cc91d73a798de6a54
ABC256 C:https:

元記事を表示

ABC262 B Dif:220 『AtCoder ABC251~275 ARC140~151 灰・茶・緑問題 超詳細解説』サンプル

この記事は 『AtCoder ABC251~275 ARC140~151 灰・茶・緑問題 超詳細解説』 のサンプルです。

値段:300円(Kindle Unlimited対象)
【kindle】

【booth(pdf)】
https://sano192.booth.pm/items/4455120

ARC140~151の部分のみ抜粋した廉価版 もあります。
値段:200円(Kindle Unlimited対象)
【kindle】

【booth(pdf)】
https://sano192.booth.pm/items/4455133

【サンプル一覧】
ABC251 A:https://qiita.com/sano192/items/810a4a7d5cf61321bb05
ABC262 B:https://qiita.com/sano192/items/8a9cc91d73a798de6a54
ABC256 C:https:

元記事を表示

ABC256 C Dif:541 『AtCoder ABC251~275 ARC140~151 灰・茶・緑問題 超詳細解説』サンプル

この記事は 『AtCoder ABC251~275 ARC140~151 灰・茶・緑問題 超詳細解説』 のサンプルです。

値段:300円(Kindle Unlimited対象)
【kindle】

【booth(pdf)】
https://sano192.booth.pm/items/4455120

ARC140~151の部分のみ抜粋した廉価版 もあります。
値段:200円(Kindle Unlimited対象)
【kindle】

【booth(pdf)】
https://sano192.booth.pm/items/4455133

【サンプル一覧】
ABC251 A:https://qiita.com/sano192/items/810a4a7d5cf61321bb05
ABC262 B:https://qiita.com/sano192/items/8a9cc91d73a798de6a54
ABC256 C:https:

元記事を表示

NLP 100 Exercise 2020 (Rev 2) Chapter 1: Warm-up 00. Reversed string

#### 00. Reversed string
Obtain the string that arranges letters of the string “stressed” in reverse order (tail to head).

“`py:solution00.py
# Sequence types (list, tuple, string, range) support slicing.
# Therefore, you can sort in reverse order by setting text[::-1] in the slice operation.
text = “stressed”
print(text[::-1])

# You can also use reversed() method.
print(”.join(reversed(text)))

“`

“`: output
desserts
desserts
“`

この問題では、文字列を逆順に並び替えます。

#### Reference article

[[Python

元記事を表示

みんなはまだスポーツしてる?自分のテニスフォームとプロのテニスフォームの違いを機械学習を使って自分で分析してみたい(OPENPOSE,姿勢推定)

## 自己紹介
初めまして。社会人になっても週3でテニスを未だに楽しんでる者です。

テニス歴もソフトテニスから合わせると20年近くになります。

スポーツ全般に言えると思いますが、テニスってすごく上達が難しいです。
打ち方もストローク、ボレー、サーブ、スマッシュ・・・覚える打ち方が多いです。
そういう意味では一生上達できるのでいまだに楽しめています。
テニスは生涯スポーツなのでお勧めです。

85歳までテニスする予定なのでテニス歴70年ですっていうのが将来の夢です。
プログラミング歴も50年とかになったらどうなるんでしょうね。そっちも楽しみ。

## どうやってフォームの改善していくのか?
話がそれましたが、
**同じスポーツを20年もやっているとどこに自分の改善点があるかわからなくなってきます。**
今回は自分のフォームのどこに改善点があるのかをプログラミングを用いて検証していきます。

**そもそも、どうやって自分のフォームがどこが悪いか考える必要があります。**
明らかに変な打ち方などあればすぐ改善点がわかりますが・・・

なので、まずは自分のフォームがどうなっているか分析から

元記事を表示

Flaskでルーティング その1

4月から社会人エンジニアになるのに向けて最近はPythonおよびFlaskを勉強しています。
主にFlaskの勉強には以下のUdemyの教材を見ています

https://www.udemy.com/course/flaskpythonweb/

ただ、どこかに書いておかないと忘れてしまいそうなので備忘録がてら書いています。
細かく分けて書いていきます。

## 第1回目
### 今回やることはルーティング!
URLによって表示する内容を変えていきたいと思います!

まず基本となるコードがこちら!

“`python:app.py
from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def index():
return ‘

Hello Flask!

if __name__ == ‘__main__’:
app.run()
“`

こちらを実行すると以下の画面になります。

![スクリーンショット 2023-01-05 21.47.43.png

元記事を表示

ダレモノガレラレナイ明美~クソアプリ制作日記vol.1~

# はじめに
人は忘れる生き物です。
明日の予定、昨日のご飯、お薬の時間、孫の顔、帰る場所、自分の名前、、、
筆者は職場のロッカーのカギを閉め忘れることが多々あるため、リマインダーを作ることにしました。

# コンセプト
ただのリマインダーツールならこの世に星の数ほどあります。
が、ここは学習を兼ねて世界に一つだけのオリジナルリマインダーツールを作ってみましょう。
1. 指定した時刻になったらウィンドウを表示。
2. 画像ともにメッセージが表示される。
というシンプルな作りにしたいと思います。

~~~~~~~~~~~~~イメージ~~~~~~~~~~~~~~~
(そろそろ定時か、今日も疲れたな…)
パッ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406309/d4c202b8-525c-23f6-5eeb-e2a5e010e2fb.png)
(う、うぜぇ…)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 実装手順①(ソースコード)
“`Reminder.p

元記事を表示

pexpectを使った自動化プログラミング

# pexpectを使った自動化プログラミング

pexpectはPythonでインタラクティブなプログラムを自動化するためのモジュールです。本記事では、pexpectの基本的な使い方、応用例、類似モジュールとの違いを説明します。

## pexpectとは

pexpectはPythonでインタラクティブなプログラムを自動化するためのモジュールです。コマンドを実行して、入力を受け取るなど、インタラクティブなプロセスを自動的に処理できます。

## 主な用途

pexpectを使用すると、インタラクティブなプログラムを自動化できます。テスト自動化、サーバー設定の自動化、インストールスクリプトの自動化など、様々な用途に使用できます。

## コーディング例1

pexpectを使用するためには、まず以下のようにインポートします。

“`python
import pexpect
“`

次に、pexpectを使用してコマンドを実行します。

“`python
child = pexpect.spawn(‘/bin/bash’)
child.expect(‘$’)
child.sen

元記事を表示

tecoGANをtensorflow 2系に書き換えた

Colaboratoryでtensorflow 1系へのサポートが終わっていたので、2系に書き換えた。

## TecoGAN
TecoGANについてはこちらから
https://qiita.com/kannkyo/items/4d515ca988f536fadf44

# Tensorflow 2系への書き換え
## 自動書き換え

>まずは1系から2系への自動アップデートスクリプトを行った。
https://www.tensorflow.org/guide/migrate?hl=ja

`lib/ops.py`と`main.py`が対象となる
“`
!tf_upgrade_v2 \
–intree ./ \
–outtree ./ \
–reportfile report.txt

!tf_upgrade_v2 \
–intree ./lib/ \
–outtree ./lib/ \
–reportfile report_lib.txt
“`
ただ、これだけだと動かないので色々書き換える
## 手動書き換え
上記で直りきらなかった部分を

元記事を表示

Raspberry Pi 4 を使ったROS入門 第6回 ジョイスティックとカメラによるロボット操作

# はじめに
この記事は研究室の学生の教育用に作成してゆきます.
現在はROS2がメジャーとなってきておりますが,まずは自習が出来るよう文献が豊富なROS1でROSの扱いに慣れてみます.
ROSは既に多くの文献があり,それだけでも自習可能ですが解説されているバージョンや環境が違い,初心者には躓きやすい内容だと思ったため,改めてまとめてみます.

前回はこちら
[Raspberry Pi 4 を使ったROS入門 第5回 RvizとSLAM体験](https://qiita.com/H-Ando-robo/items/d18c4d920cddf1e4a8d0)
次回はこちら
[公開までお待ちください]()

# 動作環境
Raspberry Piを使用します.(用意できるならUbuntu入りのPCが◎)
ROSはUbuntu上で動くソフトなのですが,設定の違いによってトラブルが起きやすいので,クリーンインストールしてから始めることをお勧めします.
ROSのバージョンはUbuntuのバージョンとリンクしてます.

本記事で使用する機器とバージョン
| 使用機器 | Ubuntuバージョン |

元記事を表示

CNNで親子丼と牛丼を見分ける…!!

# 概要
今回は、畳み込みニューラルネットワークを利用して、親子丼と牛丼の分類に挑戦しました!

# 1. CNNとは
## 1.1 CNNの特徴
 CNNは一般的な全結合型ニューラルネットワークと違い、2次元データをそのまま学習に取り込むことができます。例えば、28×28の画像データを学習に利用する場合、全結合ニューラルネットワークでは784×1の1次元ベクトルに変換します。そのため、二次元情報が失われてしまいピクセルが一つずれても、後続データも同様にずらせば同じように学習されてしまいます。CNNでは畳み込み演算という処理によって、2次元空間の情報を取り出します。
## 1.2 畳み込み
 畳み込み演算とは、画像の値とフィルタとの積の和を元の画像に書き込む処理のことです。ここのフィルタとは演算によって画像を加工するもので、例えば3×3の上下方向のエッジを検知するフィルタは以下のようになります。
![スクリーンショット 2022-11-14 10.47.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

変分オートエンコーダでそっくりな漢字ランキングを作った

# オートエンコーダとは

データを一度モデル(エンコーダー)にかけ低次元ベクトル(潜在変数)にした後, もう一度モデル(デコーダー)にかけることで, 元のデータと同じものを再構成させる機械学習モデルをオートエンコーダーと呼びます.
しかしこの手法は, ノイズに対する頑強性がなく, ちょっと元データが異なったときに全然別の出力になるといった難点があります.

これの解決策として, 意図的に途中でノイズを加えノイズへの頑強性を増す手法(デノイジングオートエンコーダー,変分オートエンコーダー)が用いられています.

# 変分オートエンコーダとは

変分オートエンコーダーでは, エンコーダーで潜在変数の分布を求めます.
そして, その分布から潜在変数をひとつ抽出し, デコーダーで潜在変数から入力データを再構成させます.

損失関数としてはELBOと呼ばれるものが用いられており,

“`math
L = L_{再構成} + \beta L_{正則化}
“`
$L_{再構成}$は再構成誤差と呼ばれており, 入力データと出力データ間の対数尤度関数(例:二値交差エントロピー)に相応します.
$L

元記事を表示

pandasによるデータ分析基礎

# 概要
* この記事はPythonのpandasを用いたデータ分析をしたい人に向けて書かれる
* 主にデータ加工についての操作方法とそのコードにいついて載せるので辞書代わりに使ってほしい
* 筆者が学習した内容を随時更新

## 分析にあたっての注意事項
* コードを実行しても変数を設定(変数名=加工コード)しなければ加工したデータフレーム(df)は扱えない
*

# データ加工基礎
## ライブラリの読み込み
“`
import pandas as pd
“`
## csvデータの読み込み
“`
pd.read_csv(‘欲しいデータへの相対パス’)
“`
* データが同じフォルダ内にあればファイル名で良いが、相対パスの書き方に慣れておこう
## データフレームの結合
“`
pd.merge(df1,df2,on=’結合する列名’,how=’leftかright’)
“`
* leftかrightは、指定した左のdfを基本とするか右のdfを基本とするかの違い。基本left

## データの種類ごとの集計
“`
df.gruopby(‘まとめたい列名’).count(

元記事を表示

Google Vision API (AI-OCR) で納品物チェック作業を効率化!

こんにちは、google vision APIを使って画像中の文字を読み取り、数量をカウントする方法を記事にします。
普段の業務で、業者から大量に事務用品が届き、納品チェックで製品名やサイズ、型番を一つ一つチェックしており、とても時間がかかっていました。この作業をAI-OCRで置き換えられないかと考え試してみました。イメージは下記の通りです。
![AI-OCR.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2874461/f0379cbf-8952-a280-0ce5-52f9c3055c8f.jpeg)

## Google Vision APIの使い方
とっても丁寧に解説されていますので、こちらをご参照ください。
秘密鍵のJSONファイルまでゲットします。
https://self-development.info/python%E3%81%A7google-cloud-vision-api%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%

元記事を表示

WindowsによるPython入門 #01: Pythonの実行

# はじめに

YouTube 動画と連動した Python 講座の記事を公開します。
今回は第一回目として、Python の実行方法の解説です。

# YouTube動画

[WindowsによるPython入門 (第一回) Pythonの実行](https://youtu.be/gtTC-EOLK2M)

# Python ランチャによる Python の実行方法

以下のような .py ファイルを適当なフォルダに作成します。

“`hello.py
import sys
sys.stdout.write(“python: {}”.format(sys.version))
“`

hello.py ファイルが存在する位置でコマンドプロンプトを起動し、以下のように、hello.py ファイルを指定して py コマンドを実行します。

“`
C:\User\PythonMan\Desktop\run_test>py hello.py
python: 3.11.1 (tags/v3.11.1:a7a450f, Dec 6 2022, 19:58:39) [MSC v.1934 6

元記事を表示

pip requirements.txt の覚え書き

## requirements.txt とは
– pip でインスコする(した)パッケージ一覧
– 主に別の Python 環境にコードを持っていったときに、pip ライブラリをサクッと入れるために使う

## 作成方法
1. そのプロジェクトで使っている Python 環境に入る(venv等)
1. 次のコマンド打ったら完成
`pip freeze > requirements.txt`
or
`python -m pip freeze > requirements.txt`

## 適用方法
1. そのプロジェクトで使っている Python 環境に入る(venv等)
1. 次のコマンド打って待つ
`pip install -r requirements.txt`
or
`python -m pip install -r requirements.txt`

## 書き方(文法)
詳細は[公式ドキュメント](https://pip.pypa.io/en/latest/reference/requirements-file-format/?highlight=requirements)

元記事を表示

OTHERカテゴリの最新記事