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

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

【Python】内積と勾配

## 内積
ベクトルaとベクトルbの内積は、
“`
a・b = (1, 3)・(4, 2) = 1×4 + 3×2 = 10
“`
のように計算する。

このベクトルの成分がDまであるとすると、
“`
a・b = a0×b0 + a1×b1 + … + aD×bD = Σai×bi
“`
iは0からDの値で和記号に直せる。

逆に、和記号Σは内積として計算できる。

Pythonではfor文の和よりも内積として計算した方が処理として高速になる。

“`python
import numpy as np

a = np.ones(1000)
b = np.arange(1, 1001)
print(a.dot(b))
“`

“`実行結果
500500.0
“`

## 勾配
`f = w0^2 + 2×w0×w1 + 3`の勾配を表示する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3850581/0d51791d-027b-d53c-8e66-112e3ac0e6

元記事を表示

pythonでのデータファイルの扱い方

## はじめに
主に画像認識屋に向けて
pythonでのデータファイルの扱い方を
標準的なデータ形式について知ってしまうためのものです。

## json
Python のdict型と対応の付けやすい、キーと値の組合せで読み書きできるデータフォーマットです。
[json — JSON エンコーダーとデコーダー](https://docs.python.org/ja/3/library/json.html)
json フォーマットはCVATでのアノテーション結果の標準的なデータ形式に使われています。
アノテーション結果をの場合には、アノテーションファイルに対応したライブラリを使うのがおすすめです。

## yaml
[PyYAML](https://pyyaml.org/wiki/PyYAML)
CircleCIのconfig.yaml はyaml形式です。

## toml
pypi [toml](https://pypi.org/project/toml/)
github [toml](https://github.com/uiri/toml)
python のパッケージ管理用の

元記事を表示

【Python】簡単にリアルタイム認識をする!

## はじめに

Pythonのライブラリ、cv2を使ってリアルタイム顔認識を作ることができます。
Pythonでリアルタイム顔認識をしてみたい!という方に読んでいただきたいです。

## 実行環境

– Python 3.11
– Windows 10

### 使用ライブラリ

#### 標準ライブラリ

– os

#### 外部ライブラリ

– cv2
– face_recognition
– numpy
– tqdm

## ライブラリのインストール

今回のプログラムでは「cv2」「face_recognition」「numpy」「tqdm」と5つの外部ライブラリライブラリを使用します。以下のコマンドでインストールしましょう。

“`:ライブラリのインストール
pip install opencv-python
pip install face_recognition
pip install numpy
pip install tqdm

又は

pip install opencv-python face_recognition numpy tqdm
“`

## 準

元記事を表示

Pythonを使った3Dグラフの表示

f3という関数を様々な方法で表現する。

## 数値を色で表現する
“`python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

def f3(x0, x1):
r = 2 * x0**2 + x1**2
ans = r * np.exp(-r)
return ans

xn = 9
x0 = np.linspace(-2, 2, xn)
x1 = np.linspace(-2, 2, xn)
y = np.zeros((len(x0), len(x1)))

for i0 in range(xn):
for i1 in range (xn):
y[i1, i0] = f3(x0[i0], x1[i1])

print(x0)
print(x1)
print(np.round(y, 1))

plt.figure(figsize=(3.5, 3))
plt.gray()
plt.pcolor(y)

元記事を表示

pytest の使い方

pytest の使い方

(同僚への紹介用に書いてみた。)

## 目標
以下のようにしてテストができるようにします。
“`
cd test; pytest test*.py
“`

## 手順
#### pytest のインストール
“`
python3 -m pip install pytest
“`

#### リポジトリにtestのディレクトリを追加します。

テストをモジュールの説明になるように開発する
よりよいテストは、モジュールの動作の説明としてわかりやすいように実装する。
何かの理由により実装が壊れたときには、見つけられように書く。

動作テストと性能の評価は別物にする

pytestでの動作テストは、典型例での動作の検証にして、実施例の数を減らす。
機械学習などの推論の性能に関する指標の評価はpytestには含めないようにする。

#### テストされるモジュールがモジュールとして呼び出し可能なことの確認
テストされるモジュールがモジュールとしてインストールされている状況をになっていることを確認します。
モジュールのフォルダには`__init__.py`ファ

元記事を表示

【多項式回帰分析】機械学習特訓 ver.2(予習)

【特訓 ver.2】 多項式回帰スタート!!

・単回帰分析の場合は、1次関数のような関係の場合に利用。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853135/07dc9418-49f7-819a-2387-1e620c0d38b1.png)

ただし、いつも上記のように、シンプルに比例するような関係でない場合もある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853135/881ec1b7-a5e9-efcd-7bfa-3f39edc2771a.png)

・その場合に多項式回帰で考える。2次以上の関数に適用する(2次関数など)
 ※とはいえ、事前に多項式回帰とわかるケースは少ないらしい…。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853135

Python初心者がマスターしておきたい辞書の活用テクニック10選!

# はじめに
みずほリサーチ&テクノロジーズの @fujine です。

本記事では、**Pythonの辞書をより便利に使うためのテクニック10個を解説**していきます。基本的な操作も多く含まれていますが、
– パフォーマンスを意識して実装する
– キーの数に依存せず、短い行数で簡潔に実装する
– 辞書の可読性を高める

ことに重点を置きました。**Pythonの辞書に一通り慣れた初心者が、チーム開発やより複雑なプログラム開発へステップアップする際に活用**いただけたらと思います。

1. [辞書を作成する](#辞書を作成する)
1. [複数の辞書を1つに結合する](#複数の辞書を1つに結合する)
1. [初期値を持つ辞書を作成する](#初期値を持つ辞書を作成する)
1. [辞書の要素を取得・更新・追加・削除する](#辞書の要素を取得更新追加削除する)
1. [要素の追加と取得を一度に実行する](#要素の追加と取得を一度に実行する)
1. [辞書から複数の要素を同時に取得する](#辞書から複数の要素を同時に取得する)
1. [辞書をキーや値でソートする](#辞書をキーや値でソートする

paizaラーニングレベルアップ問題集をPython3でやってみた

paiza×Qiita記事投稿キャンペーンということで、キャンペーン対象問題25問をPython3で解いてみました。
– – –
###### [文字の一致](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/diff_str)
“`py
print(“OK” if input() == input() else “NG”)
“`
– – –
###### [一番小さい値](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/min_num)
“`py
print(min(int(input()) for _ in range(5)))
“`
– – –
###### [足し算](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/addition)
“`py
a, b = map(int, input().split())
print(a + b)
“`
– – –
###### [Eメールアドレス

プレイヤーとCPUが対戦するオセロゲーム のHTML + JavaScriptコード。

![スクリーンショット 2024-08-26 043118.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/e32b679c-2564-8d0e-953c-7a32602e4d3c.png)

![スクリーンショット 2024-08-26 043103.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/25fc6d2b-2504-d405-2576-32be9221ac8e.png)

### プレイヤーとCPUが交互に手を打つ基本的なオセロゲームです。マウスでマスを指定して左クリックで決定です。

コードをメモ帳などのテキストエディタに貼り付け、ファイルを「index.html」などの拡張子が.htmlのファイルとして保存します。その後、保存したファイルをブラウザで開けば、コードが実行されます。

####

“`html

Djangoで猫を判別するLINE Chatbotを作ってみた

# はじめに
Djangoを使って、LINEアプリのチャットボットを作成した備忘録:writing_hand:

今回使ったAPIは
– LINE Messaging API
– Google Cloud Vision API
– DeepL API

# 開発環境
– macOS
– Python 3.10.10

# 構造
ざっくりとしたイメージ
1. チャットボットがメッセージを受信する
2. 画像メッセージであれば、猫かどうかを判別する
3. 判別結果に応じて、返信メッセージを作成
猫でなければ、可能性のある候補を3つ提示
4. 返信メッセージを和訳して、日本語と英語のメッセージを返信する

![linebot_cat (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761771/b9aca630-86ca-4423-8f08-d3c65906ccf8.png)

それでは、LINEチャットボットアカウントの作成と実際のpythonコードを見ていきます:robot:

# L

【Python3エンジニア認定基礎試験】4. その他の制御フローツール

4.1. if 文

if文は、条件に基づいて異なるコードを実行するための基本的な方法です。
以下の例では、整数が0より小さい場合、0に変更する処理を行っています。

“`
x = int(input(“Please enter an integer: “))

if x < 0: x = 0 print('Negative changed to zero') elif x == 0: print('Zero') elif x == 1: print('Single') else: print('More') ``` if文は条件がTrueのときにコードブロックを実行します。 elifはelse ifの略で、追加の条件を指定します。 elseは全ての条件がFalseの場合に実行されます。 4.2. for 文 --- Pythonのfor文は、リストや文字列のようなシーケンス型のオブジェクトを反復処理します。以下の例では、文字列リストの各要素とその長さを表示します。 ``` words = ['cat', 'window', 'de

【Python3エンジニア認定基礎試験】3. 形式ばらない Python の紹介

コメントの使い方

Python では、コメントを # で始めることができます。
コメントは、コードの動作に影響を与えません。

“`
# これはコメントです
spam = 1 # これはコードの後ろにあるコメントです
text = “# これはコメントではなく、文字列です”
“`

Python を電卓として使う

Python インタプリタを起動すると、電卓のように数値計算ができます。
“`
>>> 2 + 2
4
>>> 50 – 5 * 6
20
>>> (50 – 5 * 6) / 4
5.0
>>> 8 / 5 # 割り算は常に浮動小数点を返します
1.6
“`
整数と浮動小数点の区別も自然です。整数除算 // は、結果の小数点以下を切り捨てます。

“`
>>> 17 // 3
5
>>> 17 % 3 # 剰余(あまり)
2
>>> 5 ** 2 # 冪乗 (5 の 2 乗)
25
“`

変数への代入

変数に値を代入して計算を行うこともできます。
“`
>>> width = 20
>>> height = 5 * 9
>>>

【Python3エンジニア認定基礎試験】2. インタプリタの使用方法

2.1. インタプリタの起動方法

Unix/MacOS:
Pythonインタプリタは通常 /usr/local/bin/python3.9 にインストールされます。
Unixシェルの検索パスに /usr/local/bin を追加することで、python3.9 コマンドでインタプリタを起動できます。
インストールディレクトリは選択可能で、他の場所にインストールされる場合もあります。

Windows:
Microsoftストアからインストールした場合、python3.9 コマンドが使用可能です。
また、py.exe ランチャをインストールしている場合は py コマンドも利用できます。

インタプリタの終了方法:
Unixでは Control-D、Windowsでは Control-Z を使用して終了できます。
また、quit() コマンドを入力して終了することもできます。

コマンドライン編集機能:
インタプリタがGNU Readlineライブラリをサポートしているシステムでは、対話的行編集、ヒストリ置換、コード補完が利用できます。
サポートされているかどうかは、Pythonプ

【Python3エンジニア認定基礎試験】1. やる気を高めよう

1.Pythonの概要

多目的プログラミング言語: Pythonは、さまざまなタスクを効率的にこなせる多目的プログラミング言語です。ファイル操作、GUIアプリケーション、ゲーム開発など、多岐にわたる分野で利用できます。
クロスプラットフォーム: PythonはWindows、macOS、Unixなど、主要なオペレーティングシステムで動作します。

2.Pythonの利点

簡便性と高速な開発: Pythonはインタプリタ言語であり、コンパイルやリンクが不要なため、開発サイクルが短縮されます。また、C/C++/Javaと比べて短く、読みやすいコードを書くことができます。
高レベルのデータ型: 可変長配列や辞書といった高級データ型を標準でサポートしており、複雑な操作を簡潔に実現できます。
エラーチェック: 実行時に多くのエラーチェックが行われるため、バグの発見が容易です。

3.Pythonの拡張性

モジュール化: プログラムをモジュールに分割し、他のプログラムで再利用できます。Pythonの標準モジュールには、ファイルI/O、システムコール、ソケット、GUIツールキ

Pythonで〇×ゲームのAIを一から作成する その110 データ型による演算子の処理の違いによるバグとboard 属性を利用した局面の表現

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/d2c309058e2c60d2e476

## これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

| リンク | 説明 |
|:–|:–|
| [marubatsu.py](https://github.com/ysgeso/marubatsu/blob/master/110/marubatsu.py) | Marubatsu、Marubatsu_GUI クラスの定義|
| [ai.py](https://github.com/ysgeso/marubatsu/blob/master/110/ai.py) | AI に関する関数 |
| [test.py](https://github.com/ysgeso/marubatsu/blob/master/110/test.py) | テストに関する関数 |
| [util.py]

MLflow LLM Evaluate:mlflow.metrics.latency() で ValueError が発生した時の対処方法

# はじめに

株式会社NTTデータ [デジタルサクセスソリューション事業部](https://enterprise-aiiot.nttdata.com/) で AWS や Databricks を推進している [nttd-saitouyun](https://qiita.com/nttd-saitouyun) です。

MLflow LLM Evaluate で LLM を評価する記事を投稿しました。

https://qiita.com/nttd-saitouyun/items/5b4014f9326bd3997736

その中で、少しハマったところがあったので本書にまとめておきます。

# MLflow LLM Evaluate のメトリクスのカスタムリストを使用する
mlflow.evaluate の **extra_metrics 引数にメトリクスのカスタムリストを指定できます**。マニュアルは[こちらのページに](https://docs.databricks.com/ja/mlflow/llm-evaluate.html#use-a-custom-list-of-met

タイタニックの欠損値を真面目に考えてみた

生のデータにはたいてい欠損値が含まれますが、今回はその欠損値に統計解析と機械学習で補完するアプローチをしてみようと思います。
# タイタニックデータ
“`Python3
import pandas as pd

df = pd.read_csv(“train.csv”)
df.head()
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2782889/eeb71ad0-e293-aea1-d9c6-9febb3a1993b.png)
## 欠損値の確認
“`Python3
df.isnull().sum()
“`
“`
PassengerId 0
Survived 0
Pclass 0
Name 0
Sex 0
Age 177
SibSp 0
Parch 0
Ticket 0
Fare

PythonでXinputのゲームコントローラーを使う

pygameというライブラリを使えばXinputのコントローラーがpythonで使えるようになるようです。
とりあえず適当にグラフィカルに表示するアプリを作ってみました。
![xinput.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719521/fde0112e-ceec-1cc5-602a-981ade7ca26a.gif)
ボタン10種とスティック2本とLTとRTです。
Selはセレクトボタンのつもりで書いたけどBackボタンかもしれない

あまり時間がないのでテキトウにコードだけですがこんな感じ(暇になったら解説入れます)

“`py:Xinputテスト.py
import pygame
import cv2
import numpy as np
pygame.init()
pygame.joystick.init()

joystick = pygame.joystick.Joystick(0)
joystick.init()

while True:
A=B=X=Y=L=R=S

OpenCVで検出した画像の輪郭をCSVで出力

# 概要
そのまんまですがOpenCVで検出した画像の輪郭をCSVで出力するコードです。

# 環境
– Ubuntu 24.04.LTS
– Python 3.12.3 (venvで仮想環境化して使用)

# pipのリスト()
contourpy==1.2.1
cycler==0.12.1
fonttools==4.53.1
kiwisolver==1.4.5
matplotlib==3.9.2
numpy==2.1.0
opencv-python==4.10.0.84
packaging==24.1
pillow==10.4.0
pyparsing==3.1.3
python-dateutil==2.9.0.post0
six==1.16.0

# 参考URL

# ソースコード
“`python
puts ‘import cv2’
import matplotlib.pyplot as plt
import numpy as np
np.set_printopti

Google Colabを使用してYouTube動画からスライドを抽出しPDFにまとめる方法 (python)

# Google Colabを使用してYouTube動画からスライドを抽出しPDFにまとめる方法 (python)

## はじめに

オンライン学習やウェビナーの普及に伴い、YouTubeには教育的な動画が数多くアップロードされています。これらの動画の中には、スライドを使用したプレゼンテーションも多く、後で復習したい場合にスライドだけを簡単に参照できれば便利です。

本記事では、Google Colaboratory(通称:Google Colab)を使用して、YouTube動画からスライドを自動的に抽出し、PDFにまとめるPythonスクリプトの開発過程と使用方法について詳しく解説します。このツールを使用することで、長時間の動画から効率的にキーポイントを抽出し、復習や参照に適した形式で保存することができます。

## Google Colabとは

Google Colabは、Googleが提供する無料のクラウドベースのJupyter Notebook環境です。主な特徴として:

1. ブラウザ上で直接Pythonコードを実行できる
2. GPUやTPUなどの高性能ハードウェア