Python3関連のことを調べてみた2022年11月12日

Python3関連のことを調べてみた2022年11月12日

AirSimを用いた強化学習

今回はAirSimを用いた強化学習について自分なりに翻訳しまとめたので記事にしたいと思います。

以下では、AirSim API の周りに OpenAI ジム ラッパーを使用し、標準の RL アルゴリズムの安定したベースライン実装を使用して、AirSim に DQN を実装する方法について説明します。これらの例を実行するには、stable-baselines3 をインストールすることをお勧めします (https://github.com/DLR-RM/stable-baselines3 を参照してください)。

## 免責事項
まだ活発に開発されているため以下で共有するのは、パフォーマンスを向上させるために拡張および微調整できるフレームワークです。

## Gym wrapper
AirSim をジム環境として使用するために、AirSim 固有の step、_get_obs、_compute_reward、reset などの基本メソッドと対象のタスクを拡張および再実装します。これらの例で使用されている車とドローンのサンプル環境は、PythonClient/reinforcement_l

元記事を表示

文字列とリストの変換

文字列を一文字ずつにリスト化する方法、及び、一文字ずつのリストを文字列に統合する方法を知らなかったので書きました。

# 文字列を一文字ずつのリストにする

“`
#「あいうえお」をリストにする
mojiretsu = ‘あいうえお’
mojilist = list(mojiretsu)
“`

# 一文字ずつのリストを文字列に統合する

“`
mojiretsu = ”.join(mojilist)
“`

元記事を表示

『サイバーセキュリティプログラミング第2版』の読書メモ (3)

ひきつづき『サイバーセキュリティプログラミング第2版』の読書メモです。

https://www.oreilly.co.jp/books/9784873119731/

# 3.4 ICMP のパース より

P63 Scanner クラスの sniff メソッドを抜粋。

“`python
def sniff(self):
hosts_up = set([f'{str(self.host)} *’])
try:
while True:
# パケットの読み込み
raw_buffer = self.socket.recvfrom(65535)[0]
# バッファーの最初の20バイトからIP構造体を作成
ip_header = IP(raw_buffer[0:20])
# ICMPであればそれを処理
if ip_header.proto

元記事を表示

Pythonで標準入力された場合の処理

競プロに手を出したばかりで標準入力の処理を最近知ったので、一番基本的なやつの備忘録です。
# 一つのものだけ標準入力された場合

“`
#文字列が与えられた場合
a = input()

#数字が与えられた場合
b = int(input())
“`

# 横並びで入力が与えられた場合

“`
list = input().split()
“`

※入力が縦一列の場合は「一つのものだけ標準入力された場合」を行数分繰り返せば良い。

後はこれの応用で、できそうな気がしました。
もう少し詳しくなったら加筆します。

元記事を表示

Airsimの画像 API

今回はAirsimの画像APIの記事を翻訳したものを記事にいたしました。C++でも同様なことができますが今回自分はPythonのコードのみを記載しております。C++をお使いの方は元の記事のコードをお使いください。
元のURLはこちらになります。https://microsoft.github.io/AirSim/image_apis/

# 画像 API
AirSim API に慣れていない場合は、まず一般的な API ドキュメントをお読みください。

# 単一の画像を取得する
「0」という名前のカメラから単一の画像を取得するサンプル コードを次に示します。 戻り値は、png 形式のイメージのバイト数です。 非圧縮形式やその他の形式、利用可能なカメラを取得するには、次のセクションを参照してください。

“` :Python
import airsim #pip install airsim

# for car use CarClient()
client = airsim.MultirotorClient()

png_image = client.simGetImage(“0”

元記事を表示

40代おっさんFastAPIを勉強する②

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## postメソッド

Pydantic は、Python の型アノテーションを利用して、実行時における型ヒントを提供したり、データのバリデーション時のエラー設定を簡単に提供してくれるためのライブラリです。

“`python
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel): # BaseModelを継承してItemを作る
# データの構造を定義
name: str
description: Optional[str] = None
price: int
tex: Optional[float] = None

app = FastAPI()

@app.post(“/item

元記事を表示

[Python] PyAutoGUIをimportした時にtkinterの見た目が変わる事

### 問題
PyAutoGUIをimportした時にtkinterの見た目が変わった。
importすると、しない時と比べてくっきり(小さく)みえるようになる。
### 解決
PyAutoGUIに含まれる
“`Python
try:
ctypes.windll.user32.SetProcessDPIAware()
except AttributeError:
pass
“`
が問題。
逆に、くっきり(小さく)したかったら上記のコードを追加すればよい。

元記事を表示

PythonとYouTubeAPIで急上昇の動画のデータを取ってくる

### やること
YouTubeAPIで急上昇動画のURLを取ってくる。

まず、GoogleCloudPlatformに行き、プロジェクトを作成して、YouTube Data v3というAPIを有効化します。「認証情報」をクリックして「認証情報」を作成を選び、「APIキー」を選択します。出てきたキーはコピーして取っておきます。
“`Python
import googleapiclient.discovery

def getYouTubeTop10():
API_KEY = “あなたのAPIキー”
youtube = googleapiclient.discovery.build(
“youtube”, “v3″, developerKey=API_KEY)
request = youtube.videos().list(
part=”snippet,contentDetails,statistics”,
chart=”mostPopular”,
maxResults=10, # ここで個数を

元記事を表示

『サイバーセキュリティプログラミング第2版』の読書メモ (2)

ひきつづき『サイバーセキュリティプログラミング第2版』の読書メモです。

https://www.oreilly.co.jp/books/9784873119731/

# 3.4 ICMP のパース より

P62 UDP データグラムをサブネット全体に送信する Python コードについてのメモ

udp_sender 関数を抜粋
“`python
import ipaddress

# スキャン対象のサブネット
SUBNET = ‘192.168.1.0/24’

# ICMP レスポンスのチェック用マジック文字列
MESSAGE = ‘PYTHONRULES’

# マジック文字列を含んだ UDP ダイアグラムをサブネット全体に送信
def udp_sender ():
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sender:
for ip in ipaddress.ip_network(SUBNET).hosts():
sender.sendto(byte

元記事を表示

お客様の中に24時間監視体制で調子の悪いwimaxを再起動できるエンジニアの方はいらっしゃいませんか!!!

# 結論
[このリポジトリ](https://github.com/Mkamono/wimax-restart)をcloneして、`.env`ファイルに`WIMAXPASS=あなたのクイック設定webのパスワード`を書いて`docker-compose up`すればできるよ

# はじめに
一ヶ月ほど前からうちのwimax home L12 の調子が悪く、どうも困っていました。
症状としては、LEDランプは正常を示しているがインターネットにはつながらない。しかしスマホやPCからは接続しているという表記になっている。「インターネットなし」との文言が出る、といったものです。
恒常的にこんな感じなのであればすぐサポート連絡なりして強く訴えられるんですが、2日に一回程度、再起動すれば治るといった頻度で対応してもらえるのか、そして今後ファームウェアの更新で直るんじゃないかと思い、とりあえずプログラムを書いてみました。このプログラムは問題の対処と同時に原因究明を目的にしているので、データの解析もできるようにしています。(現在データ収集中)

# フォルダ構成
“`
.
├─docker-comp

元記事を表示

PythonでSpeechRecognitionを使ってリアルタイム文字起こし【Windows】

# 概要

GoogleのSpeechRecognitionというライブラリを使ってリアルタイム文字起こしをしました。
用途としてはリモート会議や授業での音声をリアルタイム文字起こしして、議事録作成やメモの省力化などに使えると思います。

## 利用するライブラリ
– リアルタイムで文字起こしするライブラリ:SpeechRecognition
– パソコンからの音声出力をキャッチするライブラリ:PyAudio

“`
wave
time
datetime
speech_recognition
pyaudio
“`

### ライブラリの入れ方
“`pip install SpeechRecognition“`で入れられます。
注意点は、ライブラリのインストールの時とインポートする時とでスペルの大文字小文字が異なる点です。
– インストールの時:大文字小文字で”_”が不要:“`SpeechRecognition“`
– インポートの時:全部小文字で”_”が必要:“`speech_recognition“`

### デバイスから出力される音声を使えるようにするための下

元記事を表示

40代おっさんFastAPIを勉強する

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## getでFastAPIを動かす

“`python
from fastapi import FastAPI

app = FastAPI()

@app.get(“/”) # getで / にアクセスがあったら下の関数を実行
async def index(): # asyncで非同期処理を実装できる
return {“message”: “利樹大好き”}
“`

サーバー起動(main.py)

“`bash
uvicorn main:app –reload
“`

{“message”:”利樹大好き”}

となっていれば成功

local hostに`/docs`をつけると
ドキュメントが見られる。
Swagger UIが使われている。
FastAPIはSwagger UIを自動生成している。

local hostに`/redoc`をつけると
redocベースの

元記事を表示

Pythonで祝日を判定

#### 0.初めに
国内株などに投資をしていると平日だけ実行したいプログラムが思い浮かぶ。
Windows10 のタスクスケジューラは祝日に実行しない設定が存在しない。
そこで祝日のみをピンポイントで弾く必要性を感じた。

#### 1.jpholidayをインストールする
コマンドプロンプトで
`pip install jpholiday`
を入力

#### 2.サンプルプログラム
holiday.pyは祝日のとき終了するプログラム
exit()の下に(インデントを戻して)実施したいプログラムを記述すればよい
“`python:holiday.py
import datetime
import jpholiday

if jpholiday.is_holiday(datetime.date.today()):
print(“Today is a holiday, so this program will not work.”)
exit()
“`

元記事を表示

PyQt6Creatorにて作成した.uiファイルを.pyファイルへ変換

# 環境
* Windows 10 Pro
* Python 3.1.0
* Qt Creator 8.0.2
* Pyside6 6.4.0
* PyQt6 6.4.0
* Qt6 6.4.0
コマンドで以下を入力
“`command:Qt6
uic -g python form.ui > ui_form.py
“`
“`command:Pyside6
pyside6-uic form.ui > ui_form.py
“`
“`command:PyQt6
pyuic6 form.ui > ui_form.py
“`
どれも同じ結果になります。
formの部分は各々のファイル名に書き直してください。
忘れたときにどうぞ。

# 参考ページ
* https://doc.qt.io/qt-6/uic.html
* https://doc.qt.io/qt-6/designer-using-a-ui-file-python.html

元記事を表示

[Django]settings.pyでよく見るパラメータまとめのメモ

# はじめに
業務でDjangoを使っているのですが、
あまり設定ファイルをいじることがないので、この際パラメータにどんなものがあるか調べてみました。
大体は名前から意味が予測つくようになっていると思いますが、注意点なども含めて書き残しておきたいと思います。

# デフォルトで存在するパラメータ
## BASE_DIR
・プロジェクトの基となるフォルダ
・`django-admin startproject projects-name`で作成したプロジェクトの一番上位のフォルダ
## SECRET_KEY
・Django のインストールごとに設定される個別の秘密鍵
・暗号化やハッシュ化で用いられる秘密鍵であり、Djangoプロジェクト作成時にランダムに生成される
## DEBUG
・本番環境では必ずFalse
・開発環境でデバッグが必要な時にTrueにしておく。エラーが起きたときに、詳細なエラー画面を表示してくれる。ただしKEYやPASSなどの重要情報はセキュリティのため表示されないようになっている。
・実行したクエリを全て記憶しておくので、メモリへの負荷は高い
## ALLIWED_

元記事を表示

VSCodeにてDocker(CentOS7)のFlask環境を構築(venv使用)

# 環境
macOS Monterey
VSCode 1.73.0
docker desktop 4.13.1
docker Engine 20.10.20
docker Compose v2.12.1
Python 3.9.15
Flask 2.2.2

# DockerにてCentOS7立ち上げ

Dockerインストール
https://qiita.com/suzukiti/items/391bfce352ba94ad3f0d#docker%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

なんか以前自分が書いたみたいでした。
VSCodeのDev containers拡張機能を使います。(これも上の記事に書いてあった)

## コード(結論)

“`json:devcontainer.json
{
“name”: “sample_flask_app”,
“dockerComposeFile”: [“./docker-compose.yml”],
“service”: “app”,
“workspac

元記事を表示

Deep Learning from scratch 2にBahdanau Attention

 RNN (GRU) を使った Attention 付きの seq2seq モデルのニューラルネットワークについてです(実行確認済のソースコード有)。この記事に掲載するソースは、斎藤康毅さんの書いた「ゼロから作る Deep Learning 2 自然言語処理編」の第8章で提示されたソースにクラスを付け加えて、Bahdanau attention を使えるようにするものです。斎藤さんも、Attention については、いろいろな方法があると著書で書かれています。その一つのバリエーションです。Bahdanau attention については、tensorflow のページ

https://tensorflow.classcat.com/2019/04/07/tf20-alpha-tutorials-sequences-nmt-with-attention/

で使われているものを勉強して実装しました。

 付け加えるクラスは

  • AttentionSeq2seq2 クラス
  • AttentionEncoder2 クラス
  • AttentionDe
元記事を表示

DataFlowのパイプラインでCerberusの機能を使って、csvをチェックしてみた。

# はじめに
現在業務でGCPのDataFlowを使ってデータパイプラインを構築しており、CSVファイルがアプリケーションから来るのですが、たまにユーザが手で直したりなんてことがあるので、バリデーションして、不適当な行があれば省いて、後続のデータパイプラインに流したいと思っています。(上流の運用なおしたいのはやまやまですが。。。)
そこでCerberusというバリデーションライブラリがあったので、いっちょやってみようと思った次第です。

# Cerberusとは
Pythonのデータ検証用のライブラリで
「Cerberusは、強力でありながらシンプルで軽量なデータ検証機能をすぐに提供し、簡単に拡張できるように設計されているため、カスタム検証が可能です。依存関係はなく、Python 2.7から3.8、PyPyおよびPyPy3まで徹底的にテストされています。」とのこと
(引用元https://docs.python-cerberus.org/en/stable/index.html)

簡単に機能と使い方を説明すると、データとチェック用のファイルを比較して、OK/NGを判断してくれます。

元記事を表示

ubuntuでtkinterが使えなくなった(泣)

## はじめに
初カキコども
Ze;roPです〜
最近pythonにお熱で難しいことはよくわからないけど、適当にツール作って遊んではそれを仕事で活かしたりして遊んでます。
さて、コマンドラインツールやマクロのようなものばかり作っていて、ちょっとユーザーに優しい感じのツールも作れたらいいかも〜って思ってtkinterを使おうとインストールして、リファレンスのhello worldを実行しようとした矢先、それは起きました。。。
## 突然のエラー
“`
$ python3 -m tkinter
Traceback (most recent call last):
File “/home/USER/.pyenv/versions/3.10.7/lib/python3.10/runpy.py”, line 187, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File “/home/USER/.pyenv/versions/3.10.

元記事を表示

【OpenCV】2つの画像の類似点の座標(X,Y)をndarray形式の変数に格納する【Python】

[参考文献:opencv画像をマッチングする](https://wonderfuru.com/opencv%E3%81%A7%E7%94%BB%E5%83%8F%E3%83%9E%E3%83%83%E3%83%81%E3%83%B3%E3%82%B0%E3%82%92%E3%81%99%E3%82%8B/)
# はじめに
[前回のQiitaの記事](https://qiita.com/matttchan/items/0bf30b808b267222d881)ではAkazaのおかげで特徴点マッチングを実現することができた。今回は、その特徴点の座標を取得し、より数学的に画像を扱えるように加工していく。

**P.S.この記事はやや深夜テンションで執筆しているので読み進めると気分を害されるかもしれません。耐えてください。**

# 環境
OS : Ubuntu 20.04 LTS (最新バージョンも対応してるかも)
Python : 3.8.10
OpenCV-Python : 4.6.0

# きらきら復習たいーむ
## Pythonの文法覚えてるかなチェック
最終的にaの変数はどうなるか

元記事を表示

OTHERカテゴリの最新記事