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

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

Tkinterのsuper().__init__(master)について

# tkinterのsuper().\_\_init\_\_(master)ってなんだ
初めてtkinterでGUIアプリを作成しようとした時、参考にするサイトで
“`python
super().__init__(master)
“`
という行を見かけました。
始めは「なんだこれ!わかんねぇ!」ってなっていたけど微妙に理解したので脳内メモがてらこの記事を書きます。
厳密にはちょいちょい違うかもしれないけど、なんとなくの表層での捉え方といういうことで、、
# super()ってなんだ
`super()`っていうのは、
“`python
super().親クラスのメソッド
“`
って書くことで継承した親クラスのメソッドを使えるようになる、というもの。
そして`__init__()`はクラスのコンストラクタ。コンストラクタというのはクラスの生成時に実行されるメソッド。
(いらんと思うが一応超大雑把に説明すると
・クラス
関数群みたいな感じ
・メソッド
クラスの関数群のその一つ一つ
って感じです)

つまり
“`python
super().__init__(master)
“`

元記事を表示

日記;回すだけIII ⑥ pythonでSDO、PDOの読み書き<その1>ベータ版

  前回、オブジェクト・ディクショナリをSDOで読み出しました。

### SDOの書き込み

 位置決め制御で使われるPP(Profile Position Mode)では、まず、加速し、ある一定の速度を維持し、減速して目標の場所に到達する制御が行われます。ある一定の速度は、Profile velocity(目標速度)と呼ばれます。
 この値を読み出し、1000を書き込みます。単位はr/min=rpmです。

“`python
import canopen
import time

# Start with creating a network representing one CAN bus
network = canopen.Network()

# Add some nodes with corresponding Object Dictionaries
node = canopen.RemoteNode(10,’BLVD-KRD_CANopen_V100.eds’)
network.add_node(node)

# Connect to the CAN bus
netw

元記事を表示

【機械学習】最新論文の異常検知手法をMVTecデータセットの実験結果で比較してみた&各手法のPythonコードも発見【異常検知】

現在、世界最先端の画像の異常検知手法の性能は、どのくらいなのでしょうか?
2021年度に国際会議に採択された論文の最新手法を調査してみました!(Pythonのプログラムコードも見つけたので、リンクを貼っておきます。)

論文の実験結果に記載されている[MVTecデータセット](https://www.mvtec.com/company/research/datasets/mvtec-ad)のAUC値で各手法を比較してみたいと思います。

**MVTecデータセットの画像例:**
![データセット画像例.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/3f5198a6-8ab6-9b0d-1a98-e389f52353dd.png)

# 手法の概要紹介
## [CutPaste](https://openaccess.thecvf.com/content/CVPR2021/html/Li_CutPaste_Self-Supervised_Learning_for_Anomaly_Det

元記事を表示

【競プロ】Pythonの自作ライブラリを1ファイルにまとめるツールを作った話

## 要約

競プロ向けに、[oj-bundle](https://github.com/online-judge-tools/verification-helper)や[webpack](https://webpack.js.org)、[AtCoder Libraryのexpander.py](https://github.com/atcoder/ac-library)のようなツールのPython版を作りました。このツールを使うことで、それまでコピー&ペーストで運用していたスニペット集をパッケージとして管理することができます。

* githubリポジトリ:

## 使い方

### インストール

“`
pip install git+https://github.com/bayashi-cl/expander
“`

### 実行コマンド

“`
python -m expander[-o ] [-m

元記事を表示

Pythonを始めます。

# Python(パイソン)を始めます。
開始日:2020/03/04

参考書籍:やさしいPython
開発環境構築ツール:Anaconda
エディタ:VSCode
コマンド入力ツール:Windows PowerShell

元記事を表示

Azure Databricks で 機密データ保護のために hashlib を利用してみました

## 概要

機密データをそのまま公開するわけにはいかないので、そのカラムをキーにユニークな文字列(Hash利用)を付与することにより、データ処理できるようにする方法となります。 hashlibを使用した Pandas DataFrame列の機密データの匿名化を試してみました。

### ローカル環境

– macOS Monterey 12.1
– python 3.8.12
– Azure CLI 2.33.0

### 前提条件

1. Azure環境がすでに用意されていること(テナント/サブスクリプション)
2. ローカル環境に「azure cli」がインストールされていること
3. Azure Databricks の Workspace 上で Notebook が稼働できていること。

## 事前準備

### データファイルのアップロード

1. 対象の Workspace の Azure Databricks ポータルで [Import & Explorer Data] を選択します
2. 「Drop files to upload, or click to

元記事を表示

pythonとOSCでVRChatのアバター情報を取得する

## 概要

この記事はVRChatとOSCを使って、とりあえず何か動くものを作りたい!と思ってる人向けの記事です。pythonのスクリプトを実行することにより、VRChatのアバターの動きがOSCを通してコンソールに出力されます。

さて、やっていきましょう。手元に必要なのは VRChat と python だけです(v´∀`)v

## OSCとは
[こちらの記事](https://qiita.com/will-yama/items/2945ab43c28352c2817e#osc%E3%81%A8%E3%81%AF)で確認が出来ます。

## pythonスクリプトを作成する

### python-osc のインストール

まずVRChatと通信が出来るライブラリが必要です。pythonが使用出来る環境で[python-osc](https://pypi.org/project/python-osc/)をインストールします。

“`terminal
pip install python-osc
“`

### VRChat用のスクリプトを作成

[python-oscのドキ

元記事を表示

【Streamlit】ゲノム内遺伝子の比較・可視化アプリGBKvizを作ってみた

# はじめに

データ分析用のWebアプリを簡単に作成できるWebフレームワーク**Streamlit**の学習・実践も兼ねて、Genbank形式ファイルからゲノム内の遺伝子情報を比較・可視化するWebアプリを開発してみました。

本記事では、開発したWebアプリ`GBKviz`の紹介と利用した技術要素の解説をします。

対象読者としては、以下に興味がある人を想定しています。

– Streamlitを利用したデータ分析・可視化Webアプリ開発
– バイオインフォ分野のデータ分析プログラム開発
– ゲノム・遺伝子データの比較・可視化

# GBKvizの紹介

GBKvizは入力されたGenbankファイルから下記のようなゲノム内遺伝子の比較・可視化図を
さくっと作成可能にすることを目的として開発したWebアプリです。
![gbkviz_figure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138429/6a3f720c-ce59-66e9-2084-32a62ba851f1.png)
同様の操作

元記事を表示

ベル文字を出力して音を鳴らしてみた。

授業で正規表現の学習中に、ベル文字というモノがあることを知ってしまった。
コレは鳴らしてみないと

# ベル文字とは
その昔、テレタイプなどの通信機器で、通信相手先の端末のベルを鳴らすために送信した制御文字(¥a)のようです。
さすがのオッチャンでも、テレタイプは現物見たことないので、よう解りません。

https://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E6%96%87%E5%AD%97

# では、鳴らしてみます
といっても、ベルが鳴るわけではなく、システムのアラート音(通知音)が鳴るだけですけどね。
## まずJava

~~~Java:Bell.java
class Bell{
public static void main(String[] args) {
System.out.print(“\007”);
}
}
~~~
`javac Bell.java`
`java Bell`鳴りました。

## シェルスクリプト
Macなので Z Shellです
“`bash:Bell.sh
#!/bin/zsh
echo

元記事を表示

NI-DAQを利用した抵抗測定

### はじめに

[DAQ抵抗測定 – NI Community](https://forums.ni.com/t5/NI製品ディスカッション/DAQ抵抗測定/td-p/3362467)という記事をみつけ、試しに手元にあるNI-DAQ (NATIONAL INSTRUMENTSのData acquisition device AD/DAデバイス)とPythonで抵抗測定を行いました。その時の覚えとして記載します。
なお、NI-DAQではなくarduinoを利用しても測定できます。今回作った回路(接続)はこちらのサイトを参考にしました。[抵抗値を測定する](http://hello.world.coocan.jp/ARDUINO2/arduino2_9.html)

### 環境

Windows 10 pro 64bit
Anaconda
python 3.7

NI-DAQをpythonで利用するときのモジュールのインストールは、以前投稿した記事を参考にしてください。
[PythonでNI-DAQの利用](https://qiita.com/Gyutan/items/1d0

元記事を表示

Python同梱のSQLiteで、UPSERTを使う

PythonからSQLite使用時にUPSERTが使いたくなって調べてみましたが、使えるようです。

https://www.sqlite.org/lang_UPSERT.html
>UPSERT is a special syntax addition to INSERT that causes the INSERT to behave as an UPDATE or a no-op if the INSERT would violate a uniqueness constraint. UPSERT is not standard SQL. UPSERT in SQLite follows the syntax established by PostgreSQL. UPSERT syntax was added to SQLite with version 3.24.0 (2018-06-04). SQLite Query Language: upsert

と思ったら、対応バージョンは3.24。 Python (2・3どちらも)に入ってるのは、以下の通り3.22で、使えず…

元記事を表示

【Project Euler】Problem 92: 各桁の2乗の和の数列

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 92.各桁の2乗の和の数列

原文 [Problem 92: Square digit chains](https://projecteuler.net/problem=92)

**問題の要約: 各桁の2乗の和を求める操作を連続して行っていくと必ず1か89なって無限ループとなる。$1 \le n < 10^7$の$n$で始めたときに89に到達する数が何個あるか求めよ** ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/5e7d5b6c-ace9-05a7-5198-543500d2685d.png) 以下の2つの関数で実装しました。どちらも**lru_cache**を付けてメモ化しています。 * **

元記事を表示

anaconda cheat sheet

anacondaのチートシート

元記事を表示

オブジェクト指向言語経験Python初心者の備忘録

じっくり育てていこうと思います。

## 辞書
### ループ
“`python
# キーstrを順番に取り出す
for k in d.keys():

# 値を順番に取り出す
for v in d.values():

# キーと値を同時に順番に取り出す
for k, v in d.items():

“`

### ソート
“`python
dictlist: Dict[str, any] = [
{“price”:100, “name”:”りんご”},
{“price”:50, “name”:”みかん”},
{“price”:50, “name”:”レモン”},
{“price”:120, “name”:”なし”},
]
# keyにタプルを指定すると複数キーでソートできる
sorted_dictlist = sorted(dictlist, key=lambda x: (x[“price”], x[“name”]))
“`

### 結合
“`python
d1.update(d2) # d

元記事を表示

selenium 備忘録

スクレイピングでjavascriptが絡むデータが必要になり、beautifulsoupではできない場合にはseleniumを使う必要がある。

その際のseleniumの使い方。

まず事前にドライバーをダウンロードする必要がある。

コード

“`python
#seleniumのimport
from selenium import webdriver
#elementの指定で使う
from selenium.webdriver.common.by import By

#サイトのURL
URL = “”
#ドライバーのパス
PATH = “”

driver = webdriver.Chrome(PATH)
#サイトを開く
driver.get(URL)
“`

getを呼び出すとブラウザが立ち上がる。

elementの取得方法

“`python
#クラス名で取得
posts = d

元記事を表示

[OpenEXR] WindowsでPython用OpenEXRをインストールする際の手順

Python用のOpenEXRライブラリをpipでインストールする際に躓いたのでまとめておきます。
## 手順
まず普通にインストールを試みる
“` :terminal
pip install OpenEXR
“`

“`
>>> Collecting OpenEXR
Downloading OpenEXR-1.3.7.tar.gz (11 kB)
Preparing metadata (setup.py) … done
Using legacy ‘setup.py install’ for OpenEXR, since package ‘wheel’ is not installed.
Installing collected packages: OpenEXR
Running setup.py install for OpenEXR … error
error: subprocess-exited-with-error
“`
何やらエラーを吐いて失敗した。

色々調べてみると、どうやら[非公式のWindowsバイナリ](https://www.lfd

元記事を表示

Blenderで待ち行列

Blenderで待ち行列を可視化すると面白いんじゃないかと思ってやってみたことの紹介です。

うまく動かすのが難しかったので、適当になってます。

待ち行列は、M/M/1でやってみたら、指数分布だと間延びするので、到着間隔とサービス時間は対数正規分布にしました。

ライブラリーは[SimPy](https://simpy.readthedocs.io/)を使います。「[Blenderのコマンドサンプル](https://qiita.com/SaitoTsutomu/items/6b70367455f843a979b1)」を参考にBlenderのPythonにインストールしてください。

待ち行列とSimPyについては、「[待ち行列について](https://qiita.com/SaitoTsutomu/items/f67c7e9f98dd27d94608)」も参考にしてください。

## モデル作成

顧客と待ち行列とサーバーのモデルを作ります。

– 顧客は、サクッとスザンヌにしましょう。名前は`cust`にします。複製するので、適当なコレクションに入れておきます。
– 待ち行列は、

元記事を表示

OpenCVでレシート画像を切り抜き(改良の余地あり)

# 目的
– レシートと背景が写った写真からレシートをくりぬきたい
– OpenCVの理解
– なんか画像処理っぽいことしたい

# 環境
– Windows11 Home
– VSCode
– Python3.9
– pip
opencv-python 4.5.5.62

# 本編
## 参考文献
ありがとうございます。お世話になりました

https://vigne-cla.com/14-3/

https://qiita.com/mix_dvd/items/5674f26af467098842f0

## プログラム
### 元の画像
パンを買ってきました。その時のレシートをパシャリ
背景の影響とかありそうだな。。

![20220303_084409.jpg1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245578/e903941d-2aed-9906-25d2-96c7156ccd12.jpeg)

### グレイスケール化
“`python
# 2-1.グレイスケール化

元記事を表示

ラズパイからGoogle DriveへGoogle Spread Sheetを作成してみた。

ラズパイの取得したデータをリアルタイムでグラフで見れたらいいなと思い、Google Spread Sheetを使えばできるというのが分かった。まず、最初のステップとして、ラズパイからGoogle Spread Sheetに書き込むまでを確認した。

# 環境
Python version:3.9.7
OS: windows: 10.0
Linux raspberrypi: 5.10.63+

# プログラムの実行イメージ
ラズパイからコマンドをたたき、Google Driveの指定したディレクトリへGoogle Spread Sheetを作成する。
Google Cloud Platform(GCP)の設定、Google Drive の設定をしてプログラムを走行する必要がある。
![スクリーンショット 2022-03-03 17.18.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176158/e31e2c49-673e-f11a-aaaf-c7b8617ad394.png)

## 1.1 GC

元記事を表示

オブジェクト指向を用いた線形常微分方程式の数値計算(Python)1:線形常微分方程式クラス

# 1. 概要
 この記事では、線形常微分方程式の概要を説明し、オブジェクト指向に基づいて対応するクラスの実装を行います。シリーズ全体で、オブジェクト指向プログラミングを用いた線形常微分方程式を数値計算するためのパッケージを提供する予定です。

# 2. 線形常微分方程式
 変数 $x$ の未知関数 $f(x)$ の $k$ 階導関数を $f^{(k)}(x)\quad (k\in \mathbb{N})$ と表します。$N$ を自然数として、 $r(x)$ および $c_k(x)\quad (k=0,\ldots,N-1)$ を $x$ についての既知関数とすると、$N$ 階線形常微分方程式の一般形は次式で与えられます。
$$ f^{(N)}(x) + c_{N-1}(x) f^{(N-1)}(x) + \ldots + c_1(x) f^{(1)}(x) + c_0(x) f(x) = r(x). \tag{1}$$
これ以降では、関数の引数を省略します。
 $N$ 階線形常微分方程式は、$N$ 個の未知関数の一階微分のみを含む連立線形常微分方程式に書き直すことができます。$\ph

元記事を表示

OTHERカテゴリの最新記事