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

Python関連のことを調べてみた2022年12月25日
目次

STREAM DECK互換の仮想デバイスの紹介

この記事は [Wano Group Advent Calendar 2022](https://qiita.com/advent-calendar/2022/wano-group)の24日目の記事となります。
4日目に[Product-Led Growthまとめ](https://ktat.hatenadiary.jp/entry/2022/12/04/171031)も書いていますので、よろしければそちらもどうぞ。
また、グループ会社の[EDOCODE](https://www.edocode.co.jp/)(メインで仕事してます)の[Advent Calendar](https://adventar.org/calendars/7645) もありますので、よろしければそちらもどうぞ。

## この記事に書いていること

個人的に開発している[STREAM DECK](https://www.elgato.com/ja/stream-deck-mk2)互換の仮想ボタンデバイスの[MyDeck](https://github.com/ktat/mydeck/)について書きます。

##

元記事を表示

全てをシンプルに FastAPIを最速で理解する

# はじめに
本記事はFastAPIでバックエンドを開発する方法について記載しています。

[**FastAPI**](https://en.wikipedia.org/wiki/FastAPI)は、PythonでAPIを開発するためのモダンで高速(高性能)なWebフレームワークです。

Pydanticによる型ヒントを使用したデータの検証や、OpenAPIドキュメントを自動的に生成することができます。
また非同期プログラミングをサポートし、SQLAlchemyやTortoise-ORMと互換性、[依存性の注入(DI)](https://ja.wikipedia.org/wiki/%E4%BE%9D%E5%AD%98%E6%80%A7%E3%81%AE%E6%B3%A8%E5%85%A5)を考慮した実装も可能です。

Pythonを用いたマイクロサービスのバックエンド開発などには、最適なソリューションです。

https://github.com/tiangolo/fastapi

## FastAPIを使用する理由
なぜFastAPIを使用するかについて、FastAPIの主な特徴につ

元記事を表示

Vanishing Point Detectionの導入(Python 3.6、Windows 10)

# はじめに
消失点の検出を行います

# 開発環境
– Windows10 PC
– Python 3

# 導入

1.ライブラリをインストールします

~~~
pip install lu-vp-detect
~~~

2.OpenCVのバージョンが変わってしまうので注意(opencv-contrib-python==4.0.0.21)、4.5でやってみましたがLSDのエラーが出ました

3.プログラムの実行

~~~extract_vps.py
import os
import numpy as np
import cv2
import argparse

from concurrent.futures import ProcessPoolExecutor
fro

元記事を表示

データアナリストになるためのロードマップ【決定版】

この記事はNuco Advent Calendar 2022の25日目の記事です

# データアナリストになるためのロードマップとは

### 本記事の指す「データアナリストとは」
データアナリストとはデータの収集・分析のプロフェッショナルです。
分析した情報を元に仮説を立て、問題解決や目標達成を目指します。
本記事でいうデータアナリストとは、データベースへ自らアクセス可能で、データの処理と傾向の特定、主要なビジネス上の意思決定を支援するデータの視覚化が可能な人間を指します。

#### データアナリストの業務例

– プロダクトの機能改善、事前見積もりや効果検証
– 施策についての仮説設計と効果検証
– 予測モデル構築
– 事業戦略の振り返りやKPI設計

### 本記事の概要
本記事ではデータアナリストになるため

元記事を表示

【python】勉強メモ 速習Flask③

## 1 はじめに

今回は、DBに登録された情報を表示する学習です。
– [【python】勉強メモ 速習Flask②](https://qiita.com/qiitataro/items/682faa9749d596cb3496) の続きとなります。
– 今回は、修正を行うファイルのみ掲載します。

## 2 コード編集
app.pyと、index.htmlを以下の様に編集。
“`app.py
from flask import Flask
from flask import render_template
from flask import request
from flask import redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import pytz

app = Flask(__name__)
app.config[“SQLALCHEMY_DATABASE_URI”] = “sqlite:///blog.db”
db = SQLAlchemy(app)

元記事を表示

Twitterアプリの改悪にはウンザリだ!!!そうだ!!!Pythonista3からTweetDeckを閲覧しよう!!!!!

# Introduction

本記事では、TweetDeckをスマホ版UI/UXで、Pythonista3から閲覧する方法を紹介します。

## 環境 / 前提

– iOS 16.1.1
– Pythonista3 v3.3

Python自体の文法は扱いませんが、コードの解説は気持ち程度行います。

## 背景: Twitterのインプレッション可視化問題

2022年12月下旬某日、Twitterのトレンドは「インプレッション」「閲覧数」「可視化」「欲求承認モンスター」etc…とスマホ版Twitterアプリが追加したとある機能で物議を醸していた!!!

先日、Twitterアプリではツイートの左下にインプレッションの数(?)が**誰でも**見れるようになりました。
これにより大きくは2つの不満がTLでは散見されました。

– いいねの数とインプレッションの差で悲しくなる
– 従来のリプライ, RT, いいねの位置がずれてしまって不便

個人的には後者の方が嫌ですね。
まぁ~~Twitterが要らない機能を加えるのはよくあることなので~~どうせ慣れる気はします。
とはいえ、他

元記事を表示

正規表現を用いたPythonで動的に値を判定する方法

# 前提
ABC084-B問題での実装検討を端的にまとめる
> [ABC084_B問題](https://atcoder.jp/contests/abc084/tasks/abc084_b)

# 今回やりたいこと
* 正規表現を用いて変数の値を反映したい
* 毎回input値が変わるので動的に正規表現をかけて判定したい(今回動的に判定するのは文字数)

# 実装内容
“`ABC_084_B.py
import re

a, b = map(int, input().split())
s = input()

# aとbの値を受け取る値毎に動的に変更して文字数を判定する
print(“Yes” if re.search(fr'[0-9]{{{a}}}-[0-9]{{{b}}}’, s) else “No”)

“`

* fr”hoge”とすることでfstring関数とrow関数を併用することが可能
* `{` と `}`は2つ重ねればエスケープすることが可能

“`実行結果.py
# 下記結果の通り後は上記実装方法の様に、Noneなら”No”, matchするなら”Yes”とし

元記事を表示

Pytorchってめちゃくちゃ便利やん!

## はじめに
 初めまして,SinkCapitalインターン生の井上です.卒業論文の添削が返ってくる間に,Pytorchを触ってみようということで記事を書いていきます!

## 今回行ったこと
– Pytorchについての軽いサーベイ
– Pytorchを用いた超簡単なニューラルモデルの実装
## Pytorchとは
### Pytorchを使う理由
– オープンソースの機械学習ライブラリ
– DeepLearnignの実装が非常に簡単になる!
– Numpyと類似したTensorによりデータを扱う
– TensorはGPUを使用できるため,Google Colaboratoryで実装すると非常に高速な処理が可能

### よく使われるモジュール
– **autograd** Tensorの各要素による微分を自動で行う機能
– **optim** 様々な最適化アルゴリズムを実装したモジュール
– **nn** モデルを構築するためによく使われる層を集めたモジュール(ニューラルネットワークを構築)

## Pytorchを使ってみる
### 前提
#### 1.データ
sk-lea

元記事を表示

PythonのデコレータでStrategyパターンを実装する方法

# はじめに

『オブジェクト指向における再利用のためのデザインパターン』(通称GoF本)で紹介されているStrategyパターンをPythonのデコレータを使って実装する話です。この方法は『Fluent Python』を読んで出てきたので、自分でもちょっと真似してみました。

# Strategyパターンとは

「一連のアルゴリズムを定義し、それぞれをカプセル化して交換可能にします。クライアントはアルゴリズムを個別に呼び出すのではなく、単一のインタフェースを通じて使うアルゴリズムを変えられます。」
というようなことが、GoF本には書いてあった気がします。

## クラス図

![Strategy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960001/22276d41-b92e-0a61-0f51-3137b320f946.png)

* Context:それぞれアルゴリズムを実装したConcreteStrategyに処理を移譲します。
* Strategy:各アルゴリズムを実装するコンポーネン

元記事を表示

Elasticsearch Python Client (elasticsearch-py)でProxyを設定する方法

# 概要
Elasticsearch Python Client (elasticsearch-py)をプロキシサーバを通して利用する方法がググってもあまり出てこないため、簡単に設定方法をまとめました。
elasticsearch-pyのバージョンによって設定方法が少し異なりますので、v7とv8で分けて記載します。
[elasticsearch-pyのドキュメント](https://www.elastic.co/guide/en/elasticsearch/client/python-api/8.5/index.html)
[elasticsearch-pyのGitHub](https://github.com/elastic/elasticsearch-py)
# 準備
お手軽に試せるようにdocker-compose一発で環境が整うようにします。
## Elastic Cloud
[こちらを参考に作成](https://qiita.com/tomo_s_el/items/3584d0b1fabb0bafa4fa)
## 構成
以下のようなファイルを用意します。
“`
.
├──

元記事を表示

PythonによるX線回折顕微法(位相回復)

# X線回折顕微法(位相回復)とは
全てを理解するのは大変ですので、ここでは簡単に説明します。
詳しく知りたい方は、下のサイトをご覧ください。
本記事は、こちらを参考にしております。

http://www.jssrr.jp/journal/pdf/19/p003.pdf

X線を試料に照射すると、回折したX線がスクリーンに現れます。
回折したX線は、複素数のデータを持っています。
しかし、スクリーンに現れている像(観測可能なもの)は、実数部分の強度のみで位相の部分は観測できません。
試料の電子密度分布(オリジナルのデータ)をフーリエ変換して絶対値の2乗を取ったものです。
ゆえに、位相のデータは消えてしまいます。
これでは、元に戻そうと逆フーリエ変換をしても位相のデータがないために元には戻りません。
これを元に戻す手法が、今回紹介するX線回折顕微法(位相回復)というものです。

回復の流れは下の概略図です。
![Group 9 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253454

元記事を表示

NHKラジオ(らじるらじる)をGoogleCloudPlatformのサービスCloudRunで録音する

[IoTLTアドベントカレンダー](https://qiita.com/advent-calendar/2022/iotlt)最終日を担当するニアムギです。
普段はねこIoTLTで活動しています。年2回ほど、ねこ参加型のオンラインLTを開催しているのでぜひ登壇or視聴お願いしますー

今回は[NHKラジオ(らじるらじる)](https://www.nhk.or.jp/radio/)をGoogleCloudPlatform(以下、GCP)を使って録音する方法について記事にしました。

# きっかけ
子どもの習い事で「気象通報を聞いて天気図を書きましょう」という課題が出ました。
![tenkizu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237144/284a1084-fa7f-d69c-87f6-217f629d8547.png)
ラジオで日本近辺の気象情報を聴きながら専用用紙に各地点の風向き・風力・天気・気圧・気温を記載するといったものです。
※低学年にはかなり無理のある課題のため大人が手伝う前提

元記事を表示

【Django】公式チュートリアルの要点をつまむ-その7(管理サイトのカスタマイズ編)

## adminフォームのカスタマイズ
### フィールド表示の並び替え

“`python:polls/admin.py
from django.contrib import admin

from .models import Question

class QuestionAdmin(admin.ModelAdmin):
fields = [‘pub_date’, ‘question_text’]

admin.site.register(Question, QuestionAdmin)
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2932655/3845157b-89a8-f5f1-b4db-1b983afc5afe.png)

### フィールドセットの設定
“`python:polls/admin.py
from django.contrib import admin

from .models import Question

class Qu

元記事を表示

BurpSuite からの Christmas Present

## はじめに
初めまして。
シーエー・アドバンス(CAAD)技術統括本部セキュリティチームの @azama_yasuhiroです。
今日はクリスマスということで BurpSuite (以下 Burp とする)というプロキシーツールの Extender (拡張機能)を使用して Burp から Ascii Art の Christmas Present をもらいたいと思います。
Burp の Extender は Java・Python・Ruby の言語を使用できるのですが、今回は Python を使用して作成してみました。
## 事前準備
まずはじめに Python 環境を準備するため Jython の[公式サイト](https://www.jython.org/download.html)より Jython Standalone の jar ファイルをダウンロードします。
![Jython Standalone.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517080/4e3f43d3-5481-

元記事を表示

Pythonista3(WKWebView) とJavaScript の愛と友情のツープラトン 〜 コード間でのデータ受け渡し 〜。GLSL で遊ぶで!

この記事は、[Pythonista3 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/pythonista3) の25日目の記事です。

https://qiita.com/advent-calendar/2022/pythonista3

一方的な偏った目線で、Pythonista3 を紹介していきます。

ほぼ毎日iPhone(Pythonista3)で、コーディングをしている者です。よろしくお願いします。

以下、私の2022年12月時点の環境です。

“`sysInfo.log
— SYSTEM INFORMATION —
* Pythonista 3.3 (330025), Default interpreter 3.6.1
* iOS 16.1.1, model iPhone12,1, resolution (portrait) 828.0 x 1792.0 @ 2.0
“`

他の環境(iPad や端末の種類、iOS のバージョン違い)では、意図としない挙動(エラーになる)なる場合もあり

元記事を表示

Python 3 エンジニア認定実践試験に合格してPython試験をコンプリートしたので色々まとめてみた

:::note info
この記事は[Udemy Advent Calendar 2022](https://qiita.com/advent-calendar/2022/udemy) 25日目の記事です。
:::

筆者は3年前Python 3 エンジニア認定データ分析試験(受験当時はベータ試験)に合格した記念に投稿した以下の記事は御陰様で多くの方に読んでいただくことができ、同時に沢山の`いいね`を頂戴しました。

https://qiita.com/y-vectorfield/items/36fc6d773f01ae33cd2c

あれから3年の月日が経ち、新たに一般社団法人Pythonエンジニア育成推進協会主催の「実践試験」が開始されました。受験してみたところ、:cherry_blossom:無事合格:cherry_blossom:しました。これでPython試験は4つ全てに合格し、無事コンプリートしました。よって、今回も記憶が薄れないうちに実際に取り組んだ試験対策等の情報をdumpしておこうと思います。 :dancer: :da

元記事を表示

discord botでminecraft serverを操作する【総集編】

# 初めに
この記事は[discord botからminecraft serverを動かすことが目標のアドベントカレンダー](https://qiita.com/advent-calendar/2022/itohal)最終日です.

必要な環境は
– Python 3.8以降
– discord.py 2以上
– java 17以上

です.私の環境は
– WSL, Ubuntu22.04.1
– Python 3.10.6
– discord.py 2.1.0

となっています.

# discord botを作成する
まず,botを作成するためにアカウントを取得します.
[こちらの記事](https://qiita.com/halglobe0108/items/dc056cc48256eeff5526)で説明しています.[discord developer portal](https://discord.com/developers/docs/intro)にてアカウントを作成しましょう.このとき,トークンをコピーしておいてください.

# トークンを環境変数に設定
先程コピーしたト

元記事を表示

M1の審査員の審査能力を評価する方法について考えてみた

先日M1が開催されて、一部の審査員の採点が物議を醸していました。この件に関しては擁護派の方も多く、単に点数の幅を大きくとっているだけどいう意見もありました。
 そこで私は正しい採点とはなにか、それを数値化する方法はないかということを考え、pythonコードを書いてみました。 断っておくと、私の数学力は学部1年レベルですので、結構おバカなことをしてしまっているかもしれませんが、そんな場合は優しくご指摘いただければと思います。
また、()で囲っている部分は独り言のようなもので、そこまで重要ではないので、後々おかしいと感じた点などがあれば、その都度見返していただければと思います。

 審査員の採点能力を数値化する上での指針

1.ある審査員の審査能力を評価する場合、他の審査員の評価の平均を”正しい審査”の”うちの一つ”と定義する。
 (最終的に得られた審査能力を用いて重み付けをして繰り返し計算していく方法もあるように思えるが、私のキャパを超えている気がする。)
2.”うちの一つ”と書いたのは、平均値や標準偏差が違っても芸人さん達の点数の順位、及び、点数の差の比(日本語が下手で申し訳ないが言

元記事を表示

【AtCoder】ABC283 のA,B,C,D における Python解説

ABC 283のA,B,C,D 問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。

この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。

また、問題の難易度を表す指標を [Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。

質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)

作者プロフィール
Atcoder :[緑 882](https://atcoder.jp/users/tsuru1471)
20221225 現在

# 目次
[はじめに](#はじめに)
[A.Power](#apower)
[B.First Query Problem](#bfirst-query-problem)
[C.Cash Register](#ccas

元記事を表示

顔の向きを求めてみた

# はじめに
この記事は、[SLP KBIT Advent Calendar 2022](https://adventar.org/calendars/7569)の23日目の記事になります。
この記事ではカメラから取得した画像をもとに、dlibやnumpy、openCVを用いて顔の向きを求めます。顔の向きは、線で示しており角度を求めるには追加で計算を行う必要があります。

# 開発環境
“`
openCV 4.6.0.66
numpy 1.23.1
dlib 19.24.0
“`

# 解説
コードの要点のみ解説します。

ここでは、カメラの姿勢を計算しています。solvePnPではカメラの位置、姿勢を3次元の座標と2次元の座標の対応から求めれます。
“`
success, vector_rotation, vector_translation = cv2.solvePnP(figure_points_3D, image_points_2D, matrix_camera, distortion_coeffs, flags=0)
“`
projectPointsでは、3次元の点を

元記事を表示

OTHERカテゴリの最新記事