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

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

気象庁の緊急地震速報を受け取ってDiscordに通知する

# はじめに
緊急地震速報をDiscordに通知するBotはかなり見かけますが、いろんなサーバーで使われてるだけあって遅延がありますよね…
あ、自分で動かせばいいんじゃね?
# ということで…
緊急地震速報を通知するものを作っていきます。
他サーバーに送信する予定が無いのであればWebhookで大丈夫そう。
# 処理の流れ
1. 緊急地震速報を配信するTCPサーバーから緊急地震速報を受信
2. Pythonで人間が読みやすいように処理
3. Discordに送信
# プログラム
webhook_urlを変更してから動かして下さい。
“`python
import time
import socket
import requests
import math
import base64
import json
import gzip
import threading
import xml.etree.ElementTree as ET
from datetime import datetime, timezone

nolog_types = [“PING”, “PONG”, “

元記事を表示

第5回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!

# 第5回
今回は、資料を元に回答するwebアプリを作成しました。
参考URL:https://blog.streamlit.io/langchain-tutorial-4-build-an-ask-the-doc-app/
GitHub:https://github.com/s1932072/LangChain-tutorial-4

“`Python:main
import streamlit as st
from langchain.llms import OpenAI
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.embeddings import HuggingFaceEmbeddings
import os

os.environ[“TOKENIZERS_PARALLELISM”] = “false”

cla

元記事を表示

[Python][Julia]Project euler7 (プロジェクトオイラー7)

#### Project euler Ploblem 7 (プロジェクトオイラー7)
[10001st Prime](https://projecteuler.net/problem=7)

備忘のために残しておく。

## 問題
#### 問題文 (意訳)
素数をはじめから順に6個並べると、2,3,5,7,11,13。6番目の素数は13だとわかる。
10001番目の素数は?

#### 原文
By listing the first six prime numbers: 2, 3, 5, 7, 11 and 13 , we can see that the 6th prime is 13 .

What is the 10001st prime number?

## 解答
#### 答え
104743

####解答の方針
エラトステネスのふるいを使って10001個より大きい素数のリストを作成し、10001番目の素数をリストから取り出す。

#### Pythonのコード
“`Python:Python Ploblem7
def eratosthenes(n

元記事を表示

[Python][Julia]Project euler6 (プロジェクトオイラー6)

#### Project euler Ploblem 6 (プロジェクトオイラー6)
[Sum Square Difference](https://projecteuler.net/problem=6)

備忘のために残しておく。
この問題は、手計算可能でコードを書く必要がなかった。
(一応、コードは載せている)

## 問題
#### 問題文 (意訳)
100までの自然数の和の2乗と自然数の2乗の和の差を求めよ

#### 原文
The sum of the squares of the first ten natural numbers is,
“`math
\begin{align}
1^2 + 2^2 + … + 10^2 = 385
\end{align}

“`
The square of the sum of the first ten natural numbers is,

“`math
\begin{align}
(1 + 2 + … + 10)^2 = 55^2 = 3025
\end{align}
“`
Hence the difference

元記事を表示

[Python][Julia]Project euler5 (プロジェクトオイラー5)

#### Project euler Ploblem 5 (プロジェクトオイラー5)
[Smallest Multiple](https://projecteuler.net/problem=5)

備忘のために残しておく。

## 問題
#### 問題文 (意訳)
1~20の全ての数字で割り切れる最小の数は?
(1〜20の最小公倍数は?)

原文
2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20 ?

## 解答
答え232792560

最小公倍数を計算するだけ

#### Pythonのコード
“`Python:Python Ploblem5
# SymPyモジュールで最大公約数、最小公倍数を計算する
impo

元記事を表示

第4回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!

# 第3回

今回は要約アプリを実際に使ってみました。
参照URL:https://blog.streamlit.io/langchain-tutorial-3-build-a-text-summarization-app/
GitHub:https://github.com/s1932072/LangChain-tutorial-3/tree/main
“`Python:main.py
import streamlit as st
from langchain import OpenAI
from langchain.docstore.document import Document
from langchain.text_splitter import CharacterTextSplitter
from langchain.chains.summarize import load_summarize_chain

def generate_response(txt):
# Instantiate the LLM model
llm = OpenAI(base_u

元記事を表示

RealSenseで点群を取得する方法

Intel RealSenseは、深度センサーを使って3Dスキャンを行い、周囲の環境を3Dで捉えることができます。点群取得は、物理的な物から点を捉え、その3D表現を作成する物です。本記事では、Intel RealSenseを使用して点群を取得する方法を取り扱っていきます。

## 1: 必要な物
RealSenseデバイス: RealSenseデバイス(例えば、D415、D435など)が必要です。
RealSense SDK 2.0:動作確認用に [Intelの公式サイト](https://www.intelrealsense.com/sdk-2/)からRealSense SDK 2.0をインストールしてください。(なくてもOK)
Python: Pythonがインストールされていることを確認してください。
pyrealsense2: Python用RealSenseライブラリをインストールしてください。
“`
pip install pyrealsense2
“`
numpy: numpyインストールしてください。
“`
pip install numpy
“`
numpy:

元記事を表示

pip install pyrealsense2で対応するバージョンがないと言われた時の対処法

pythonでのRealSense開発環境を整えようとpip install pyrealsense2を実行した際に以下のようなエラーが出る場合があります。
“`
ERROR: Could not find a version that satisfies the requirement pyrealsense2 (from versions: none)
“`
このようなエラーの意味はpythonのバージョンに対応するライブラリが存在せずインストールができないという意味となります。そのためまずは、以下のPythonのバージョン確認コマンドでPythonのバージョンの確認を行ってください。
“`
python –version
“`
実行するとPythonのバージョンを確認することがで来ます。
次に[pypi](https://pypi.org/project/pyrealsense2/#files)のパッケージ検索でpyrealsense2のライブラリを調べます。Built Distributionsという項目にあるpyrealsense2のライブラリを確認します。名前の真

元記事を表示

第3回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!

# 第3回

# テンプレートの実装
前回、ユーザーからの入力内容について、返答を行うLLMwebアプリを作成した。
参考URL:https://blog.streamlit.io/langchain-tutorial-2-build-a-blog-outline-generator-app-in-25-lines-of-code/
プログラムの変更点はOpenAI APIではなくLocalLLMに繋いでいる点。
今回は”テンプレート”を用いてみたい。
これはテンプレートによって質問内容の大筋を決めてしまえる。

今回は使用したプログラムをいかに示す

“`Python:main.py
import streamlit as st
from langchain.llms import OpenAI
from langchain import PromptTemplate

st.set_page_config(page_title=”🦜🔗Blog Outline Generator APP”)
st.title(“🦜🔗Blog Outline Generator APP”)

de

元記事を表示

第2回 StreamlitとLangChainとLM studioを使って自分専用LLMウェブアプリを作りたい!

# 第2回! 簡単な実装編

# 初めの一歩

ここではLM StudioでローカルLLMサーバーを立て、そこにアクセスすることで動く簡単なChatBotを作成しました。

プログラムの内容はほぼ以下のURLと同じです。
https://blog.streamlit.io/langchain-tutorial-1-build-an-llm-powered-app-in-18-lines-of-code/

変わった点はOpenAI APIを使用せず、ローカルLLMに繋いだ点のみです。

プログラムはGitHubにもあげました。
https://github.com/s1932072/LangChain-tutorial-1-Build-an-LLM-powered-app-in-18-lines-of-code

“`Python:main.py
import streamlit as st
from langchain.llms import OpenAI

st.title(‘🦜🔗 Quickstart App’)

def generate_response(input_t

元記事を表示

RealSenseからIMUの情報を取得する方法

Intel RealSenseの一部には、内蔵されたIMUがあり、これを使用して加速度とジャイロスコープ(物体の角度、角速度、各加速度)のデータを取得することができます。本記事では、Pythonを使用してRealSenseからIMUの情報を取得する方法について取り扱っていきます。

↓実行結果
![スクリーンショット 2023-12-31 182106.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632959/94b09926-4526-6df0-22b2-bd00cc140d95.png)

必要なもの
対応しているRealSenseデバイス: 例えばD435iなど、IMUが内蔵されているモデル。
RealSense SDK 2.0: 動作確認用に[Intelの公式サイト](https://www.intelrealsense.com/sdk-2/)からRealSense SDK 2.0をインストールしてください。(なくてもOK)
Python: Pythonがインストールされていることを確認してく

元記事を表示

電気代を通知するLINEBotの開発【Part.1】

# 電気使用量を通知してくれるLINEbotを作ってみる

## 経緯
2023年8月、諸事情で引っ越しするにあたり、
[Octopas energy](https://octopusenergy.co.jp/friend/pure-duck-140)という電力会社に変更しました。
電気代支払いのためマイページにアクセスしたところ、開発者用APIを公開してくれていることを発見しました。
オクトパスエナジーの利用者の大半はこのことを気にも留めていないとおもいますが、
折角公式に提供してくれているので使ってみようと思います。

## 概要
今回は電気使用量(電気代)を通知してくれるLINEbotを作成したいと思います。
近頃、電気代の高騰で家計にダメージを受けているので、可視化することで少しでも節約を意識できるようするため
(と言うのはあくまで建前で単に面白そうだから作ってみたいだけ…)

## 開発環境
“`
Python: 3.8
Flask: 2.2.5
GraphQL: 3.4.1
line-bot-sdk: 3.1.0
“`
## やりたいこと
1.

元記事を表示

RealSense入門: カラーとデプス映像の取得方法

Intel RealSenseは、デブスカメラの1つです。カラーカメラの映像とデプスカメラの映像を取得でき、これにより、3Dスキャンや物体検出などのタスクを実行できます。本記事は、Pythonを使用してRealSenseからカラーカメラとデプスカメラの映像を取得していきます。

必要な物
RealSense: Intel RealSenseカメラ(例:D415、D435)を用意してください。
RealSense SDK 2.0:動作確認用に [Intelの公式サイト](https://www.intelrealsense.com/sdk-2/)からRealSense SDK 2.0をインストールしてください。(なくてもOK)
Python: Pythonがインストールされていることを確認してください。
pyrealsense2: Python用RealSenseライブラリをインストールしてください。
“`
pip install pyrealsense2
“`
## 1: ライブラリのインポート
“`pyhon
import pyrealsense2 as rs
import n

元記事を表示

プロジェクトごとのPython仮想環境を構築する(Windows, Mac)

プロジェクトごとのバージョンとパッケージの切り替えはvenvを使います。

## Windows
1. インストーラーを使って希望のバージョンをインストールする
https://pythonlinks.python.jp/ja/index.html
何が入っているかわからない場合は、「プログラムの追加と削除」を見たらわかります。
Windowsストアからもインストールできますが、ややこしいのであったら消しましょう。

パスが通っている場合は `where python` で確認ができます。
※PowerShellの場合は `where.exe python`

2. Windowsはpythonランチャーでバージョン切替可能
“`bash
#デフォルト
py -V
#バージョン指定
py -3.10 -V
#pyのpip
py -m pip -V
“`

3. venvで仮想環境を作る

プロジェクトフォルダを作りその中で仮想環境作成
“`bash
# バージョン指定なし
py -m venv .venv
# バージョン指定する場合
py -3.10 -m venv .ve

元記事を表示

画像認識の処理の手順

画像認識は、コンピュータが画像や動画内の物体、パターン、特徴を、識別する事を言います。本記事では、画像認識の処理の手順に関して取り扱っていきます。

## 1: 画像の取得
目的: 画像の取得。
方法: WEBカメラ、デプスカメラ、画像、動画を取得して入力として使用。

## 2: 画像の前処理
目的: 画像を分析しやすくするために、ノイズを減らし、画像を標準化する。
手法: グレースケール変換、ヒストグラム均一化、ノイズリダクション、エッジ検出、リサイズ。

## 3: 特徴抽出
目的: 画像から識別可能な特徴を抽出する。
手法: エッジ検出、テクスチャ分析、形状抽出、カラー分析、SIFT(Scale-Invariant Feature Transform)、HOG(Histogram of Oriented Gradients)など。

## 4: 特徴選択/削減
目的: 分析のために最も有用な特徴を選択し、次元の呪いを避ける。
手法: 主成分分析(PCA)、線形判別分析(LDA)、オートエンコーダなど。

## 5: 分類/認識
目的: 抽出された特徴を使用して、画像内のオブジェ

元記事を表示

Pythonのクラス

# Pythonのクラスについて学習
Javaとの同じ点や異なる点を整理しながら、Pythonのクラスについて学習する。

## クラス定義

~~~py
class クラス名:
~~~
Javaとは異なり、publicとかの修飾子がクラスにはない。

## 属性
~~~py
class クラス名:
属性名 = 値
~~~
Javaではインスタンス変数(非static変数)定義だが、Pythonではクラス変数(static変数)定義になる。

## メソッド
以下の3種類ある。
– インスタンスメソッド
インスタンス化されて実行できるメソッド
– クラスメソッド
`@classmethod`デコレーターをメソッドに使う。Javaにはないメソッド。
インスタンス化しなくても使えるという点は静的メソッドと同じ。
コンストラクタメソッドと同じようにインスタンス化したクラスを返却してくれるので、datetime.now()のような呼び出し側のコーディングで、目的や状態を分かりやすくするメリットがある。
– 静的メソッド
`@staticmethod`デコレ

元記事を表示

ROIとは

ROI(Region of Interest)は「関心領域」と訳され、画像処理、画像認識、機械学習などで用いられる用語です。具体的には、画像または動画の中で特に注目して、処理や分析を行いたい部分を指します。ひと昔前では、このROIを手動で設定していましたが、現在は、色検出や差分などを用いてROIを設定する事が主流です。

## ROIの使用例:
物体検出: 画像内の特定の物体や特徴を識別する際、その物体が存在する領域をROIとして特定し、分析の対象とします。

画像処理: 特定の操作やフィルタリングを画像の特定部分にのみ適用する場合、その部分をROIとして定義します。

追跡: ビデオ内の特定の物体を追跡する際、フレームごとの物体の位置を表す領域がROIとなります。

特徴抽出: 機械学習やパターン認識で、特定の特徴を抽出するためにROIを用いて、画像の特定の部分に焦点を当てます。

## ROIの選択方法:
手動: ユーザーが直接、画像上で関心領域を選択します。

自動: アルゴリズムが特定の基準(例:色検出、差分、エッジ検出)に基づいてROIを決定します。

事前定義済み: 特定の

元記事を表示

qrcodeライブラリで簡単QRコード作成術

QRコードを生成するためには、Pythonのqrcodeというライブラリを使用することで生成ができます。本記事では、QRコードを生成し、それを画像として保存する方法を解説します。

↓実際に生成したQRコード
![qr_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632959/2cc79cb6-16b3-b260-3524-1cc42f8b8bd2.png)

必要なもの
Python: プログラミング言語として使用。
qrcode: QRコードを生成するためのライブラリ。

## 1: qrcodeライブラリのインストール
まず、必要なライブラリをインストールする必要があります。コマンドラインまたはターミナルで以下のコマンドを実行してください。

“`
pip install qrcode[pil]
“`

## 2: QRコードの生成
以下のコードは、data変数に入力したデータのQRコードを生成し、それを画像ファイルとして保存します。
“`
import qrcode

# 生成

元記事を表示

Docker is all you need.

# Docker is all you need.
Dockerを利用してVSCodeでPythonのVersionを管理する方法を解説します。
多分これが一番バージョン管理しやすいと思います。
10分でできます。多分。Node.jsやNGINXとかの環境構築にも使えます。
# Dockerをインストールする
Docker公式サイト

# VSCodeでDev Containersをインストールする
![スクリーンショット 2023-12-30 16.59.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3311006/f706f33b-6e3d-6fad-645d-ca056cfb0972.png)

# コマンドパレットを開く
Winなら“`Ctrl+Shift+P“`, Macなら“`Cmd+Shift+P“`ですかね。
コマンドパレットを開いたらまずは“`Dev Containers“`と打ち

元記事を表示

ACL Practice Contestをac-library-pythonで解いてみたよ。(G~L問題)

# はじめに
2023年8月にあった大幅なAtCoderの言語アップデートで、PythonにもACLとよばれる競プロライブラリが追加されました。

https://github.com/not522/ac-library-python/

この記事では、そのライブラリの使い方を [ACL Practice Contest](https://atcoder.jp/contests/practice2) の問題を通して見ていきます。

この記事ではG問題以降を見ていきます。A~F問題については下の記事を見てください。

https://qiita.com/hyouchun/items/4958618268407a5442cc

:::note info
ac-library-pythonの具体的な使い方が分かります。
:::
:::note warn
内部の詳細な実装は、上のGitHubを参考にしてください。
核となる問題の解き方は、ユーザー解説などを参考にしてください。
:::

# G – SCC

## 問題

https://atcoder.jp/contests/practice

元記事を表示

OTHERカテゴリの最新記事