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

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

#22 ネストのあるjsonから文字列を抽出して置換したい

## はじめに
とあるjsonに含まれる文字列をまとめて置換したい!ということで、正規表現を用いて文字列を置換する処理について、前後半にわけて備忘録としてまとめていきたいと思います。
今回はその後半として、実際にPythonを使ってjsonの文字列を抽出・置換し、内容を反映させたtxtファイルを作成します。

前回の記事のリンクを下に記載しております。興味のある方はぜひそちらもご覧いただければと思います。
前回記事:https://qiita.com/nxted_sapporo/items/b35602592b2508fafe6c

## sample.jsonの確認
今回使用するjsonです。
“`sample.json
{
“data”: {
“id”: {
“num”: “1”
},
“group”: {
“name”: “ことわざ”,
“folder”: {
“nodes”: [
{

元記事を表示

自動運転AIチャレンジ2024 コース内判定&壁までの距離計算

# はじめに
[自動運転AIチャレンジ2024](https://automotiveaichallenge.github.io/aichallenge-documentation-2024/)の予選も残すところ1ヶ月を切りました。私はチームTLABのメンバーとして参加しており、上位に食い込むべくトライアンドエラーを繰り返しています。さて、今大会で良い結果を残すためには、コース内にランダムに現れる仮想障害物をいかに避けるかが鍵になりそうです。私も障害物回避の実装に取り組んでいますが、回避させたいあまり壁に接触してしまうなど、一筋縄ではいかないと感じています。そんなわけで、生成した経路がコース内に収まっているのか、壁までどのくらい余裕があるのかを判定したいと思い、実装に取り組んでみました。

# 結果
コース内判定と距離計算の結果を可視化したものが以下です。コース内が、壁に近いほど濃く、遠いほど薄く描画されています。
![result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3638275/6706

元記事を表示

Pythonで保育園の入所状況をWEBスクレイピング、テーブルの情報を取得する

保育園の入所状況を取得できるアプリを作りたくてスクレイピングで作ってみました。

“`
import pandas as pd

# 取得先URL
url = ‘https://www.city.ebetsu.hokkaido.jp/site/kosodate/72891.html’

# 合致するワードが入ったテーブルを取得
df_list = pd.read_html(url, match=’【公立】やよい’)

print(df_list[0])

“`

実行結果
“`
Unnamed: 0 0歳 1歳 2歳 3歳 4歳 5歳
0 【公立】やよい ☓ ☓ ☓ ☓ △ ☓
1 【公立】よつば ☓ ☓ ☓ ☓ ☓ ☓
2 あかしや ☓ ☓ ☓ ☓ ☓ ☓
3 江別桃の花 ☓ ☓ ☓ ☓ ☓ ☓
4 memorytree西野幌 ☓ ☓ ☓ ☓ 〇 △
5 夢ふうせん

元記事を表示

Pythonによるソケット通信

クライアント側、サーバ側の両方は基本的にsocketを設立して以下のシーケンスのように通信を行う。
“`plantuml
@startuml

participant Client
participant Server

Server -> Server : listen
Client -> Server : connect
Server -> Server : accept
Server -> Client : send”Hello,World”

@enduml
“`

## サーバ側
以下のように実装を書いた。
“`python
import socket
import time

host = ‘127.0.0.1’
port = 65000
buff = 1024

# ソケットを設立する
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind((host, por

元記事を表示

相互相関の分析方法

# 相互相関
とは、2つの時系列データの類似度の指標である。
相互相関解析では、遅れ (ラグ) と相互相関係数 (CCF) の2つの統計量が得られる。
相互相関係数の大きさは類似度を示す。
### 全体の目的
自己理解でExcelによってコレログラムを作成していたが、分析手法が正しいか不安。
統計ソフトウェアMinitab Statistical Softwareから得られた結果をExcel、Pythonで再現する。

### 使用データ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657535/03576a36-3131-8bf6-7ede-b0e4310fa12f.png)
2つの時系列データC1, C2を手作りした。1日の環境変化量をイメージ。

## Minitab
### 目的
・正しい相互相関係数 (CCF) を得る
### 手法
データを入力し、統計>時系列分析>相互相関と選択する。
ラグの範囲はデフォルトを使用した。
### 結果
#### コレログラム
![image

元記事を表示

【Python】交通流シミュレータUXsimのチュートリアル日本語版

# UXsimチュートリアル

「Pythonユーザーが手軽に使えるシンプルな交通シミュレータ」がコンセプトの自作シミュレータUXsim([GitHubレポ](https://github.com/toruseo/UXsim))のチュートリアルの日本語版です.GitHubレポに[Jupyter Notebook版](https://github.com/toruseo/UXsim/blob/main/demos_and_examples/demo_notebook_01jp.ipynb)がありますが,アクセス性のよいこちらにも抜粋して掲載します.直接実行したい方はNotebookをダウンロードしてください.

シミュレータの概要を知りたい方は[Qiitaの別記事](https://qiita.com/toruseo/items/c40ec8db868ac95867f6)をご覧ください.

# チュートリアル和訳

これはUXsimを使った交通シミュレーションとその結果分析の簡単なチュートリアルです.

## 簡単なシナリオの例

最初にモジュールをインポートします.

“`pyth

元記事を表示

[RAG構築]sklearnを使ってAIに投げかけた質問を分類してPDFから回答を生成するのかAPIから回答を生成するのかを学習させる

下記のコードは、AIに投げられた質問がPDF(決算短信)によるものなのかAPI(yfinance)によるものなのかをsklearnを使って学習させ適切な参照元から回答を生成するものです。
PDFから参照すべき質問には決算短信から財務情報が回答されます。APIから参照すべき質問にはAPIから株価グラフが回答として出力されます。

## 機械学習モデルによる分類
機械学習モデルとして、TfidfVectorizer と MultinomialNB(ナイーブベイズ分類器)を使用しています。以下の部分でモデルを学習させています。
questions というサンプル質問リストと、それに対応する labels(カテゴリラベル)を使ってモデルを訓練しています。
“`
questions = [
“AAPLの決算情報を教えてください”,
“AAPLの最新の株価は?”,
“MSFTのQ3 2024のレポートを見せてください”,
“GOOGLの株価動向を教えてください”
]
labels = [“PDF”, “yfinance”, “PDF”, “yfinance”]

元記事を表示

初めてのmaturin

RustをPythonから呼び出せるライブラリ、maturinの使用方法をまとめます。
なおRust側からPythonを使うこともできるらしいですが、筆者もわかっていないので割愛します。

## 事前準備
### 1. 必要なもののインストール
Python, Rust, maturinが必要です。
Pythonは公式ページからインストールしておいてください。
Rustとmaturinは以下のコマンドをそれぞれ入力すればインストールできます。
“`
curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs | sh
pip3 install maturin
“`
### 2. プロジェクト作成
maturinプロジェクトを新たに作成します。
“`
maturin new -b pyo3 ./my_project
“`

:::note info
-bはmaturinが内部的に使うシステムを指定します。今回は最も人気なpyo3を使います。
:::

これで準備完了です
ディレクトリはこんな形になってい

元記事を表示

Pythonでシンプルなパスワードジェネレータを作成する

# Pythonでシンプルなパスワードジェネレータを作成する

こんにちは!今回はPythonを使って、簡単にパスワードを生成するプログラムを作成してみましょう。

## 目的

セキュリティを強化するためには、強力なパスワードを使用することが重要です。このプログラムでは、ランダムな文字、数字、特殊文字を組み合わせたパスワードを簡単に生成できます。

## 必要なライブラリ

Pythonの標準ライブラリである`random`と`string`を使用しますので、特別なインストールは必要ありません。

## コードの説明

以下がパスワードジェネレータのコードです。

“`python
import random
import string

def generate_password(length=12):
# パスワードに使用する文字のセットを定義
characters = string.ascii_letters + string.digits + string.punctuation

# 指定された長さのランダムなパスワードを生成
pa

元記事を表示

NumpyのFFT入門(4) :NumPyを用いた音声信号解析

# NumPyを用いた音声信号解析: FFTによる周波数分析

音声信号解析は、オーディオ処理や音声認識の分野で重要な役割を果たします。この解説では、`NumPy`ライブラリを使用して、音声信号の周波数成分を解析する方法を紹介します。具体的には、音声データに対してフーリエ変換(FFT: Fast Fourier Transform)を適用し、信号の周波数特性を視覚化します。

## 1. FFTによる周波数分析

### コード例

**音源ソース**

“`python
import numpy as np
import matplotlib.pyplot as plt
import scipy.io.wavfile as wavfile

# WAVファイルの読み込み
rate, data = wavfile.read(“./sound/carenginestart1.wav”)

# ステレオ音声の場合は、片方のチャネルを選択
if data.ndim >

元記事を表示

基礎数学の理解

#### まえがき
データ分析において、数学的な基礎を理解することは非常に重要です。この記事では、微分と積分、線形代数の基本概念とその実生活や実務での応用について学びます。

#### 微分と積分

**定義と実生活への応用**
– **微分**:変化の速度を測る手法。例えば、車の速度は距離の微分です。
– **積分**:累積量を求める手法。例えば、車の走行距離は速度の積分です。

**具体例**
例えば、車が走行しているときの速度(m/s)が次のようなデータがあったとします。

| 時間 (s) | 速度 (m/s) |
|———-|————|
| 0 | 0 |
| 1 | 2 |
| 2 | 4 |
| 3 | 6 |
| 4 | 8 |
| 5 | 10 |

このデータを用いて速度の変化(微分)と累積走行距離(積分)を計算します。

**コード例**

“`p

元記事を表示

データの標準化と正規化

#### まえがき
データ分析の前処理は、データの質を高め、正確な分析結果を得るために不可欠です。この記事では、データの標準化と正規化について学び、これらの手法がどのようにデータ分析に役立つかを具体的な例と共に説明します。

#### 標準化

**定義**
標準化は、データの平均を0、標準偏差を1に変換する手法です。これにより、異なるスケールのデータを同じ基準で比較できます。

**具体例**
例えば、テストの点数が次のようなデータがあったとします。

| 学生 | 点数 |
|——|——|
| A | 80 |
| B | 90 |
| C | 70 |
| D | 85 |
| E | 75 |

このデータを標準化すると、各点数が平均からどれだけ離れているかが分かりやすくなります。

**コード例**

“`python
import pandas as pd
from sklearn.preprocessing import StandardScaler

# データフレームの作成
data = pd.Dat

元記事を表示

PythonとSeleniumを使って天気予報をSlack通知するアプリの作成方法

## はじめに
天気予報を定期的に取得し、自動でSlackに通知するアプリをPythonとSeleniumで作成する方法を解説します。

この記事では、天気予報の取得、Slack通知の設定、そして全体の自動化プロセスを紹介します。

## 1. 必要なライブラリのインストール
以下のライブラリを使用します。

* selenium: Webブラウザの操作を自動化するため。
* slack_sdk: Slackへのメッセージ送信のため。
* webdriver_manager: Selenium WebDriverの管理のため。

ライブラリは以下のコマンドでインストールできます。

“`bash
pip install selenium slack_sdk webdriver_manager
“`

## 2. WebDriverの設定
Seleniumを使用するには、ブラウザドライバが必要です。ここでは、Chromeドライバを使用します。

WebDriverのセットアップ
“`python
from selenium import webdriver
from seleniu

元記事を表示

ファインチューニングをするときに EOS token は入れた方がいいのか?

# ファインチューニングをするときに EOS token は入れた方がいいのか?

“`python
tokenizer.eos_token
“`

## はじめに

はじめまして。現在、私は大学院生(修士課程)です。

この記事では、言語モデルをファインチューニングをするときに end-of-sequence (EOS) token を入れるべきかどうかを考えたいと思います。
タスクやモデルによって、性能(精度)に EOS token を入れるとどうなるかは一概ではないと思っています。そのため、この問題に正解があるとは思っていません。あくまで @Natu_ja はこんな風に考えているんだな程度に見ていただきたいです。また、皆さんの意見も聞いてみたいので、よろしければ[コメント](https://qiita.com/Natu_ja/items/a65cc9110e6925db0d0e#comments)を残していただけると嬉しいです。

この記事が、自然言語処理を勉強・研究する人の参考になれば幸いです。

## EOS token とは

文の終わりを表現する特殊トークンです。

元記事を表示

【Python,時系列データ分析】ビットコインの買い時/売り時を計算してみた

# 1.概要
投資の方法で毎日/毎月の間隔で少額ずつ購入するドルコスト平均法があると思います。しかし、購入するだけでなく、たまに売却する日を混ぜれば、最終的な利益が少しだけ増えるのではないかと思いました。そして、今日は買うor売るのどちらかを計算するスクリプトをPythonで書いてみました。
https://github.com/nekotokage335/btc/tree/main
# 2.前提となる環境
以下の環境でスクリプトが動作することを確認できました。
|名前|バージョン|
|:———–|————:|
|OS|Windows11|
|Python|3.11.9|
|yfinance|0.2.41|
|matplotlib|3.9.1|
# 3.スクリプト
まず、モジュールをインポートします。
“`python:モジュールインポート
import datetime
from dateutil.relativedelta import relativedelta
import yfinance as yf
import matplotlib.p

元記事を表示

Amazon Bedrock における Claude 3 Haiku の Fine-Tuning 検証レポート

## はじめに

株式会社 NTT データ デジタルサクセスコンサルティング事業部の [@ren8k](https://qiita.com/ren8k) です.
2024/7/10 に,Amazon Bedrock で [Anthropic Claude 3 Haiku の Fine-Tuning がプレビューで利用可能](https://aws.amazon.com/jp/about-aws/whats-new/2024/07/fine-tuning-anthropics-claude-3-haiku-bedrock-preview/)になりました.本稿では,Claude3 Haiku の Fine-Tuning の利用手順および,Fine-Tuning したモデルの評価結果を共有いたします.

なお,本検証で利用したコードは以下のリポジトリで公開しています.是非ご覧下さい.

https://github.com/ren8k/aws-bedrock-claude3-fine-tuning

## LLM を Fine-Tuning するメリット

Fine-Tuning により,

元記事を表示

RAG入門: 精度改善のための手法28選

RAGの精度改善するために何があるかを学びました。基本系のNaive RAGを知っている人向けの記事です。
方法が多すぎるので、[Youtubeの「RAG From Scratch」](https://www.youtube.com/playlist?list=PLfaIDFEXuae2LXbO1_PKyVJiQ23ZztA0x)を中心に少し整理してみました。LangChainをよく使っているので、LangChain出典が多いです。

# 全体像
まずは、RAGの全体像。Indexingが同じ流れにあるのが少しわかりにくいのですが、実行タイミングとしてはRAGの前準備としてやっておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134273/a57aa9ba-ae76-cdab-a13b-41ef8c55a920.png)
画像出典: [RAG from scratch: Overview](https://docs.google.com/presentation/d/1C9I

元記事を表示

速いぞ 160万倍。100万倍の速度で動く世界。 Pythonコード を 100万倍 高速化するエンジニアリング。(1598438倍)

![d22a0b75-70cd-4272-8f8e-82206a6d614c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846020/d24c48b8-495a-4476-2ce6-4d655026b5ea.png)

#### ショートストーリー: 「百万倍の速度で」
東京の夜、プログラマーの雄大はオフィスビルの高層階にある自分のデスクに座り、深夜の街並みを眺めていた。彼の目の前には、クライアントから依頼された新しい金融取引アルゴリズムのプロジェクトが並んでいた。Pythonで書かれたそのコードは、過去の取引データをバブルソートアルゴリズムで分析し、市場の動向を予測するものだった。しかし、その実行速度は十分とは言えず、リアルタイムの取引には向いていなかった。

「このままじゃ、クライアントの要求に応えられない…」雄大は頭を抱えた。取引のタイミングは一秒を争う世界で、遅延は致命的だ。Pythonのシンプルさと柔軟性を活かしつつ、どうすれば実行速度を飛躍的に上げることができるのか。

その時、雄

元記事を表示

Engine Simulatorの作法 その28

# 概要
Engine Simulatorの作法を調べてみた。
githubでエンジンジェネレータ見つけた。
練習問題やってみた。

# 練習問題
90度V型2気筒エンジンを作れ。

# 写真

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/e834a3be-5101-ff2f-6748-b25f99a70eae.png)

# サンプルコード

“`
def generate_v2():
cylinders0 = []
cylinders1 = []
cylinders = []
for i in range(1):
cylinders0.append(i * 2)
cylinders1.append(i * 2 + 1)
cylinders += [i * 2, i * 2 + 1]
b0 = Bank(cylinders0, -45)
b1 = Bank(cylinders1, 45)
engine = Engine([b0, b1], cy

元記事を表示

【kaggle】飛行機乗客数のARIMA/SARIMAモデルによる時系列解析

# 今回チャレンジしたKaggle

10年間の飛行機乗客数から将来の乗客数を予測する問題です、

https://www.kaggle.com/datasets/rakannimer/air-passengers

# 実際のコード

今回コードが長くなってしまったため、直接Kaggleサイトを見ていただけますと幸いです。

https://www.kaggle.com/code/emma41114/air-passenger-arima-sarima

以下の予測が立てられました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3780099/4b3d7b27-e237-c152-2ee8-2a445296afea.png)

# 背景

今回は時系列解析の問題に取り組みたいと考え、こちらのKaggleを選びました。

ARIMA,SARIMAモデルの理論はなんとなく学んでいたのですが、
実装するのは初めてでしたので、可視化やパラメータの設定、ARIMAとSARIMAの違い

元記事を表示

OTHERカテゴリの最新記事