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

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

【機械学習】最新論文の異常検知手法を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】opencvでWebカメラの起動に時間がかかる問題の対処

## はじめに
USB経由で接続されたWebカメラの起動に30秒~1分ほどかかっており、いらいらしたので対処法を探しておりました。しかし調べ方が未熟なせいもあって解決に時間がかかりました。

capture = cv2.VideoCapture(1) ←具体的にはここがボトルネック。

## 対象者
この記事は下記のような人を対象にしています。
– 同じ悩みを持ち、ちょっとでも短時間でWebカメラを起動したいと思った人

## 環境
– Windows10
– Python3.7

## 結論
opencvのissueをたどってみると解決法がありました。
MSMFバックエンドの設定部分で問題が起きていたみたい。

“`py
# cv2のインポート前にカメラに関する設定を行う
# https://github.com/opencv/opencv/issues/17687
import os
os.environ[“OPENCV_VIDEOIO_MSMF_ENABLE_HW_TRANSFORMS”] = “0”
import cv2
“`
## 検証
Webカメラの起動が本当に速くなっ

元記事を表示

40 代おっさんPythonでExcelのデータを活用してみる

## 本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

## 参考資料

## 環境

以前はCloud9を使用していましたが
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください

## 目的

Excelのデータを活用してみる

## Excelのデータを活用してみる

pcr_tested_daily.csv(厚生労働省からダウンロードしました)
これを使ってデータを分析したいと思います。

### pandasのインストール

pandasとは
データの統計量を表示したり、グラフ化するなど、データ分析(データサイエンス)や機械学習で必要となる作業を簡単に行うことができるようになります

自分のはまだ入れていなか

元記事を表示

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.グレイスケール化

元記事を表示

40 代おっさんPythonでブラウザ操作してみる

## 本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

## 参考資料

## 環境

以前はCloud9を使用していましたが
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください

## 目的

Webページにアクセスして必要なファイルを取ってくる
そして自分の指定フォルダに移動する。

## Webページを操作

### 必要なライブラリ

seleniumとは
Webブラウザで行うクリック操作やキーボード入力などをプログラム上から自動で操作できるようにしたライブラリ

“`python
!pip install selenium
“`

webdriver_managerとは
Webブラウザのバージョンに合わ

元記事を表示

xlwingsでシートを丸ごとリストのリストにする関数作ってみた

PythonからExcelの自動操作をしたりExcelからPythonを呼び出したりしています。

VBAだとシートの情報を呼び出してもそこまで重いと感じることはありません。
xlwingsさんはとても優秀なのですが、VBAのように都度API経由でセル情報をやりとりするのはかなり重たくなってしまいます。

そこでリストのリスト(俗に言う多次元リスト)にして操作するということをよくしてます。

# 例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217361/9c8d3ed7-2738-68f2-6921-a12c8ccc1947.png)

こんなExcelシートがあったとします。

第1引数に該当シートオブジェクトをしていただくことでリストにする関数

列を基準にリストにした多次元リストになります。

“`python
all_col(sheet)
“`

“`
[[‘A1’, ‘A2’, ‘A3’, ‘A4’],
[‘B1’, ‘B2’, ‘B3’, ‘B4’],

元記事を表示

超初心者がAtcoder ProblemsのC問題を134回から140回までをpythonで解いてみた【記憶喪失した時用】

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

Exception Handling

 https://atcoder.jp/contests/abc134/tasks/abc134_c

“`practice.py
n = int(input())
nums = [int(input()) for _ in range(n)]
new_nums = sorted(nums)
highest = new_nums[-1]
if len(new_nums) > 1:
second_highest = new_nums[-2]
for i in range(n):
if nums[i] == highest:
print(second_highest)
else:
print(highest)
“`

最初にリストを昇順に並べ替えて、一番大きい値を取得します。次にもしリストの要素数が1より大きい場合は二番目に大きい

元記事を表示

40 代おっさんPythonでExcel操作でほかのファイルにコピーしてみる

## 本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

## 参考資料

前回の続きになりますので気になる方はこちら

## 環境

以前はCloud9を使用していましたが、今回はExcelのため変えることにしました
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください

## 目的

Excelファイルをほかのファイルにすべて一気に転記できるようになりたいと思います。
一つづつの動作を確認しながらやっていきます。

## 違うファイルに転記をする

### ファイル情報を取得

“`python
wb_ma

元記事を表示

40 代おっさんPythonでExcel操作をしてみる

## 本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

## 参考資料

## 環境

以前はCloud9を使用していましたが、今回はExcelのため変えることにしました
Windows 10
Jupyter Notebook
そのため構文に少し違いがあります。
気を付けてください

## Excel操作

### Excel操作するライブラリをインストール

“`python
!pip install openpyxl
“`

普通はPandas使用するみたいですが、書式が固定されるため、今回はこちらを使用します。

### Excelファイルを読み込む

“`python
import openpyxl
wb = openpyxl.load_workbook(“出社

元記事を表示

40 代おっさんPythonのことを軽く学ぶ

## 本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

## 参考資料

## ちょっとした良く使う関数

|関数|内容|
|—-|—-|
|print()|文字列や数値、変数に格納された値などを標準出力(sys.stdout)に表示する|
|int()|文字列,float型をint型に変換|
|str()|str 関数は引数に指定したオブジェクトを文字列にして取得します|

format()
構文

“`python
‘str1{}str2’.format(var)
“`

## リスト

リスト:任意の型(整数、浮動小数点数、文字列など)のデータを格納できる。要素には順序があり、インデックスを用いて要素を指定できる。リストの要素は変更可能。他のプログラミング言

元記事を表示

FlaskとVue.jsでSPA Webアプリ開発

### 参考記事

https://qiita.com/y-tsutsu/items/67f71fc8430a199a3efd

https://tech-market.org/vue-flask-cooperation/

https://rise-of-kantan.com/2021/07/06/91/

https://webjin.work/install-vue-js-on-ubuntu-16-04-at-npm/

https://xvideos.hatenablog.com/entry/ubuntu-vuejs-env-settings

https://noauto-nolife.com/post/startup-npm-install/

https://rise-of-kantan.com/2021/07/06/91/

https://qiita.com/watataku8911/items/26f2ce546fcd562e4b46

https://qiita.com/Toshiaki0315/items/1ab4e479007bb0f76f06

https:

元記事を表示

ロジックサマナー ランクB「魔法陣」を解いた

# はじめに
先日に引き続き、ロジックサマナーのゲームを進めました。早く全部解けるぐらいになりたいです。
今回は、ランクCではなくランクBに挑戦しました。以前の「圧縮」よりは簡単に出来ました。よかったです。

今回もまた、正答したソースコードを以下に載せてます。

# 問題の概要
[問題です。](https://paiza.jp/logic_summoner/challenges/logics_type_2002)
問題の概要と説明は、はてなブログでpaizaの倉内さんが説明してくださっているので、[そちらを参照してください。](https://paiza.hatenablog.com/entry/2020/06/30/%E5%88%9D%E5%BF%83%E8%80%85%E3%80%9C%E4%B8%AD%E7%B4%9A%E8%80%85%E5%90%91%E3%81%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%95%8F%E9%A1%8C%E3%81%AE%E8%A7%A3%E3%81

元記事を表示

カクヨム記法のルビをWordのルビにするツールをリリースしたので色々書く

# 紹介

https://github.com/msattova/conv-ruby-on-docx

Wordでルビ振りするのが面倒くさいという人向けに、こういうのを作っています。

一言で言えば、docxファイル中にカクヨム記法で示されたルビを、Wordのルビに変換するやつです。

(傍点を振る記法にも対応する予定ですが、現状ではルビ振りにのみ対応しています。)

(「カクヨム記法ってなに?」という方は[こちら](https://kakuyomu.jp/help/entry/notation)を見てください)

このツールを使うと、下の画像のbeforeのところをafterのようにすることが可能です。

![sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2521499/1bbd6d68-e490-c441-96ee-982226dd8d9c.png)
(文章は拙作[『誰が為の歴史改変』](https://note.com/msattova/n/n5981d867920d?magazi

元記事を表示

Pythonでいい感じに書く

## 背景
最近、Pythonでソースコードを書くようになったのですが、
書き始めて半年ということでまだまだキレイな書き方、
効率的な書き方ができておりません。

一緒に開発しているベテランエンジニアさんのソースコードを見て、
あぁ〜こういう風に書くのか〜、と勉強になったので
メモがてら記事にしてみます。

## 通常のif文
通常は下記のように書きます。
“`
if a == ‘a’:
return True
else:
return False
“`
なんてことないif文ですが、単純なif、elseの場合は
あまりこういう風には書かないようです。

## 1行にまとめたif文
上のif文は1行にまとめられます。
“`
return True if a == ‘a’ else return False
“`
要は三項演算子です。
ただ、JSやPHPなどの言語とは違って最初に(True)の時の処理が来て、
その後に条件式が来るんですよね。
これまでJS、PHPをメインで書いていたので、少し戸惑いましたw

## 通常:for文でlistに追加
続いてはfo

元記事を表示

【Python】injectorでDIコンテナを実装する

個人開発中、依存先が多いクラスをインスタンス化する場面がありました。

その時は依存先を全部インスタンス化→依存元をインスタンス化する時に引数で渡して実装しました。

1度だけなら問題になりませんが毎回この手順で実装する場合、実装の手間が増える上に可読性も下がります。 この問題を解消するためにDIコンテナを採用します。

DIコンテナをざっくりと説明すると、「インスタンス生成時に依存関係をいい感じに解決してくれる仕組み」です。

今回は “`injector“` モジュールを利用してPythonでDIコンテナを実現します。

### 環境

– Python3.8.10
– injector 0.19.0

### injectorの採用理由

– 使用例を理解しやすかった
– 採用事例が多い(体感ですが)
– Pure Pythonだけで完結するため特定FWに依存しない
– 直近のコミットが2021年10月と比較的新しく、今後もメンテナンスが続くと見込まれる

PythonのDI用ライブラリとしてinjectorの他には [python-injector](https://git

元記事を表示

Explanation of Evaluation index ‘MAP@5’ in Happywhale – Whale and Dolphin Identification Competition.

![スクリーンショット 2022-02-28 19.01.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/785665/988cf3d6-9e7e-e84c-5525-3e4122edcb33.png)

元記事を表示

pipの厳格な依存関係チェックにハマってしまった時の解決方法備忘録メモ

# 事の起こり

Tensor Flowのアップグレードを実行した時に以下のエラーが発生しました。

>ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
numba 0.55.1 requires numpy<1.22,>=1.18, but you have numpy 1.22.2 which is incompatible.

詳細な実行ログ

“`bash
$ pip install -U tensorflow
Requirement already satisfied: tensorflow in /opt/conda/lib/python3.9/site-packages (2.6.2)
Collecting t

元記事を表示

Django パスワード試行回数ロックとランダムかつ有効期限付きURLでの本人確認による解除

## 環境
Windows 11 Home
Python 3.10.2
Django 4.0.2
venv利用あり
(PyPI)
django-axes==5.31.0
条件:関連記事 第1回が完了していること

## 関連記事
Django 第1回:[Django Custom User Model の作成](https://qiita.com/startours777/items/706d38e712b0c737a16a)
Django 第2回:[Django 初回ログイン時にパスワード変更を強制する](https://qiita.com/startours777/items/28db625a9bb81a36d4ad)
Django 第3回:[Django 一定期間パスワードを変更していないユーザにパスワード変更を強制する](https://qiita.com/startours777/items/d550ca9b67cea4408a44)
Django 第4回:[Django ランダムかつ有効期限のあるURLを生成し、上位者に承認してもらいアカウントを発行する](https://

元記事を表示

タイムアウトがある場合にチェックすること。随時更新。

学習サイトなどでのスキルチェック時に、アウトプットの正解率だけではなくて、処理時間まで見られている。
そのためタイムアウトになった際にどのような点を見直すべきか、どのようなアクションを取るべきかを箇条書きで記載していく。

・条件分岐で無駄な条件が入っていないか。(特に配列を含む条件の場合)
・配列と辞書でのデータの持ち方。
・ロジック自体を見直す。
・in演算子を多発していないか。(特にlistでのin演算子)

元記事を表示

Python スレッドのフラグ管理をEnumとStateパターンでおこなう

# はじめに
今までスレッドの状態管理をBool値を使っていたし状態遷移を直接代入方式でやっていた。今回、開発中のアプリのコード数が増えてきたこともあり、また、ワンランク上のコーディングをしたいという欲もでてきたので挑戦してみた。

# 以前のコード

“`python
class MainThread():
def __init__(self) -> None:
self.is_running_thread1 = True
self.is_running_thread2 = True
self.is_running_thread3 = True

def task1(self):
# スレッド1の状態がRUNか否か
if self.is_running_thread1:
print(‘thread1 is running.’)
time.sleep(1)
# スレッド1シャットダウン
self.is_running_

元記事を表示

OTHERカテゴリの最新記事