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

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

ArUcoマーカーで常時正面画像を確保する

# はじめに
2年前に公開した我がYouTube動画に今年になってコメントが付いた。
あるプロジェクトについてソースコードを求めるものだった。
それに応えるため今回の記事を著す。

# ArUcoについて
ArUcoはOpenCVで使えるマーカーモジュール。ノーマル(?)のOpenCVではなく拡張モジュール**opencv_contrib**が必要。
Pythonなら`pip install opencv-contrib-python`でインストールする。
呼び出すのは普通に`import cv

元記事を表示

インターに通う子供が使えるWordle補助スクリプトを作った話

# Wordleとは

Wordleは、5文字の英単語を当てるゲームです。なにもヒントがない状態から、候補を入力するたびにヒントが増えていきます。ヒントは文字の色で表現され、緑色 =「確定」、黄色 =「含まれるけど位置だけ違う」、グレー =「含まれない」をそれぞれ表します。できるだけ少ない回数で正解に到達することを目的としています。問題は毎日変わり、答えをバラさずに結果をTwitterなどで共有することができます。

[Wordle – A daily word game](https://www.nytimes.com/games/wordle/index.html)

# きっかけ

ちょっと前に、子供(10歳男児)にさりげなく勧めたところ早速やり始めました。そして、それから毎夜、本を読み聞かせる前に、Wordleを各自やって、何トライで回答にたどり着けるかを競うことが僕ら親子の習慣になりました。

はじめは、スマホの辞書アプリ COBUILDを使って、ワイルドカードで単語を絞ったりしていたのですが、確定している文字、位置(緑条件)でしか絞り込めないことから、自分でツールを作っ

元記事を表示

Python Pandasのresample関数を使ったcsvデータの集計

***今回はPandasライブラリのresample関数を使って厚生労働省が提供している日次のPCR検査実施人数のオープンデータ(csvファイル)を月次集計してみます。***

:::note info
**流れは、次の通りです。**
– **1. 厚生労働省からオープンデータPCR検査実施人数を取得**
– **2. 入手したデータファイルをUnixデータ形式に変換**
– **3. PythonでPandasのresample関数を使って月次集計。集計結果はcsv形式で出力する。**
– **4.実行する**
– **5.集計結果を確認する**
:::

では実際にやっていきます。

## 1. 厚生労働省からオープンデータPCR検査実施人数を取得
下記サイトからファイル名pcr_tested_daily.csvをダウンロードします。
https://www.mhlw.go.jp/content/pcr_tested_daily.csv

– pcr_tested_daily.csv
![スクリーンショット 2022-06-25 10.19.02.png](https://qii

元記事を表示

python 正規表現(メモ)

# 正規表現のメモ
自分用のメモです。。。

・「.(ドット)」
なんでもいい1文字
例)
“`
pattern = “.球”
# 野球
# 卓球
# 草野球 →×
“`

・「+(プラス)」
直前のパターンの1回以上繰り返し
例)
“`
pattern = “.+球”
# プロ野球
# 野球
# 球 →×
“`

・「*」
直前のパターンの0回以上繰り返し
例)
“`
pattern = “.*球”
# プロ野球
# 野球
# 球
“`

・「?」
直前のパターンの0回か1回
例)
“`
pattern = “.?球”
# 野球
# 球
# プロ野球 →×
“`

・{min, max}
繰り返し回数を指定(min, maxそれぞれ省略可)
例)
“`
pattern = “.{1,4}球”
# 野球
# プロ野球
# 少年軟式野球 →×
“`

・()
対象パターンをグループ化
例)
“`
pattern = “(えい)+”
# えい
# えいえいえい
“`

・(|)
いずれか
例)
“`
pattern = “(はい|おう)+!”
# はいはい!
#

元記事を表示

画像内個人情報を黒消ししてみた

## はじめに

画像内の個人情報を黒消ししてみます(Pythonコードで実装)。
画像内の電話番号を見つけ、黒塗りするシンプルなものです。

## 黒消し結果から

|処理前の画像|処理後の画像|
|:–:|:–:|
|![input.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/914bfe6f-26ea-b0aa-85c5-ec4387f98f6d.png)|![output.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/66577963-b1a6-6c9e-d493-29fb5e9ee14f.png)|

## 使用したツール

– Tesseract
– さまざまなオペレーティングシステム上で動作する光学式文字認識(OCR)エンジン
– Apache Licenseの下でリリースされたフリーソフトウェア
– OpenCV
– 画像処理・画像解析および機

元記事を表示

【Pandas】データを集計する方法 | groupby/pivot_table

## 【はじめに】

Pythonライブラリの「Pandas」の中で、データを集計する方法として「groupby」、「pivot_table」があります。

どちらを使った方が良いのか分からない方のために、集計の目的に応じてどちらを使用するべきか分かりやすく紹介していきます。

### 本記事の内容

– pandasのインポート
– csvファイルの読み込み
– データを集計する | groupby
– データを集計する | pivot_table

## 【pandasのインポート】

“`Python
import pandas as pd
“`

## 【csvファイルの読み込み】

「1920年から2015年までの全国の人口推移のデータ」を使用します。

“`Python
df = pd.read_csv(‘data.csv’, encoding=’shift-jis’)
df
“`

| | 都道府県コード | 都道府県名 | 元号 | 和暦(年) | 西暦(年) | 人口(総数) | 人口(男) | 人口(女) |
|

元記事を表示

【fastai2ベースライン】PETS、単一ラベル多クラス分類、転移学習、混同行列、モデル保存・復元、運用時の推論

# はじめに
fastai2でディープラーニングするにあたり、テンプレート・ベースラインになるようなNotebookを作成しました。

参考:公式チュートリアル [Computer vision | fastai](https://docs.fast.ai/tutorial.vision.html)

?JupyterNotebook・ソースコード:[【fastai2ベースライン】PETS、単一ラベル多クラス分類、転移学習、混同行列、モデル保存・復元、運用時の推論.ipynb – GitHub](https://github.com/lilacs2039/ColabNotebooks/blob/master/fastai/%E3%80%90fastai2%E3%83%99%E3%83%BC%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%B3%E3%80%91PETS%E3%80%81%E5%8D%98%E4%B8%80%E3%83%A9%E3%83%99%E3%83%AB%E5%A4%9A%E3%82%AF%E3%83%A9%E3%82%B9%E5%88%86%E9

元記事を表示

pythonにおけるint型変数について調べてみた

# pythonのメモリ配置(int型)
突然ですが、pythonのint型変数って不思議じゃないですか??
例えばC言語とかだと、初めに変数(箱)の型を定義して、その中に具体的な値を入れるっていうイメージじゃないですか。
“`c:int_malloc.c
#include

int main(void)
{
//箱を定義
int x;

//箱の中に数字をいれる
x = 10;
printf(“%d\n”, x);
printf(“%p\n”, &x);
return (0);
}
“`
“`c:result
10
0x16f58b678
“`
こんな感じでC言語では、int型変数を定義したタイミングでint型分のメモリ(4byte分)が確保されますよね。
だから、C言語のint型は[-21473648, 2147483647]までの値を取れて、それを超えるとオーバーフローを起こす、と。

“`c:overflow.c
#include

int main(void)
{
int x;
int ove

元記事を表示

Python+VSCodeにおすすめの拡張機能

# 1.概要

2022年6月にこれまで使っていたAtomの開発が中止となりました…
[~GitHub、コードエディター「Atom」の開発を終了 ~年内にアーカイブ~](https://forest.watch.impress.co.jp/docs/news/1415735.html)

そのため、新たなエディタとしてVSCodeを導入し、約1か月使ってみて使える拡張機能を紹介したいと思います。

# 2.VSCodeのおすすめ拡張機能

### Python

まずは普通にPython。これがないと、そもそもPythonを動かすことができない。

### Japanese Language Pack for VS Code

explorer.fileNestingへの誘い~エクスプローラーを見やすくしよう!~

# Abstract

VScodeのエクスプローラーは、アイコンテーマの拡張機能をインストールするなどによって、大変みやすくなります。しかしNode.jsなどで開発を行なっていると、設定ファイルが大量にトップディレクトリに存在することで、目的の設定ファイルが探しにくいということがあると思います。そこで本記事では、そのような悩みを解決し得る機能、 Explorer file nesting を解説しようと思います。
本記事ではまず Explorer file nesting が何をするものなのかについて紹介したのち、核となる`explorer.fileNesting.patterns`について基本から特殊変数の一覧と意味を紹介します。
この機能使いこなせば、エクスプローラーの表示が更に見やすくなり、QOLが向上するに違いありません。
本記事を読み終えると、例えば以下のようなエクスプローラーにすることができ、package.jsonに主な設定ファイルを集約するようなことができます。
![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

「英数字を含めた13桁のパスワードなので解除は難しい」のか【検証してみた】

# 初めに
2022年 6月23日、兵庫県尼崎市でこのようなニュースが流れました。

https://news.yahoo.co.jp/articles/0974f871f11fa17d9011fe7f275bbe2560139371

個人情報を紛失してしまった点についても落ち度はありますが、この会見で**パスワードの桁数***や***利用されている文字種**を公開してしまったことで世間を騒がせています。
(そもそも機密情報を簡単に持ち出せる仕組みがNGですが…)
今回は「13桁とわかっているパスワードはどのくらいの速さで解読されてしまうのか」を検証して、ITリテラシーの啓蒙活動をしたいと思います。

# 検証環境
パスワード付きのUSBが用意できなかったので、解読速度の低いPC(低スペックのPC)で検証しました。

– 端末:ラズパイ4B
– CPU:4コア(1.5GHz)
– メモリ:4GB

# 検証結果
Pythonスクリプトを作成し、実行してみました。
また今回は大文字を含む英数字(0~9, a~z, A~Z)の総当たり(ブルートフォースアタック)で検証を行います。

元記事を表示

尼崎市の事例から学ぶパスワードの大切さ

北海道をこよなく愛するピーターです。
本日2022/6/24㈮のホットニュースは[尼崎市が全市民約46万人の個人情報が入ったUSBを紛失する](https://nlab.itmedia.co.jp/nl/articles/2206/23/news170.html)です。
[そして見つかりました。](https://news.yahoo.co.jp/articles/21dc39e824e6ca4ac7b7826ae9220ed357bb1e0a)
新情報はこれから出てくるとは思いますが、**「パスワードに関する情報(ヒント) は漏らしてはいけない」** のいい教材になったと思います。
そこで今回はパスワードを破るにはどれだけの時間がかかるかを、条件別に求めてみました。
ざっと計算しただけなので、抜け漏れはあります。
もしそもそもの計算式が違うよ等あればご指摘いただけると幸いです。

# 候補となる文字列と計算時間

## 候補となる文字列

パスワードに使用できる文字列は以下が考えられます。
・アルファベット
・数字
・特殊文字
これらをコードで確認しました。
結果は以下の通りです。1

元記事を表示

RuntimeError: CUDA error: no kernel image is available for execution on the device

BERTを使用している時にエラーが発生してかなり困ったので、自分用メモも兼ねてまとめようと思います。

最初に記載しておくと、ビギナーがやるようなミスをしています。
ちなみに自分はくっそビギナーです。

どんなエラーかと言うと...
**GPUを使う処理でカーネルがないんだけど??**
(RuntimeError: CUDA error: no kernel image is available for execution on the device)
っていうエラーらしいです。
そんなん知らんがなって感じです。

現状

まず、自分の現状の環境についてですが、以下のような感じです。
#### PCの環境等
“`
# CUDAのバージョン —> 11.2
print(os.name)
>> posix #unix系
!python –version
>> Pyrhon 3.8.5
torch.__version__
>> 1.8.1+cu102
“`
#### 各々の環境に合った推奨コマンド
![image.png](https://qiita-image-store.

元記事を表示

Django(==4.0)でのFileを扱うためのただの覚書

# 前提の気持ち
Djangoへそこそこの大きさのファイル(数10MB)をフォームでアップロード(POST)するときに、ファイルがどういう形式で扱われているのかよくわからないので、調べてみよう。

# 調べたこと
Djangoでファイルを扱うためのクラスは、ファイルサイズ、保存場所によっていくつかあるんですね。

### UploadedFile
DjangoへアップロードされたファイルをDjangoでの使用に便利なオブジェクトとして扱うためのクラス。
フォームでsubmitされたデータはこのインスタンスとして、`request.FILES`に格納されている。
“`python
class UploadedFile(File):
“””
An abstract uploaded file (“TemporaryUploadedFile“ and
“InMemoryUploadedFile“ are the built-in concrete subclasses).

An “UploadedFile“ object behaves som

元記事を表示

永い後日談のネクロニカ ココフォリア フォーマットコンバータ

記事投稿がかなりご無沙汰ですが

ネクロニカのキャラクターシートといえば
「キャラクターシート保管所様」ですが
キャラシを手動管理する点においてはお世話になっていますが
管理しているデータを他のオンラインツールで参照する際は別で
窓を開いてキャラシを確認してセッションを行うわけですが
結構手間な上間違ってキャラシページを閉じてしまったりあまり
セッションしながらキャラシを運用するのには向いてないように
思います
つい最近ココフォリアでネクロニカを遊ぶ機会が多く
セッション中だけでもいいからココフォリアのみでデータ管理を
簡単にすべく今回のクラスを作りました
ココフォリア上でのネクロニカの駒のフォーマットも同時に定義
していますがあくまで私個人がこの形で運用するのがいいのでは
ないかという判断で作成しています

基本的な使い方としては下記クラスにキャラクターシート保管所様より
ココフォリアフォーマット化したいキャラクターのテキストデータを出力して
テキストをファイルに保存して
保存したファイルを下記クラスに渡してClip_Out()を実行すれば
ココフォリア用のデータに変換されたデータが

元記事を表示

Python-SPIKE プライムで非同期処理

今回はLEGO SPIKEPrimeのPython環境でマルチタスク(非同期処理)を実装してみたので備忘録として残す。

SPIKE アプリケーション内のPythonエディターでコーディングしていくのだが、アプリケーション内のナレッジベースにはSPIKEPrimeを制御するために使うことができるメソッドについての解説は網羅されているが、MicroPythonから提供されているライブラリに関する情報はほとんど掲載されていないため、MicroPython環境で利用できそうな非同期処理用のライブラリを検索した。(かつpipなどによるインストールが不要なものである必要がある)

00.png

## 機体
今回のソースコードを動かすために用意した機体は以下のような簡易的なもの。
画像では車型になっているが、

元記事を表示

Djangoで作ったWebアプリをherokuにデプロイする~venv環境にて~

# 背景

DjangoでWebアプリを作る際、herokuにデプロイするのはとても手軽で便利です。
しかし、本番用とローカル開発用の両立した設定はなかなかややこしいです。
毎回どうやったらいいか忘れて検索しているため備忘録として残しておきます。

# この記事を読んで得られる知見

+ venvでの環境構築
+ Djangoで作ったアプリをheroku向けにデプロイするための設定

# この記事で扱わないこと

+ Djangoでのアプリケーション作成方法
+ heroku関連以外のミドルウェア・ライブラリ

# 環境・使用ツール

+ VSCode
+ python-3.9.10
+ Django==4.0.2

## Pythonのvenv環境を構築する

“`python:Macの場合
python3 -m venv test-python #仮想環境の作成

source test-python/bin/activate #アクティブ化

pip install –upgrade pip #pipをアップグレード
“`

“`python:Winddowsの場合

元記事を表示

Raspberry pi への mediapipe のインストール

## はじめに
`pip install mediapipe` でインストールできなかったため方法を調べていたところ、他のページで紹介されている方法が私の環境ではうまくいかなかったので方法を残しておく。

## 環境
本体 : raspberry pi 3
os : raspberrypi os
python : 3.7.10

## うまくいかない
他の方の環境ではうまくいったっぽいのでこちらでやるといいかも、、
https://github.com/PINTO0309/mediapipe-bin

## インストール
rasoberrypi 用の mediapipe が用意されていたためこちらをりようする。
“`
sudo apt install ffmpeg python3-opencv python3-pip
sudo apt install libxcb-shm0 libcdio-paranoia-dev libsdl2-2.0-0 libxv1 libtheora0 libva-drm2 libva-x11-2 libvdpau1 libharfbuzz0b libbl

元記事を表示

IDSカメラをPythonで制御するためのパラメータ

諸事情でIDS ueyeカメラ(UI3250)をPythonから制御したい。
ライブ画像を表示するスクリプトは[公式](https://jp.ids-imaging.com/programming-examples-details/simple-live-image-acquisition-with-the-python-interface-pyueye.html)からダウンロードできる(ログイン必要)。
露光時間・フレームレートを調整しようとして詰まったが、下記を書き加えるとどうやら制御できた。

“`Python:Python
from pyueye import ueye
import ctypes

pixel_clock = ueye.uint(30) #10-128
nRet = ueye.is_PixelClock(hCam, ueye.IS_PIXELCLOCK_CMD_SET, pixel_clock, ueye.sizeof(pixel_clock))

time_exposure = ueye.double(20) #ms
nRet = ueye.is_Expo

元記事を表示

結局 python でパッケージ分割したプロジェクトにするにはどういうディレクトリ構成にすればいいのか

# tl;dr

https://rinatz.github.io/python-book/ch04-07-project-structures/

で普段他の言語でやってる感じのディレクトリ構成がことごとくアンチパターンになっていたし実際動かないので色々調べてどうやらこの構成ならうまくいきそうだというのの健忘です。

# 結論

“`
project/
+ project/
| + __init__.py
| + __main__.py
| + module.py
| + subpackage1/
| | + __init__.py
| | + submodule1.py
| + subpackage2/
| + __init__.py
| + submodule2_1.py
| + sunmodule2_2.py
+ tests/
+ __init__.py
+ test_module.py
+ test_submodule1.py
+ …
“`

## `__init__.py`

`tests` 以外のこれは全部中身を書く。

“`py:p

元記事を表示

OTHERカテゴリの最新記事