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

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

「ライブラリ」 順列 組み合わせ

# product 重複ありのありとあらゆるすべての順列
1~3の数字を3つ並べる場合 3×3×3通りの組み合わせを出力
“`py
from itertools import product
for A in product(range(1,4),repeat=3):
print(A)
# 27通りの順列が出力される
“`

# combinations_with_replacement 要素は重複するが、同じ組み合わせは出ない
先ほどと同様に1~3を3つ並べる場合 (1,2,3)と出力されていれば、(3,2,1)(2,1,3)は同じとみなされ出力されない
5C2で10通り
“`py
from itertools import combinations_with_replacement
for i in combinations_with_replacement(range(1,4),3):
print(i)
# 10通り
“`

元記事を表示

DearPyGuiでshadertoyのshaderを描画

pyimguiではOpenGLのコンテキストが喧嘩して諦めた。DearPyGuiではOpenGLを使っていない記事を発見。もしかしたら、OpenGLが使えるのではで試して成功。
まあ、説明がどうこうではないのでサンプルだけ。
“`python
import dearpygui.dearpygui as dpg
from OpenGL.GL import *
from OpenGL.WGL import *
from ctypes import *
import numpy as np

# OpenGL Context init
xsc, ysc =windll.user32.GetSystemMetrics(0),windll.user32.GetSystemMetrics(1)
hwnd = windll.user32.CreateWindowExA(0,0xC018,0,0,0,0,xsc,ysc,0,0,0,0)
hdc = windll.user32.GetDC(hwnd)
pfd = PIXELFORMATDESCRIPTOR()
SetPixelFormat(h

元記事を表示

Discord.pyV2.0にてcogとSlashCommandを一緒に使う方法

# 前置き
本記事では**discord.py 2.0**を使います。
まだダウンロードしてない場合は
“`shell:cmd
$ python -m pip install -U discord
“`
でインストールしてください

# 1.commands.Botには…?
discord.pyV2.0にはSlashCommandを使うための`app_commands`が入ってます。
`discord.Client`は別の記事で`tree = app_commands.CommandTree`を定義する必要がありましたが、`commands.Bot`には`app_commands`が入った`discord.Client`を継承してるので定義は必要ないです。

# 2.実際に試してみる
“`py:main.py
import discord
from discord import app_commands
from discord.ext import commands

INITAL_EXTENSIONS = [
“cogs.help”,
“cogs.veri

元記事を表示

Python から Delphi のメソッドを使う方法

# はじめに
本記事は、以前の [Delphi のフォームを Python から使う方法](https://qiita.com/iihi/items/9dc35a2435591b5d3bb1) とその後の [Delphi で作った複数のフォームを Python で呼び出す方法](https://qiita.com/iihi/private/21f10388edc002939764) の続きとなります。

今回は、Delphi で作ったフォームを Python で使い、そこから Delphi のメソッドを呼び画像データを取得し、Python 上で Delphi の Image に画像を表示させてみます。

## 前提条件
[Delphi で作った複数のフォームを Python で呼び出す方法](https://qiita.com/iihi/private/21f10388edc002939764) の記事の前提条件と同様です。
詳細はそちらの記事をご確認ください。

### 補足
基本的に情報が少ないため、模索しながら実施してますので、本来の想定された実装の仕方かどうかは分かりません。ま

元記事を表示

アルゴリズム実技検定(PAST) 第11回 F問題 Python解答例

Supership VPoEの名畑です。
趣味で競プロやっています。

アルゴリズム実技検定(PAST)の過去問題解答例シリーズです。[アルゴリズム実技検定(PAST) 第11回 E問題 Python解答例(二分探索)](https://qiita.com/nabata/items/ad3797a54658bbc410eb)の続きです。

今回は第11回のF問題の私の解答例(Python3)を公開します。

ちなみにA問題からF問題までの合計点が46点なので、ここまで来れば初級(45点)ですね。
[高橋様のつぶやき(2019年時点)](https://twitter.com/chokudai/status/1196371845563346944)によるとAtCoderでは茶色相当ってことになります。

## そもそもアルゴリズム実技検定とは?

そもそもアルゴリズム実技検定ってなんですか? という方は[アルゴリズム実技検定(PAST)について 並びに 第11回A〜C問題 Python解答例](https://qiita.com/nabata/items/0421f20e8ec849ee

元記事を表示

Pythonでgnuplotの図に寄せる

pltでgnuplotみたいに図を書きたいと思ったので,色々設定をいじって近づけてみた.いちいち設定するのは多少面倒かもしれないが,pltの設定はかゆいところに手が届くと思う.しかしながら,手の込んだ図はseabornに軍配が上がりそう.
あと,gnuplotでは第2x,y軸を`mirror`で簡単に処理できるところを,pythonでは少し面倒.pltがよく使われるコマンドならもっと簡単にできるように実装されてると思う.そもそも,gnuplotで`mirror`を設定している研究室は稀なのかもしれない.

#### ソース
“`python:gnuplotの散布図風の図
plt.rcParams[‘font.family’] = ‘Times New Roman’ # font familyの設定
plt.rcParams[‘mathtext.fontset’] = ‘stix’ # math fontの設定
plt.rcParams[“font.size”] = 15 # 全体のフォントサイズが変更されます。
plt.rcParams[‘xtick.labelsize’] = 2

元記事を表示

sys.path.append

通常版(.py)
“`
sys.path.append(os.path.join(os.path.dirname(__file__), ‘<参照したいディレクトリのパス>‘))
“`
notebook版(.ipynb)
“`
sys.path.append(os.path.join(os.path.abspath(”), ‘<参照したいディレクトリのパス>‘))
“`

元記事を表示

VANTRUE Element 1 Lite Hack

# ドラレコだけど、リアルタイムに動画を撮りたい
車の前方映像をOpenCVで処理したいと思って、でも毎回車の中にPC持ち込むのもやだなと。
しかも、Webカメラとかだと、台座とかも考えないといけない。

GoProも考えたけど、夜をメインに取りたいから、初めから車載で撮ること想定しているドラレコのほうがいいかなと。
そんな中、物色していたら、WiFi付きのドラレコを発見。スマホから動画見ることができるので、PCからも撮れるかもと。
さらに調べると、“`VANTRUE Element 1 Lite“`が3000円引きで売ってるので、見切り発車で購入。

# ドラレコを卓上で使う
PCに直接USBで繋ぐと、SDカードリーダモードになるので、電源アダプタで繋ぐとカメラとして動く。
台座に繋げた場合だけ、カメラとして動く懸念もあったけど、それはクリア。カメラ本体だけ卓上で使えそう

# PCからドラレコの映像を見る
結論から言うと、ドラレコにwifi接続して、“`rtsp://192.168.1.254/xxx.mov“`で見れた。
ただ、割と遅延があり(体感1~2秒)、Webカメ

元記事を表示

AWS TimestreamのtimeカラムをLambdaでJSTに変換する際のTips

# 問題
Timestreamにて“`time“`カラムが下記のように“`タイムゾーン無し&文字列“`として出力される場合があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342722/d7f9fc4f-e0fa-2736-f51a-c3b3d9380dc2.png)

Lambdaで時間処理を行う場合、文字列では不便ですのでJSTに変換しなければなりません。
ですが、単純に“`str → date“`では変換できない事象が発生しましたので共有したいと思います。
できれば、レイヤーも追加せず簡単に行う方法かつ、python3.9に合うモダンな方法にしたい。

# 解決策
そのままの状態では、dateフォーマットに合わないことがわかりました。
最初に文字列として取得できるので、**末尾の桁数を調整**することでやや力技ですが解決できました。

“`python
from datetime import datetime
from zoneinfo impor

元記事を表示

python処理の進捗可視化

通常処理や機械学習、Deeplearningなどの実行時に現在の進捗を確認したいと思ったことはありませんでしょうか。今回はそれが叶えられるライブラリ「tqdm」を用い、プログレスバーで表示してみましょう。
## テスト環境の作成
“`
python -m venv tqdmtest
.\tqdmtest\Scripts\activate
“`

## ライブラリをインストール
“`
pip install tqdm
“`

## テスト実行
“`python
import time
f

元記事を表示

[python] Django 外部キー(Parent)のデータ、filterを用いてChildのデータを参照する

# 環境
Django 3.1.13
python 3.9

# Code
## Model
“`python:models.py
from django.db import models
from django.contrib.auth.models import User

class Work(models.Model):
title = models.CharField(‘Work title’, max_length=255)
created_by = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
created_at = models.DateTimeField(auto_now_add=True)

def __str__(self):
return self.title

class Commission(models.Model):
title = models.CharField(‘commissio

元記事を表示

BibLaTeXの文献ファイルをLaTeX,markdown,docxに変換

BibLaTeXで日本語と英語の混在を扱えるようにbbxファイルを作成した際にBibLaTeXがどんな風にして文献リストを作成しているのかがわかったので,その経験をもとに,BibLaTeXが吐き出すbblファイルをプレーンなLaTeXあるいはbibitem,markdown,docxに変換するツール「bblconverter」を作ってみました。

https://github.com/sbtseiji/bblconverter

bblファイル自体は非常に単純な構造で,bibファイルの各項目をリスト形式に並べただけなので,これをbibitemやmarkdownにするのはさほど難しいことではありません。ですが,心理学研究とは文献の記載ルールが異なるジャーナルに投稿する場合や,将来的に文献リストの書式が変更になった場合などのことを考えると,bblファイルを直接LaTeXやmarkdownに変換する方式だと,その都度スクリプトを書き直さなくてはならなくなるので,それは避けたいところです。そこで,[こちらの記事](https://qiita.com/cuhey3/items/956e16126

元記事を表示

TeachableMachineで作ったモデルをダウンロードしてPythonで実行

# はじめに
TeachableMachineはウェブ上で簡単に機械学習モデルが作成できるウェブアプリですが、それに加えて、作成したモデルをダウンロードしてPythonやJavascriptで作ったアプリケーションで利用することもできます。ここでは、以前作成した[機械学習を使った破断面の画像分類](https://qiita.com/_Moony/items/01ce3d095d95696c399c)のモデルをダウンロードして、Pythonで作ったプログラムで使えるようにしてみました。

# TeachableMachineのモデルのダウンロード
まず、学習後のモデルをエクスポートするため、アプリ右上の「モデルをエクスポートする」をクリックします。
右上-モデルをエクスポートする.jpg

ここではPython

元記事を表示

AIからもらった、Kaggleグランドマスターがコンペで使っているテンプレート

これはAIを利用しようとした愚かな人間がむしろ悟られる道筋を記録したドキュメンタリです。

# 序

私は業務の都合で最近データ分析の仕事が増え、ついでに加入してほとんど活動してなかったKaggleで、これから少し活発に活動してみようかと思っているところです。

こんな私でもコンペなんかに手を出してみようかと思ってます。個人的にはJupytor notebookやGoogle Colabで趣味レベルのデータ分析はやってみましたが、流石のKaggleはメンバーのレベルも異次元と言っていいくらい高く、メダルへのグロースハックもできそうではなかったです。

人間というのはピンチになった時こそ知恵を発揮する生き物。そうだ。グランドマスターのテンプレートでも参考になれたら、早道が見れるかもしれないと、思いがつきました。

しかし、グランドマスターのテンプレートとは、伝説の聖剣みたいに、そんな簡単に得られるものではありません。検索にも出ないし、Kaggle内部で見ても、これだというものがないです。周りにグランドマスターがいるわけでもありません。

そんな僕はある日、FacebookでChatGPT

元記事を表示

FlaskにおけるSECRET_KEYの役割についてざっくり理解する

# SECRET_KEY

### 公式ドキュメント
https://flask.palletsprojects.com/en/2.2.x/config/#SECRET_KEY
> セッションCookieに安全に署名するために使用され、拡張機能またはアプリケーションによるその他のセキュリティ関連のニーズに使用できる秘密鍵。それは長い乱数bytesまたはstr.

https://study-flask.readthedocs.io/ja/latest/02.html#flaskr-config-py
> データベースの設定と、セッション情報を暗号化するためのキーを設定します。

### 一言で
結論、SECRET_KEYとは

**セッション情報(Cookie)を暗号化する際に使用する秘密鍵(文字列)**

ということですね。この文をちゃんと理解するためには、Cookieについても深く知っておく必要がありそうです。以下でCookieについても今一度確認してみましょう。

# Cookie
https://developer.mozilla.org/ja/docs/Web/HTTP/C

元記事を表示

四次元立方体(正八胞体)が三次元空間を通過する様子をmatplotlibで描画

# はじめに
筆者は数学もプログラミングも得意ではないため、間違っているところやもっといい感じにできるところがあれば助言お願いいたしますm(_ _)m

# 四次元立方体とは
[四次元立方体(正八胞体)](https://ja.wikipedia.org/wiki/%E8%B6%85%E7%AB%8B%E6%96%B9%E4%BD%93)とは、我々のよく知る立方体を四次元に拡張したものです。
今回は一辺の長さが$1$であるものを考えます。

頂点は座標が$(x, y, z, u)$の各要素が$0$か$1$であることを考えれば、$2^4=16$個あることがわかります。
辺の数も数えておきましょう。$(x, y, z, u)$のうち、どれか3つを固定すると辺が一つ決まります。
> 例:$x=0, y=1, z=1$を固定すると、$(0, 1, 1, 0)$と$(0, 1, 1, 1)$を結ぶ辺が決まる。

例のように考えると、辺の数は${}_4C_3 \times 2^3=32$個あることがわかります。

# 今回やること
この記事では、
1. 四次元の方向ベクトル$\mathbf{e}

元記事を表示

Pythonで任意のパスワードを使ってAES-GCM暗号化(+ scryptによる鍵のハッシュ化)

仕事関係で作ったプログラムの備忘録
# はじめに
概要:パスワードをscryptでハッシュ化した値を鍵として、文字列をAES-GCMで暗号化する、という内容です
背景:RPAによる自動化を検討する際にログインパスワードが複数存在しており、最初にすべてのパスワードを入力するのが面倒でした
 そのため複数パスワードをまとめて暗号化しておき、1つのパスワードで呼び出せるようにすることで省力化を図る目的で作成
 ※暗号化に関する知識はほぼない状態からはじめたので、AES暗号や鍵導出関数に関する詳細は参考文献に記載の知識程度しかありません。

## 動作テスト環境
OS: Windows 10 Pro 64bit
言語: Python 3.9.13
ライブラリ:pycryptodome(外部ライブラリなので要pip install)

# ソースコード

“`Python:sample_AES_GCM.py
import os
import hashlib
from Crypto.Cipher import AES

# 暗号化
def encrypt(messag

元記事を表示

クラファンへの挑戦 PART 1(ラズベリーパイと電子ペーパーを繋げよう)

オリジナルアーセナルグッズを作りたい!
——————–
私は現在**クラウドファンディングに挑戦**しようと思っています。自分の情熱を注げるものを洗い出していたら圧倒的にアーセナル(イギリスのサッカーチーム)のことが好きでした。なので**アーセナル**に関係したものをクラファンで作りたいと思いました。

その際、アイディア出しを行っている際にこちらの記事を見つけました。

https://kotamorishita.com/rpi-epaper-weather-station/

これの**アーセナル情報もりもり版**を作りたいと思っています。
↓完成イメージ図
![イメージ完成図 (2).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885188/3a121feb-2fda-c0aa-2245-6684d9890f92.jpeg)
#絵がうまい #字がきれい

ラズベリーパイを使って電子ペーパーを表示させてみよう!
———————–
ラズ

元記事を表示

[前回の続き実践]mvtecデータセットを読み込む

# 今回は実際に画像を使って読み込む(今回はラベリング無し)

## 使用するデータ
[MVTEC ANOMALY DETECTION DATASET](https://www.mvtec.com/company/research/datasets/mvtec-ad)
から画像データをダウンロードできます。

### bottleを使用
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3079535/b38fea4c-423d-9d5b-374c-51163ecd9dcc.png)

## ダウンロードしたデータについて
mvtec/bottle
– train good
– test good
——-以下は異常データ——-
– test broken_large
– test broken_small
– test contamination

のようにそれぞれファイル分けされている。
注意すべき事としてtrainの中に異常データは入っていない。

## アドレス読み

元記事を表示

Pythonを改めてちゃんと学ぶメモ

# はじめに
以下のような人がPythonを改めてちゃんと学んでいます。
ここにはメモを都度書き出していきます。
– 元々、他のプログラミング言語はわかる(Perl, Java, JavaScript, C/C++/C#, SQL, …)
– 最近管理系の仕事が増えてきたが、Pythonをやらなくてはいけなくなった
– せっかくだから、少しでも業務に役立てたい(Excelの困りごととか)
– せっかくだから、4年ぶりにQiita使ってみるか

# 文法の気づき1
– 数値の型が `int` と `float` しかない
– `double` はないんや… [^1]
– 累乗は `3^3` ではなく `3**3` と書く
– 文字列の連結は `+`
– `&` とか `,` ではない
– `+` の方がなじみがあるので良い
– 文字列の繰り返しに掛け算が使える `”hoge”*5`
– Perlと一緒
– 数値->文字のcastは `str(1)`
– 文字->数値のcastは `int(“1”)`, `float(“12.3”)`
– 数値はいったん

元記事を表示

OTHERカテゴリの最新記事