Python関連のことを調べてみた2023年11月03日

Python関連のことを調べてみた2023年11月03日

【Geopandas】国土交通省の鉄道データを解析する

# はじめに
友人たちとの新宿集まりが千葉県民には遠い…
そこで、鉄道データの解析に着手しました。国土地理院のオープンデータを活用し、全員の最寄駅から等距離の駅を探すために、GeoPandasの学習を進めています。

現在、中間駅の最適な算出方法はまだ見つかっていませんが、しばらく時間が取れなくなりそうなので一旦途中経過を共有させていただきます。

また、紹介するコードは以下のサイトを参考にさせていただきました。

https://qiita.com/c60evaporator/items/ac6a6d66a20520f129e6#%E5%87%A6%E7%90%861%E5%BA%A7%E6%A8%99%E5%A4%89%E6%8F%9B

# 本記事からわかること
– gisデータの簡単な扱い方がわかる
– 駅と路線を日本地図上に描画することができる。

# 環境
– google colab

今回使ったデータ

https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N02-v3_1.html

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

元記事を表示

SIGNATE-STUDENT-CUP2023-Review

# 問題概要
SIGNATE主催の学生限定コンペ
内容はテーブルデータから中古車価格を予測するというもの。

# I/O
訓練:27532
テスト:27537
評価指標:MAPE

| Index | Column | note |
|——-|—————|———————|
| 0 | region | 車を販売する地域 |
| 1 | year | 車の製造年 |
| 2 | manufacturer | メーカー名 |
| 3 | condition | 車の状態 |
| 4 | cylinders | シリンダー数 |
| 5 | fuel | 燃料タイプ |
| 6 | odometer | 走行距離 |
| 7 | title_status | タイトルの状態 |
| 8

元記事を表示

Seleniumを使ってGoogle検索:キーワードを入力から結果の表示まで。

Seleniumを使ってキーワード検索をする方法。
ここではMicrosoftのEdgeを使っています。

流れとしては、キーワードを入力するとGoogleからそのキーワードに沿った検索結果が返ってくるということろまでです。

今回は完全なコピペでOKです。

## コード

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager
import time

def main(input_data):
# EdgeのWebDriverを自動でインストールし、起動
servic

元記事を表示

【Where is 需要】Pythonで作業用音楽耐久アプリ開発 前編

# 目的
僕は、作業をしている時、音楽を耐久でかけるのですが、音楽プレイヤーがどうも使いにくい。耐久は主に1曲しかできず、何曲も聞きたい私はプレイリストを作成するが、それだと耐久ができない。いちいち音楽プレイヤーのウィンドウを開いて曲を変えるのも面倒。
**何曲も再生できる上に耐久時間を設定することができるという夢のアプリが欲しい**。そんな貪欲な欲望を満たすためにアプリを開発します。(多分ネットに転がっているけどせっかくなら自分で作る。)

# 必要なもの
・pythonの実行環境
・tkinterの基礎知識
・**絶対に作るというやる気とバグに負けない根気**

# ソースコード
今回使うライブラリはos、tkinter、pygameです。頑張れば100行に収まりそうだけど、長くなっちゃいました。**うんこーど**です。
“`python:誰得
import os
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
import pygame
# 初期化
pygame.init()

元記事を表示

PythonでNelder-Meadアルゴリズムを用いたRosenbrock関数の最適化とそのgifアニメ化の方法

# はじめに

Python を用いた Rosenbrock 関数の最適化をNelder-Meadアルゴリズムで行い、その過程をアニメーションで可視化する方法を紹介します。

Rosenbrock関数は、最適化アルゴリズムのベンチマークとしてよく使われる関数の一つです。今回はこの関数の最適化を行い、そのプロセスをアニメーションで可視化して、Nelder-Meadアルゴリズムの理解を深めてみましょう。

[Google Colab](https://colab.research.google.com/drive/1yYd9KuEfd4rsB50iQqRHrQzOdS5YQ5ap#scrollTo=zr4w7pDfRFdB) にもコードを載せています。

## コードの流れ

アルゴリズムの流れについて説明します。

1. まず、Rosenbrock関数を定義しています。
2. 次に、Rosenbrock関数の可視化用のグリッドデータを作成しています。
3. コールバック関数を使用して、最適化の各ステップでの点を記録しています。
4. minimize関数を使用して、Nelder-Mead

元記事を表示

スプレッドシートでの自動でワークシート選択

# はじめに
Pythonの備忘録です。

# 内容
スプレッドシートのワークシートを値として、それぞれにKey設定することで選択ができる。またKeyを設定して、それに対してのセルを選択するようにする。

“`python:main.py
import datetime
import calendar
import gspread
from oauth2client.service_account import ServiceAccountCredentials

scopes = [‘https://www.googleapis.com/auth/spreadsheets’, ‘https://www.googleapis.com/auth/drive’]
service_account_file = ‘〇〇〇〇.json’

credentials = ServiceAccountCredentials.from_json_keyfile_name(service_account_file, scopes)

gs = gspread.authorize(credentials

元記事を表示

【Where is 需要】pythonで音声ファイルを逆再生

# はじめに
こんにちは。赤ジャージです。僕は最近、tkinterとpygameで耐久時間を曲ごとに設定してそのプレイリストを作ったりするメディアプレイヤーアプリを個人的に開発しました(誰得)。完成したアプリを友人Kに見せたら、**「これだとOSについているメディアプレーヤーと何ら変わりない。変な機能を追加するべきだ。例えば逆再生とか。」** と言及されて、**張り倒してやろうか**と思いましたが確かにそうなので、pythonで曲を逆再生する機能を探すと、ありました。

### python、微妙に使いづらい
pythonって色んなライブラリとかありますけどどれも完結してなくて長所と短所があるんですね…例えばpygameだとボタンの概念がないとかtkinterだと音声を再生できないとか…今回使うffmpegもその類です。強力だけど完全じゃない。

# 前提
・python、pygameの基礎知識がある
・お使いのPCは正常で、**osはWindows11(ここ重要)**
・pythonのバージョンは3.7.2(老害)

# 準備
☟とりあえずここにテレポ
https://www

元記事を表示

discord.Botはpycordのバージョン2.0.0でしか使えません

# 概要
pycordのver.2.00以外のバージョンで`discord.Bot()`を使うと、以下のエラーが発生する
“`
AttributeError: module ‘discord’ has no attribute ‘Bot’
“`
[解決策]
以下のコマンドでpycordのバージョンを下げる
“`
pip install py-cord==2.0.0rc1
“`

# 参考文献
https://stackoverflow.com/questions/74749387/module-discord-has-no-attribute-bot-in-pycord-version-2-3-2

元記事を表示

ほぼ初めてのSNSで気づいたらBot作ってた

### まず初めに
六角レンチです
誰やねんって話ですが趣味レベルでプログラミングしてる人です
Qiitaよく見るので自分も書いてみたいなぁと思って作ってみます
中身は黙示録みたいなものです
初めてなのでかなり拙いと思います
## (ほぼ)初めてのSNS
自分はTwitterもといXをやっていましたがずっとROMってたので(4年くらい)SNSというのが情報を集める場所という認識でいました。

それであのマスクが名前をXに変えたあたりからスパムが多すぎて他のSNSに移りたいと思い色々調べてMisskey ioにたどり着きました(7月初めくらい)

それでどうせ新しいSNSに行くんだから発言もしてみようかなと思って発言したらレターパックで現金送れとかオフチョベットしたテフをマフガットしてリットにする様子とか送られてほ~~~んってなって気づいたら六角レンチになりました(どうして)
## pythonを使って334に勝ちたい
まぁそんなことは置いといてMisskey ioをやったことがあるなら知ってると思いますがioには`334`という競技があります

3時34分に一斉に334をノートして(ノ

元記事を表示

Streamlitの並列処理の多重度について調べてみたよ⛰️

こんにちは。機械学習系のデモや、最近だとChatGPTなどLLMのチャットクライアントを作るのに人気のStreamlitについて、一度にどれくらいの人がアクセスできるのか調べてみました。

https://streamlit.io

結論としては100人規模くらいまでだと問題なく使えるようです(本記事では200多重を問題なくクリア)。バックエンドの処理にかかるリソースの方を気にした方が良さそうでしょう。
それでは、具体的に何をどう調べたのか記事でご紹介していきます。

# 調べたきっかけ?

VSSLiteという、ChatGPTによるRAGという手法を使ったQ&Aシステムを簡単に構築するライブラリーをOSSとして公開しているのですが、このChatUIとしてStreamlitを採用しています。もともとゴリゴリの本番用途を想定していないものの、何人くらいまでなら同時に使えるのか気になったので確かめてみたというものです。

そこでStreamlitのコミュニティーでのやりとりを見ると、以下のような記述がありました。

> when a user connects to Streamlit,

元記事を表示

LangChain AgentでReAct型の思考を実現する

# 0. はじめに
今回はLangChain Agentとその基本的な動作について解説します。LangChainのAgentはReAct型の思考を実装したものになるため、まずはReActの説明からはじめ、そのあとで実際のコードもみていきたいと思います!

![DALL·E 2023-11-02 23.37.08 – Illustration depicting the concept of ReAct in large language models (LLMs). The image shows a human-like robot with gears and circuits in its head, s.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3565029/12e0b4ce-f9ff-b4ce-632c-934845a9dc99.png)
ReActのイメージ図(DALL-E3作)

# 1. ReActとは?

ReActの説明の前に、人間の思考プロセスについて少し考えてみます。

元記事を表示

【Python利用者必見】プロジェクトごとに仮想環境を構築しよう

# はじめに
みなさん**仮想環境**を活用していますか?
仮想環境という言葉が嫌いな方多いのではないでしょうか。理解さえすれば非常に簡単で便利な概念なので、習得していきましょう!

対象読者
+ python初学者
+ 仮想環境ってなに?
+ anacondaが壊れた!
+ pythonに適当にモジュールをインストールしている

上記のような経験をした人は、是非ご一読ください!
仮想環境の偉大さをお伝えいたします?

以下でデータサイエンス関連の学習支援・情報共有も行なっているので、良かったらフォローしてみてください!

# 仮想環境とは
仮想環境とは、**pythonの本来の環境とは別の環境を構築すること**です。
下記の図にありますように、仮想環境を構築することで、pythonのversionやインストールするモジュールごとにpython環境を管理できます。
ChatGPTとPythonで学ぶ k-means クラスタリング

皆さんこんにちは。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ k-means クラスタリング」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

もちろんです!こんにちは!k-meansクラスタリングについて一緒に学びましょう。

k-meansは教師なし学習の一例で、データセットをk個のクラスタに分けるアルゴリズムです。以下に大まかな手順を示します:

1. 最初に、k個のクラスタ中心(セントロイド)をランダムに選びます。
2. それぞれのデータポイントに対し、一番近いセントロイドのクラスタに割り当てます。
3. 割り当てられたデータポイントの平均値を計算し、それが新しいセントロイドになります。
4. 2と3をセントロイドが変化しなくなるまで繰り返します。

これによって、同じクラスタ内のデータポイントは互いに近く、異なるクラスタのデータポイントは離れた状態に分けることができます。

それではPythonでk-meansを実装してみましょう。
まずは必要

元記事を表示

【AWS】用語を整理しながら学ぶAWS AWS SDK for Python (Boto3)

## はじめに

この記事では AWSが提供する`AWS SDK for Python (Boto3)`(以下、Boto3)を学習していく記事です。主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば書き直していく予定です。

## AWS SDKとは

AWSが提供するAWSでリソースを操作し、構築に利用するツールです。
AWSの公式サイトには下記のように表現されています。

> AWS での構築ツール
> AWS でアプリケーションを開発および管理するためのツール
> 選択したプログラミング言語を使用して、AWS でアプリケーションを簡単に開発する
> Python 固有の API と有益なライブラリを使って、アプリケーションを開発する

[参考](https://aws.amazon.com/jp/developer/tools/)

サービスではなく、ツールの一つです。そもそもSDKとはなんでしょうか。

### 補足:SDKとは(SDKの定義)

SDKとは何だったかここではCircleCIさんのサイトから引用して見ていきましょう。

元記事を表示

LangChain TemplatesでLangChainのRAGアプリを10分で作る

LangChainに、典型的なタイプのLangChainアプリを簡単に作れる[テンプレート機能](https://github.com/langchain-ai/langchain/blob/master/templates/README.md)が追加されたので試しに使ってみました。

この記事では10分ほどで[ChromaDB](https://www.trychroma.com)を使ったRAG(Retrieval Augmented Generation)を実現するアプリを作って起動してみます。

[LANGCHAIN BLOG – LangChain Templates – OCT 31, 2023](https://blog.langchain.dev/langserve-hub/)

## インストール

pipenvのプロジェクトを作成してlangchain cliをインストール

“`
pipenv install “langchain-cli[serve]”
“`

pipenvを使ってますが、poetryなど各自好きなものに読み替えてください。

## プロジェク

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その24 勝敗判定のテストの手法

# 目次と前回の記事

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

https://qiita.com/ysgeso/items/1fdd19037bbf64082a42

# 実装の進捗状況と前回までのおさらい

## 〇×ゲームの仕様と進捗状況

1. `正方形で区切られた 3 x 3 の 2 次元のゲーム盤上でゲームを行う`
2. `ゲーム開始時には、ゲーム盤のすべてのマスは空になっている`
3. `2 人のプレイヤーが遊ぶゲームであり、一人は 〇 を、もう一人は × のマークを受け持つ`
4. `__2 人のプレイヤーは、交互に空いている好きなマスに自分のマークを 1 つ置く__`
5. `先手は 〇 のプレイヤーである`
6. __プレイヤーがマークを置いた結果、縦、横、斜めのいずれかの一直線の 3 マスに同じマークが並んだ場合、そのマークのプレイヤーの勝利とし、ゲームが終了する__
7. __すべてのマスが埋まった時にゲームの決着がついていない場合は引き分けとする__

仕様の進捗状況は、以下のように表記します。

元記事を表示

Pythonでの0割り警告を回避するためのNumPy np.divide()関数の活用法

## はじめに
Pythonでの0割りの警告を回避するために、様々な方法が存在します。例えば、下記の記事が参考になります。

https://qiita.com/isuya/items/8a7297cf6e034d1e8fec

本記事では、numpyの[`divide()`](https://numpy.org/doc/stable/reference/generated/numpy.divide.html)関数を使った回避方法を紹介します。

## 方法
本記事の実装環境は、以下の通りです。

– Python 3.8.1
– numpy 1.23.5

本記事の実装コードはGoogle Colab[こちら](https://colab.research.google.com/drive/1ty_a9hbzmUT15bOgKxb9CSCD-xd8ee4R?usp=sharing)から確認できます。

結論として、`np.divide()`の`where`引数を指定することで、0割りエラーを出さずに表示できます。以下はサンプルコードです。

### NumPy配列での方法
NumPy

元記事を表示

AtCoder初心者 DailyTrainingメモ④

# 参考URL
pythonでの順列全探索
https://qiita.com/wihan23/items/107dfff1ecada60845b1

# ABC225 A-問題
https://atcoder.jp/contests/adt_easy_20231102_1/tasks/abc225_a

問題文
英小文字のみからなる長さ3の文字列Sが与えられます。
Sの各文字を並び替えて得られる文字列は、何種類ありますか?

**ポイント**
・順列全探索は、itertools を使う
・set で重複を削除する

##### 順列全探索
““Python:225A.py
# 順列全探索は、「itertools」をインポートする
import itertools

# 入力
S = str(input())

# 順列全探索結果をset に格納して重複を削除
ST = set(itertools.permutations(S))

# set の要素数が答え
print(len(ST))
““
##### シンプルな場合分けの解答
““Python:225A_2.py
#

元記事を表示

言語処理100本ノック2020 (55~59)

# はじめに
本記事は言語処理100本ノックの解説です。
100本のノックを全てこなした記録をQiitaに残します。
使用言語はPythonです。

https://nlp100.github.io/ja/

今回は第6章: 機械学習(55~59)までの解答例をご紹介します。
6章前半(50~54)の解答例はこちらです。

https://qiita.com/Dukapan100knock/items/77ed7b5cd4eacf3e757e

# 55. 混同行列の作成
>52で学習したロジスティック回帰モデルの混同行列(confusion matrix)を,学習データおよび評価データ上で作成せよ.

“`python:コード
from sklearn.metrics import confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt

labels = [0, 1, 2, 3]
cm = confusion_matrix(Y_train, Y_pred_train, labels = lab

元記事を表示

GoFデザインパターン(覚書)

## 1. はじめに
最近、改めてGoFデザインパターンの事を調べる機会があったので、Chat-GPTに助けてもらいながらPythonコードも含む資料を作成したので、自分もいつでも見れるようにQiitaに置いておきます。

## 1.1. GoFのデザインパターン

「GoF」は「Gang of Four」の略で、4人の著者(Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)によって書かれた「Design Patterns: Elements of Reusable Object-Oriented Software」という本のことを指します。この本では、オブジェクト指向設計において再利用可能な設計の模範となる23のデザインパターンが紹介されています。

デザインパターンは、一般的な設計問題とそれに対する解決策を提供するもので、設計の品質を向上させ、コードの再利用性やメンテナンス性を高めることができます。

これらのパターンは、以下の3つのカテゴリに分類されています:

**生成に関するパターン (Creational P

元記事を表示

OTHERカテゴリの最新記事