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

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

k-meansをライブラリを使わずに実装する

# はじめに
 k-meansは教師なし学習に該当し、与えられたデータを任意の数のグループに分ける手法です。
本記事ではk-meansのアルゴリズムについて解説します。

# k-meansとは?
 k-meansは与えられたデータをk個のグループに分けるクラスタリングの手法です。k-meansではデータの類似度に基づいてグループ分けを行います。類似度はクラスタの中心(後述)とデータの距離が近ければ類似度が高いと判定します。具体的なアルゴリズムは次の章で説明します。

# k-meansのアルゴリズム
k-meansのアルゴリズムの手順は下記の通り:

1. **初期化**: クラスタの中心となるk個の点(セントロイド)をデータセットの中からランダムに選ぶ
2. **クラスタへの割り当て**: 各データは最も近いセントロイドのクラスタに割り当てられる。近さはユークリッド距離(2点間の直線距離)で判定される
3. **セントロイドの更新**: 各クラスタ内でデータの平均位置にセントロイドを移動させる。
4. **反復**: 2, 3を繰り返してクラスタの割り当てが変わらなくなるか、ユーザ

元記事を表示

PythonでPDFを画像に変換する

## はじめに
PDFファイルは安定したレイアウト、簡単な転送性、高い可読性のため、日常業務で広く使用されています。場合によっては、PDFを画像に変換する必要があります。コンテンツを画像として保存することで、読み込み速度が向上し、誤って編集されるリスクも低減されます。さらに、PDFファイルやページを他のドキュメントやウェブページに埋め込みたい場合、指定された画像形式に変換することは優れた選択肢です。この文章では、Pythonを使用してPDFを画像に変換する詳細について説明します。

## ツール
* Python 3.12.0
* [Spire.PDF for Python](https://www.e-iceblue.com/Introduce/pdf-for-python.html)ライブラリ

このライブラリは購入する必要がありますが、[30 日間の無料試用版](https://www.e-iceblue.com/TemLicense.html)も提供されています。
もっと多いサンプルコードについて、[Spire.PDF for Python](https://www.e-ice

元記事を表示

vscodeのPython仮想環境下でKerasを使えるようになるまで

# はじめに
深層学習に初めて取り掛かろうと思った際に躓いたのでメモとして残します。

:::note warn
本文は時系列に沿って書いてあります。
参考にされる場合はご注意ください(最後まで読んでから取り掛かることをお勧めします)。
:::

# 環境
Windows11

# 1.Pyhonのインストール
面倒なのでMicrosoftStoreで”Python”と検索して最新の3.12をダウンロード。

powerShellでpython –versionと入力してPython[ バージョン ]と出たらダウンロード成功
“`terminal
>python –version
Python 3.12
“`

# 2.仮想環境の作成
pythonのインストールの完了後、仮想環境を作成したいディレクトリにcdで移動して、以下を実行。

“`
>python -m venv .venv
“`

ここで、最後の「.venv」は仮想環境名らしい。
必要に応じて変更する。

その後、vscodeでPowerShellを開き、
“`
>Set-ExecutionPolicy -Ex

元記事を表示

Heaviside関数を使って?2つの動点で面積計算「24年 共通テ 本試験 I 3-2・IA 2-1 2次関数の応用問題」をsympyと作図をやってみたい。

**パイソニスタの方へ**
**・Heaviside関数の正しい?使い方を教えて下さい。** 
 **プログラムは、3秒後から、倍のスピード4tを追加しています。**
 グラフが、2tで右下さがりだから、4tで上げています。
・Ropenで分割しています。Ropenを使わない方法がありますか?
 solveset関数はできるのに、maximum関数は、できませんでした。
・Singularity functionで、できそうですか?

(参考)
・sympyで「Heaviside step function(ヘヴィサイドの階段関数)」を使ってみた
https://qiita.com/mrrclb48z/items/ef607bd4016bb2541e55
・sympyで「Singularity function(特異関数)」を使ってみた
https://qiita.com/mrrclb48z/items/9e776ca8f365a7a36fc3
# オリジナル 
 数学入試問題 様

https://kamelink.com/blog/2024/01/18/1-4-24-kyotsut

元記事を表示

LaboroTomato画像物体検出

# はじめに
機械学習モデルを構築するところから学習する目的で、農業をテーマとする機械学習の教師あり分類で使えそうなデータセットを探していたところ、[Laboro Tomato](https://laboro.ai/activity/column/engineer/laboro-tomato/)というトマト画像物体検出データセットを見つけました。
しかし、MMDetectionのツールボックス上に学習済みモデルが構築済みで、その目的を達成することができないと分かりました。
そこで方向性を変えて、学習済みモデルを利用して画像検出結果を可視化するところまで行うことにしました。

# 環境構築
## システム要件
Google Colaboratyに環境を構築します。
Colab上に追加で、mmdetとmmcvのインストールが必要です。

## MMDetectionのインストール
Colabの「ランタイム > ランタイムのタイプを変更」でGPUを選択しておきます。

GitHubのリポジトリから、mmdetectionをクローンしてインストールします。
“`bash
!git clone

元記事を表示

Discordのbotでパルワールドのサーバーのオンオフをできるようにしたお話

# 始めに
タイトルの通りのお話です。
Discordのbotでパルワールドを動かしているサーバー(AWSのインスタンス)のオンオフをできるようにしました。
AWSのサーバーでパルワールドを動かしていて、24時間動かしたくないけどいちいち起動するのめんどいよって人向けの話です。
AWSでパルワールドのサーバーを建てる方法はこちらを参照 [最大32人 パルワールド Linux 専用サーバの建て方](https://qiita.com/naoya-i/items/e907a6b949e5da36d532)

# システムの概要
![構成.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276309/b7094158-12d8-1d8b-58ab-3f905621eb41.jpeg)
システムの概要は上記です。
t2.nanoをDiscordのbotサーバーにして、ユーザーがDiscordのゲーム用鯖でサーバーの起動コマンドを打ったら、メインのパルワールドのインスタンスが起動するという構成になっています。

#

元記事を表示

【初心者向け】Jupyter Notebookのコマンド操作(背景色やフォントの変更)

「Jupyterの背景色やフォントの色を変えたいな」と思った時に、ネットで調べると方法を公開している人はたくさんいるけど、「Jupyter Notebookのコマンド操作ってどうやるの?」という初歩的な点で少々迷ったので同じような初心者向けにメモしておきます。

「こんな感じにしたい…!」という方へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665553/83f95a23-c608-1343-372d-a0ed9b7c4344.png)

## 環境
・Windows 11
・Anaconda3-2023.09-0-Windows-x86_64

## 対象
AnacondaでJupyter Notebookをインストールした人

## Jupyter Notebookの背景色やフォントの色を変える方法
参考にしたリンクは下記です。
https://qiita.com/uratatsu/items/cdc83308ce85a32d0512

## Jupyter Notebook(

元記事を表示

リアルタイムで音響イベントをラズベリーパイ(Raspberry Pi4 B)で検出

# 使用したデバイス
1\.Raspberry Pi 4B(64-bit)
2\.USB接続マイク(logicool C270n HD WEBCAM)

# 前準備
マイクのデバイスが認識しているか
参考サイト https://hellobreak.net/raspberry-pi-usb-microphone/

# 手順
ターミナルで以下のコードからgit cloneし、ファイルに移動。そしてrequirements.txtに書かれているライブラリをインストール
使用させて頂いたgit hub
https://github.com/robertanto/Real-Time-Sound-Event-Detection
“`
git clone https://github.com/robertanto/Real-Time-Sound-Event-Detection.git
cd Real-Time-Sound-Event-Detection
pip3 install -r requirements.txt
“`
インストールが完了したらThonnyかターミナルで実行
ターミナルの

元記事を表示

Pythonの配列の宣言をまとめてみた

Pythonの配列についてまとめました。

# Pythonの配列について
Pythonには4種類の配列があります。

ここでは、list型、tuple型、dictionary型、set型について記述します。

# list型
“`py
A = list()
A = []
A = [1]
“`
list型は、このどちらかで宣言することができる。
# tuple型
“`py
B = tuple()
B = ()
B = (1,) # 1要素の場合カンマが必要、カンマがないと優先演算の括弧に解釈される
B = 1, # カンマがあれば括弧は省略可能、省略できない場合もある
B = (1, 2, 3)
“`
tuple型は、基本的に要素を変更できない。
# dictionary型
“`py
C = dict()
C = {}
C = {“key”: “value”}
C = {“one”: 1, 1: “one”}
“`
dictionary型は任意の文字列や数字などを添え字のように指定できる。
# set型
“`py
D = set() # 空集合は set() で

元記事を表示

Pythonの動画エンコーディング

# opencv-pythonと動画エンコーディング
opencv-pythonは動画出力に対応している
動画圧縮規格としてWebでも再生できるh264やMJPGなどがある

# opencv-python H.264 ビデオ圧縮規格で動画作成
通常、pip install でライブラリを用いると使用するデバイスにあったバイナリがインストールされる
opencv-pythonはバイナリインストールの場合h.264圧縮が使えない
ソースからビルドすることで回避可能

“`
# opencv-python from binary
cv2.VideoWriter_fourcc(*’avc1′) #-> ERROR

# Purge for source build
pip uninstall opencv-python

# Enabled H264
pip3 install –no-binary opencv-python

# opencv-python from whl
cv2.VideoWriter_fourcc(*’avc1′) #-> CORRECT
“`

# H265

元記事を表示

Pythonで物体検出をかんたんにつかう(Yolov8)

まずはインストール

“`shell
pip install ultralytics
“`

推論

“`python
from ultralytics import YOLO

# Load a model
model = YOLO(‘yolov8n.pt’)
# model = YOLO(‘path/to/best.pt’) # load a custom model

results = model(‘your_image.jpg’,save=True)
“`

![f9aca3f2-a364-4de7-a986-b4e84b649140.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/07b8a3d3-673a-575a-af59-db808b0e2c7c.jpeg)

これで結果が得られる。

“`python
import torch
torch.set_printoptions(sci_mode=False)

for result in results:

元記事を表示

MojoのインストールとPythonとの速度比較

## はじめに
MojoはPythonの上位互換という話で、とても速いということでニュースになっていました。

私はPythonにがりがり処理をさせてことはなく、遅さを感じたことはありませんでした。”Pythonは自由に書ける分、型推論が必要になるため、パフォーマンスに影響している”と言われていることをMojoと同時に知ったくらいです。

ニュースからしばらく経過して、簡単に触れるようになってきたので、実際に体験してみたいということで触ってみた備忘録となります。

## インストール

– 環境:Windows WSL2 – Ubuntu 22.04.2 LTS

参照させていただいたいくつかのページをみるとおり、とても簡単。
公式で Windows WSL2でのやり方もでています。

https://www.modular.com/max/mojo

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167772/61035f41-82b2-8dff-5c0d-9055d6da45b0.png

元記事を表示

Bluetoothで家の中の携帯を見つけてみた

## はじめに
皆さんにこんな経験はありませんか??

**家の中なのに携帯がない!!**

自分はよく家の中で携帯を無くします。大抵30秒くらい探せば見つかるのですが、特には全く見つからない時もあり、切羽詰まっている時だと心の具合が悪いです。

部屋を整理整頓する!置き場所を決める!という古典的かつ最も有効な手法は一旦無視して、携帯を無くした時用の携帯捜索システムを作ってみました。

:::note warn
「iPhoneを探す」については、筆者の自宅の環境では中々使用できないので番外編で記載します。
:::

## 携帯捜索システムについて
今回は携帯のBluetoothの信号強度から位置(距離)を推定、携帯を探してみます。
イメージ図にすると以下です。

![ 2024-01-31 1.46.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/f67398d3-b5bf-0c93-87b8-30f0ab22ca7c.png)

次に上記を達成するための具体的なステップは以下です

元記事を表示

AES暗号化をPythonとJavascriptでやってみる話(備忘録)

# この記事の大まかな内容
PythonのFlaskを使用してWEBアプリ開発をしていたのだが、ローカル環境で動かす専門のWEBアプリのため、SSL証明書が取得できないし、
OpenSSLを使用してもいいが、chromeブラウザくんは警告を出しまくるし、何より、常に危険マークがつくのは気に食わないということでせめてAES暗号化をして通信をしてあげたいと思ったわけです。

# 注意点
– 個人の備忘録なので、あまり参考にならないと思います。
– この記事がきっかけになるいかなる損害も責任を負いません
– セキュリティ上危険と言われる可能性があるので、公式のドキュメントを参照してください
– WebCryptoAPIを最初使っていましたが、非SSL時に使用できないです!

Python でメールファイルから本文を取り出す

Python でメールファイルから本文取り出す方法を調べていたところ `Message` クラスを使っている例ばかりが出てきて、「なんで `EmailMessage` クラスを使わないのだろう」と思ったのでやってみた。

“` python
from email.message import EmailMessage

def parse_message(message: EmailMessage) -> tuple[str, str, list[tuple[str, str, str | bytes]]]:
“””EmailMessage から プレーンテキスト, HTML, 添付ファイル を取り出す”””
text, html, attachments = “”, “”, []

for part in message.walk():
if part.is_multipart():
continue
content_type = part.get_content_type().lower()

元記事を表示

VBA学習備忘録④ VBAにも「イミディエイトウィンドウ」というPythonのインタクラティブシェルのようなものがあるらしい

そもそもVBA(Visual Basic for Application)とは

https://qiita.com/thinking-weed/items/b322d1e34b888aa3ca22

そもそもPythonのインタラクティブシェルとは

details

**対話モードともいう、PCに最初からインストールされているコンソール(Windowsならコマンドプロンプト、Macまらターミナル(※VScode等のターミナルとは別物である))から呼び出すことのできるPythonを1行ずつ実行する実行環境**

 なお、Python関連の本を買うと、よくAnacondaという開発環境を使うようにかいてあることがありますが、私は下記の参考資料⑥『確かな力が身につくPython「超」入門 鎌田正浩 著』に従い、VScode上(?)に開発環境作り、Javaも含め、できる限り一本化していて(とりあえず今のところは、何か動いていて)インタラクティブシェルを使う場合は個人的にそれが楽なので、

**以

元記事を表示

Atcoder勉強記録⑦

Atcoderの勉強した記録を書いていきます。
勉強の参考にしてください。
[解いた問題一覧](https://kenkoooo.com/atcoder/#/table/kenbo0224)

# 1.問題①
[A – Capitalized?](https://atcoder.jp/contests/abc296/tasks/abc296_a)(Difficulty21

## 解答
“`python
S = input()

if len(S) == 1:
if S.isupper():
print(‘Yes’)
else:
print(‘No’)
else:
flg_upper = S[0].isupper() # 大文字かを判断
flg_lower = S[1:].islower() # 小文字か判断

if flg_upper and flg_lower:
print(‘Yes’)
else:
p

元記事を表示

ディスコード音楽ボットの作成

Pythonを使用してディスコードで音楽を再生するボットを作成するプロセスを紹介します。まずは、ディスコードボットの作成とGoogle Cloud PlatformでYouTube APIキーを取得する方法から始めます。

**ディスコードボットの作成方法**
1. ディスコード開発者ポータルへのアクセス: [Discord Developer Portal](https://discord.com/developers/)にアクセスします。
1. 新しいアプリケーションの作成: 「New Application」ボタンをクリックして新しいアプリケーションを作成します。
1. ボットの追加: 「Bot」セクションに移動し、「Add Bot」をクリックしてボットをアプリケーションに追加します。
1. トークンの取得: ボットのトークンを取得し、安全な場所に保管します。このトークンは後ほどコード内で使用します。

**GCPでYouTube APIキーを取得**
1. Google Cloud Platformにログイン: [Google Cloud Console](https://co

元記事を表示

時系列解析とSARIMAによる製品受注個数の予測

**初めに:**
このブログはAidemy Premiumのカリキュラムの一環で、受講修了条件を満たすために公開しています。

**実行環境:**
Python3.10.12
Windows10
Google Colaboratory

**目的:**
時系列データ解析の実践
SARIMAの実践と予測の精度を高める

**概要:**
まずは、SARIMAモデルに使用するパラメーターsを決定するために、時系列解析を実践して、データの周期性やトレンドを確認する。
原系列に外れ値があるため、原系列の外れ値を欠損させ、それをスプライン補完し、自然な系列に近づけたデータを作成し、原系列と補完後データのSARIMAを比較してみる。

**工程:**
1. 必要なモジュールのインポートとデータを読み込み
2. 原系列の時系列解析
2-1. 自己相関係数と偏自己相関係数グラフで周期性の確認
2-2. トレンド、季節変動、不規則変動(残差)に分け可視化
3. 原系列の外れ値を欠損値にし、スプライン補完
4. スプライン補完後データの時系列解析
4-1. 自己相関係数と偏自己相関係

元記事を表示

OTHERカテゴリの最新記事