Python関連のことを調べてみた

Python関連のことを調べてみた
目次

Python ツール#3 ― ファイルエンコーディングチェッカー

# Python ツール#3 ― ファイルエンコーディングチェッカー

「複数の Excel ファイルを読み込んで、それぞれのファイルの文字コードを 1つの Excel ファイルに書き出す」という処理の Python スクリプトを作成しました。

## ソースコードの簡単な説明

* 各定数値。ソースコードファイルのフォルダー名など、必要に応じて修正してください。例えば、ソースコードの絶対パス “IN_SRC_ROOT” は、D: ドライブからの絶対パスでもよいですし、“file_encoding_checker.py” からの相対パスでもよいです。
“`python:file_encoding_checker.py
#
# Input, Output
#
IN_DIR = ‘.\\input’
OUT_DIR = ‘.\\output’
# IN_SRC_ROOT = ‘D:\\Developments\\PyCharmProjects\\tool-file_encoding_checker\\input’ # noqa

元記事を表示

pypylonを用いたカメラの操作基本 (1)

## カメラの特定

作業を開始する前に、使用するカメラの特定が必要です。これは、ドライバがどのように機能するかを理解する最初のステップです。以下のPythonコードを実行することで、接続されたカメラのリストを取得できます。

“`python
from pypylon import pylon

#Getting Started
tl_factory = pylon.TlFactory.GetInstance()
devices = tl_factory.EnumerateDevices()
for device in devices:
print(device.GetFriendlyName())

“`

このコードは、PylonViewerプログラムと同様に、コンピュータに接続されたカメラの型番とシリアルナンバーをリストアップします。

“`bash
Basler a2A3840-45ucPRO (40116877)
# a2A3840-45ucPRO : カメラの型番
# 40116877 : カメラのS/N
“`

## 画像の取得

画像を取得す

元記事を表示

誘導機の諸性質(コンター図)

# はじめに
誘導機のトルクや二次電流は滑りsと2次抵抗$r_2$に依存する。また、$r_2/s$を一定にすれば滑りを変えたとしても、トルクや二次電流は不変になる。したがって、滑りと二次抵抗のがトルクや二次電流といった出力に与える影響を調べることで誘導機の特徴を詳しく解析することができると考えられる。そこで、今回は、以下の記事を参考にして、滑りと二次抵抗を独立的に変化させていったとき、トルクや二次電流がどのように変化するのかを調査することを目的とする。

https://qiita.com/arairuca/items/0d81c5b96ac5154b2544

# プログラム
それでは、上記事の等価回路やプログラムを参考にして以下のようなプログラムを組んでみよう。

## 二次電流
“`python induction_machine_I.py
import numpy as np
import matplotlib.pyplot as plt
import math

p=4
f=50
E_1=100.0

r_1=1.0
x_1=1.0
#r_2=1.0
x_2=10.0

元記事を表示

VAD, Whisper, VOICEVOXで実現する会話型AIサービスの構築

# はじめに

今回は、OpenAIのGPTと組み合わせた会話型AIサービスのサンプル実装をご紹介します。ユーザーは音声で質問を投げかけ、AIが応答し、その応答を音声合成する仕組みを実装しました。これにより、音声でのインタラクティブなやり取りが実現されます。

# 処理フロー

処理フローは以下のようになります。

1. ユーザーが音声で質問をします
2. サーバーでは音声を受け取り、Whisperモデルを用いて文字起こしを行います
3. 文字起こししたテキストをもとに、GPTモデルで応答するテキストを生成します
4. 応答テキストをVOICEVOXで音声合成し、ユーザーに返します

この一連の流れにより、テキストによるやり取りを音声で実施することができます。

“`mermaid
sequenceDiagram
participant ユーザ as ユーザ
participant ブラウザ as ブラウザクライアント
participant WhisperAPI as Whisper API
participant GPTAPI as GPT API

元記事を表示

Google Postmaster ToolsのAPIを使用して迷惑メール率データを可視化してみた

# はじめに

Google Postmaster ToolsのAPIを使用して迷惑メール率データを取得し、可視化する方法を説明します。
Postmaster Toolsでも可視化されますが、ドメイン単位で表示されるため、ドメイン毎の比較やまとめて表示することができません。また、最長120日間しかデータが蓄積されないため、それより長い期間で可視化したい場合はデータを退避しておく必要があります。

# Gメールショック!

## “No Auth, No Entry”

2023年10月にアナウンスされたGoogle(Gメール)と米国Yahoo!メールで2024年2月から順次実施する(した)迷惑メール対策強化のことです。
(実際には2024年4月から送信ドメイン認証DMARCの適用が開始されました。)

二社のアナウンスの主な要点は以下のとおりです。

1. 二社に対してメールを送信するメール送信ドメインにおいて、送信ドメイン認証(SPF、DKIM、DMARC)の設定が必要となる
2. 一日に5,000通のメールを送信するメール送信者にはより厳しい送信ドメイン認証の設定が求められる
3.

元記事を表示

PythonでリアルタイムWebカメラ処理を最適化する:スレッドとキューの利用

PythonとOpenCVを組み合わせてWebカメラからのフレームを効率的に取得し処理する方法について説明します。この記事では、**threading**と**queue**モジュールを使用して、リアルタイムのカメラフィードを処理するクラスCamera_Threadの作成を行います。特に、マルチスレッディングを利用してカメラからのフレームを連続的に取得し、それをメインアプリケーションが処理できるようにキューに保存する方法に焦点を当てます。

## 基本的な概念

### Threading
Pythonの**threading**モジュールを使用すると、**複数のタスクを並行して実行できます。** これにより、重い処理をバックグラウンドで実行しながら、メインプログラムのレスポンス性を保つことができます。本例では、Webカメラからのフレームを取得するために別のスレッドを使用し、メインスレッドは取得したフレームを表示および処理します。

### Queue
**queue.Queue**は、スレッドセーフなキュー実装で、**プロデューサー(データを生成するスレッド)とコンシューマー(データ

元記事を表示

Flask + Jinja2 で汎用のエラーページをカスタマイズする(モジュールのメンバ関数をオーバーライドする編)

Flaskで汎用のエラーページを表示する処理がなかったので、モジュール標準のエラーページ生成処理をベースに実装してみました。

# この記事は

以下記事の別実装編です。

https://qiita.com/h6function/items/77e6fb8fc8961fce1cba

# Flask & Jinja2 には汎用的なエラーページを作成する機能がない

Flaskでエラーページを表示する際には、ステータスコードとエラーページを応答する関数をエラーハンドラーに登録することで実現します。

この方法は下記リファレンスページの Custom Error Pages のセクションで紹介されているのでご存じの方も多いかと思います。

https://flask.palletsprojects.com/en/3.0.x/errorhandling/#custom-error-pages

発生したエラーに応じてユーザに促すアクションを出し分けるという点では至極真っ当な実装と思いますが、意地の悪い言い方をすると [HTTP レスポンスステータスコード](https://develop

元記事を表示

Flask + Jinja2 で汎用のエラーページをカスタマイズする(自前実装編)

Flaskで汎用のエラーページを表示する処理がなかったので、モジュール標準のエラーページ生成処理をベースに実装してみました。

# そもそもエラーページを任意のテンプレートで作成すると何が良い?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203013/345c6f72-ccca-7a6b-02d3-3f515f6e1654.png)

上記はFlask作成したWebアプリケーションがデフォルトで返却する 404 Not Found のページです。

非常にシンプルかつ既視感があり、ブラウジングの最中に出てきた場合は恐らくですが「またこいつか」と若干の苛立ちを感じさせてくれることと思います。

試しに他のWebサービスの 404 Not Found ページと見比べてみましょう。

Amazon
ガチで危機感持った方がいい。Pythonでコンビニに近づいたらアラートして散財を防ぐ。

# コンビニ控えて節約したい
私はコンビニによく行くのですが、ついつい1000円くらい使ってしまいます。
そのたびに、もったいない!と思うものの、辞められません。
そのため、コンビニから足を遠ざけ、節約したいと思っています。

# コンビニに近づくとアラートメール自動送信
iPhoneの位置情報を継続的に取得して、コンビニに近づくと、メールを自動送信するというものを作成しました。

↓ 青いマーカーが現在地で、赤い円の範囲に入るとメールが自動送信されます。

↓ 実際に自動で送信されるメールです。
ChatGPTと学ぶPython をやってみる。

# 概要
10年以上パワポエンジニアをしてきましたが、流行りの生成AIに手を出してみます。 
こんなことができました。
– 日本語を入力してChatGPTがPythonのソースコードを生成
– ソースコードをGoogle colabにコピペして、実行
– 目で、実行結果とソースコード(とコメント)を見てPythonをふんわり理解
要求条件仕様書をきっちり書くと、いい感じにソースコードを生成してくれる。指示出しの日本語能力と、出てきたものが期待通りに動いているのかのチェック能力が問われる。

# 参考文献
[ChatGPTと学ぶPython入門 熊澤 秀道 著](https://www.shoeisha.co.jp/book/detail/9784798182230)

# 読書と自習メモ
## ChatGPTに課金する
OpenAI https://openai.com/
### 1 アカウント作成
`Try chat gpt` > `saign in`
これで`CHat GPT 3.5`が使えるようになる。
### 2 課金してChatGPT4.0へ
`Update plan` >

Pythonで四則演算

# はじめに
Python初心者なので、基礎からということで四則演算をしてみます。
数式→Pythonの順で書いています。
また、動作はGoogleColabpratoryで確認しています。

# 加算
$1 + 1$

“`python
1 + 1
“`

# 減算
$100 – 1$

“`python
100 – 1
“`

# 乗算
$2 * 3$

“`python
2 * 3
“`

# べき乗
$16^2$

“`python
16 ** 2
“`

# 除算
除算は求めるものによって異なるので、下の数式でパターン毎に書いておきます。
$7\div2$

### 商を求める
“`python
7 / 2
“`

### 剰余を求める
“`python
7 % 2
“`

### 商と剰余を求める
“`python
パターン1
7 // 2, 7 % 2
パターン2
divmod(7, 2)
“`

# 参考サイト
べき乗と除算の書き方について、下記サイトを参考にさせていただきました。
[[解決!Python]割り算の商と余りを求めるには](ht

元記事を表示

学習日記#6: Kaggle startbook ch2.2

## ゴール
TitanicのコンペにSubmit

## 教材
Kaggleスタートブック ch2.2

## やったこと
– Kaggle上でNotebook作成
– Inputをコンペから直接追加
– Kaggle startbookのサンプルコード(.ipynb)をKaggle NotebookにImport

## 学び、気づき
– サンプルコードをそのまま実行したらFuture Warningsでる件 #1
`data[‘Sex’].replace([‘male’, ‘female’], [0, 1], inplace=True) `
– replaceメソッドでinplace引数=Trueを使うと以下メッセージが出る(ただし処理は正常に実行される)どうやら「記法は新しいやつにしてくれよな!」と言ってるらしい。
“`
FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace met

元記事を表示

ModuleNotFoundError: No module named ‘_tkinter’とModuleNotFoundError: No module named ‘_lzma’を解決する

# はじめに
先日UbuntuにてPython3.12.2の環境を構築しようとしたところタイトルのようなWarningが出て解決に苦戦したので一応記事として残しておこうと思います。

# 環境
筆者の環境は以下の通りです
– Ubuntu22.04
– pyenv 2.3.36
– Poetry (version 1.8.2)

# やったこと
とりあえず解決法が知りたい人のためにやったことだけ残しておきます。どうやらライブラリが導入されていなかったのが原因らしいです
“`sh:terminal
pyenv uninstall {使うpythonのversion} #入れたpythonのアンインストール
“`
“`sh:terminal
sudo apt install liblzma-dev # ModuleNotFoundError: No module named ‘_lzma’の解決
“`
“`sh:terminal
sudo apt install python-tk #ModuleNotFoundError: No modul

元記事を表示

分類問題をできるだけ透明にする

昨今深層学習の台頭か高精度で予測して「はい終了」というのを時々見る事があります。ですが、例えば何らかの意思決定をする事においては高精度のAIを頼るにも入力値に気を付けないといけないし(VIFなど)、人の目で深層学習について何らかの規則性を解釈するにはSHAPなどを使用しないと難しいと思います。

https://qiita.com/murasaki1994/items/b7f76390752d4423846c

https://github.com/NTanaka1994/DataAnalysis/blob/main/%E8%AA%AC%E6%98%8E%E6%80%A7%E3%81%AE%E8%A6%B3%E7%82%B9/XDNN.ipynb

そこで、温故知新で決定木、主成分分析、ロジスティック回帰を使ってデータがどういうものか考察してみようと思います。
使用するデータはScikit-LearnにありますWineデータです。
# コーディング
## ライブラリのインポート
“`Python3
from sklearn.linear_model import LogisticRe

元記事を表示

量子コンピュータ難民ガイド -qiskit 1.0 で超基本的な量子回路をシュミュレータと実機で動かしてみる。-

趣味(半分弱仕事)で量子コンピュータを触っております。
量子力学を勉強しなおして、入門書をいくつか読んでさぁqiskitを動かそう!と思ったら最近qiskitがversion 1.0になり今までの記法がことごとくおじゃんになり検索してもあまり情報が出てこない状態に。あ、これpymicで経験したやつだ!(version 3.0でガラッと変わり今までの記法がすべておじゃんに)。 Migration guide https://docs.quantum.ibm.com/api/migration-guides/qiskit-runtime-from-ibm-provider
を読みながら、移住も何も僕最初から難民なんですけど(笑)と思いながら、あれやこれやさわっていたら動いたので、難民ガイドとしてここに記しておきます。

まず、何はともあれqiskitをインストールしてください。https://docs.quantum.ibm.com/start/install

端的にいうと、適当に仮想環境をpython 3.10以上で作ってそこにいつものやつと qiskit と qiskit-ibm-

元記事を表示

word2vecで平和について考えてみた

# はじめに
マス目に単語を書き込むことで思考整理、思考を広げるのに役立つマンダラートというものがあります。本来マンダラートは人間が行うものですが、今回はAIの力でそれをやってみるという実験です。
これは完全に趣味でやってたことで、記事にするつもりじゃなかったのでいろいろと雑ですが、温かい目で見てください。

# マンダラートとは?
参考:

https://www.hrbrain.jp/media/human-resources-development/mandalart

9×9のマス目を用意し、その中心に考えを深めたいテーマを置きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1751564/47800d73-abee-e243-f3b9-3fa1a762ceaa.png)

テーマの周囲8マスに、テーマに関連することを書いていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

faster-whisperを使った音声データのテキスト化

# 目次
[1.はじめに](#1-はじめに)
[2.準備](#2-準備)
[3.音声データのテキスト化(日本語)](#3-音声データのテキスト化(日本語))
[4.音声データのテキスト化(英語)](#4-音声データのテキスト化(英語))
[5.ダメな例](#5-ダメな例)
[6.代替策](#6-代替策)
[7.おわりに](#7-おわりに)

# 1. はじめに
はじめに、**結論**を書いておきます。

:::note info
①**faster-whisperは音声データのテキスト化には、非常に優れている**
②**GPUが必要**になるので、手当てが必要
③**翻訳や要約にはChat-GPTを使う**のが良さそう
:::

以下、自分のメモ用にポイントだけ記載します。

# 2. 準備
#### ①ハード面
**GPUが必要**です。個人で、お手軽に試すのであれば、**Google Colaboratory**を使うのが良いでしょう。
ランタイムのタイプを必ず、GPUにしておくのを忘れないようにしましょう。

#### ②ソフト面
以下のインストールが必要です。Google Co

元記事を表示

【Matplotlib】TwoSlopeNormを用いた任意の中心値やスケールに合わせたカラーバーの配置方法

## はじめに

[Matplotlib](https://matplotlib.org/)のカラーマップを使用する際、値のスケールを任意の中心から小さい側と大きい側で異なるスケールを適用する場合、[TwoSlopeNorm](https://matplotlib.org/stable/api/_as_gen/matplotlib.colors.TwoSlopeNorm.html)がよく利用されます。しかし、この方法で得られるカラーマップは一般的に問題にはなりませんが、得られるカラーバーに関して、スケールに合わせて表示したい、またはその任意の中心値をカラーバーの中央に配置させるなど、細かい部分の実装がやや複雑です。そこで、本記事では、[先行資料](https://github.com/matplotlib/matplotlib/issues/22197)を参考にして2種類の方法(カラーバーの中央に配置する方法、カラーバーをスケールに合わせて配置する方法)について紹介しようと思います。

:::note warn
Matplotlibのバージョン3.5.0以降とそれ以前のバージョンにおい

元記事を表示

【Pytho 型ヒントTips】for文で型ヒントを使う方法

# はじめに
Pythonのfor文で型ヒントを使う方法のメモ。

# 動作確認環境
* Python 3.8.10

# 方法

ループの前で変数を宣言する。

“`python
i: int
for i in range(5):
pass
“`

# 参考

https://stackoverflow.com/questions/41641449/how-do-i-annotate-types-in-a-for-loop

元記事を表示

VSCodeでpythonのdocstringの色を変更する

## settings.jsonでコメントの色を設定する

settings.jsonを開き、下記の設定を追加することでdocstringの色を変更できる。

“`
“editor.tokenColorCustomizations”: {
“comments”: “#d8bfd8”, // インラインのコメントの色
“textMateRules”: [
{
“scope”: [
“string.quoted.docstring.multi.python”
],
“settings”: {
“foreground”: “#d8bfd8”, // docstringのコメントの色
“fontStyle”: “italic”
}
}
]
“`

元記事を表示

OTHERカテゴリの最新記事