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

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

スケルトンパズル解いてみました

## はじめに
 ボケ防止で漢字パズル誌を解いていたら、難読漢字の読みでスケルトンを埋めるというパズルが出題されていて、どうしても間違えて解けない。
なんか解き方が再帰問題だよね!ということで、30年ぶりくらいにプログラムにチャレンジしました。
## スケルトンパズルとは
 以下は本人作成の例題です。
![スケルトン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622335/96b26d35-3474-6778-94eb-e275d3195de6.png)
## プログラムの前の準備
 以下のように定義して例題に割り付ける
![割り付け.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3622335/934553f1-b715-1c19-b435-a0318fa9ad72.png)
 四角の1マスをMasuと横または縦の連続マスをRenMasuとしてクラスとし、マスには1から22まで順番にidを振る。
 連続マスは、リ

元記事を表示

ダイクストラ法を視覚化させてみた

# 1.はじめに
 今回は、ダイクストラ法の最短経路を求める過程を視覚化させてみました。
ダイクストラ法で経路を求める過程を1ステップずつ確認できるようにしました。
5,6年前にC言語で同じようなのを作った事を思い出し進めました。。。
# 2.環境
windows10
vscode
“`python:ライブラリ
networkx
matplotlib.pyplot
random
heapq
“`
# 3.コード
“`python:グラフの生成
# グラフの生成
def generate_graph(num_nodes, num_edges):
G = nx.gnm_random_graph(num_nodes, num_edges, seed=42)
for u, v in G.edges():
G[u][v][‘weight’] = random.randint(1, 10)
return G
“`
“`python:グラフ描画
def draw_graph(G, pos, path=None):
# 前のノード/エッジ

元記事を表示

ICARモデルのMCMCをPythonで実行する

PythonでICARモデルが扱いやすくなってきたのでのICARモデルの実装方法を検証してみました。

ここでICARモデルについて詳しい説明はしませんが、一言でまとめると「空間的な相関関係を考慮に入れることができるモデル」になります。ICARモデルについて詳しく知りたい方は下で示しているStanのケーススタディや緑本(データ解析のための統計モデリング入門)をお読みください。

## 実行環境

今回はGoogleColaboratory(2023年12月1日のバージョン)で検証しました。

使用したPPLは

– PyMC5 (5.10.0)
– Stan (CmdStanPy)

になります。

2023年12月1日現在、GoogleColaboratoryにプリインストールされているPyMC5はバージョンが5.7.2なのでこれを最新版の5.10.0にアップデートして使用しています。

PyMC5の場合は公式がICARモデルを実装してくれているのでそれを使用します。

https://www.pymc.io/projects/docs/en/stable/api/distribut

元記事を表示

DjangoのCreateViewの実装の仕方を理解する

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

前回DjangoのFormViewとmodel、HTMLのform要素について理解を深めていきました。
今回はその学びの中で出てきた『FormViewではなくてCreateViewでも同様に実装できる』ということを確かめるためにコーディングをしてみました。

https://qiita.com/ohtsuka-shota/items/3f87d8fbc6a375bd1e5d

# github
以下にコード一式を格納しております。

https://github.com/ohtsuka-shota/publicDjangoStudy/tree/main/createTestPJ

# 環境構築
## 環境イメージ
今回は以下の環境で構築しております。createTestPJという名前のプロジェクトとMyCreateという名前のアプリを作成しています。
構成要素は以前のFormViewを継承させた環境と殆ど同じです。違いとしては、forms.pyを用意していないことです。
![django-ページ10.draw

元記事を表示

langchainでExtraction(文章から定型情報を抜き出す)を試す

# 概要
– [公式のユースケース](https://python.langchain.com/docs/use_cases/extraction)を参考に、__文章から定型情報を抜き出す手法__、の使い勝手を確認してみた
– ※langchainや今回使用しているopenaiのapiはすぐにアップデートされていくので、あくまで2023年11月時点での状況であることに注意

# 基本的な使い方
extractionするための関数(`create_extraction_chain`)等を呼び出す(※OPENAI_API_KEYは環境変数として設定されている前提)
“`python
from langchain.chains import create_extraction_chain
from langchain.chat_models import ChatOpenAI
“`

抜き出したい情報を定義する
“`python

schema = {
“properties”: {
“name”: {“type”: “string”},
“he

元記事を表示

生物系の修士1年がKaggleに参加してみた2

https://qiita.com/wawana12/items/dd733fac4ce3f5bdd7ad

前回の記事の続きです。
生物系の修士1年がKaggleに参加してみました。
この記事では、チュートリアルコンペ以外のコンペ参加の流れを紹介します。

# Titanic以外のコンペを探す
Titanic以外のコンペを探します。
下記の記事を参考にしました。

https://atmarkit.itmedia.co.jp/ait/articles/2108/30/news033.html

コンペが、Kaggle初心者向けにわかりやすくまとめられています。
この記事では、Titanicと同じ二値分類のコンペとして、[Tabular Playground Series – Apr 2021](https://www.kaggle.com/c/tabular-playground-series-apr-2021)、[Home Credit Default Risk](https://www.kaggle.com/c/home-credit-default-risk)、[Porto S

元記事を表示

ChatGPTとPythonで学ぶ UMAP

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

### **assistant**:

はじめまして。ChatGPT先生と申します。お呼びいただきありがとうございます。今日はUMAPについて学んでいきましょう。

UMAPは、Uniform Manifold Approximation and Projectionの略で、高次元データを低次元に圧縮するための手法です。具体的には、データの構造を保存しながらデータを2次元や3次元に圧縮することによって、我々人間が理解しやすい形でデータを可視化することができるようになります。他の次元圧縮手法と比較して、UMAPは特にデータのクラスタ構造を保持する能力が高いとされています。

UMAPをPythonで使うためにはumap-learnというパッケージをインストールします。以下のコードでインストールできます。

“`
pip install umap-learn
“`

インス

元記事を表示

「ぼっち・ざ・ろっく!」の楽曲が作詞された順番をAIに推測させてみた

## アニメ「ぼっち・ざ・ろっく!」の楽曲の魅力

結束バンドの楽曲の歌詞は、主人公である後藤ひとりが作詞している設定なのだが、
後藤ひとりが作中で精神的に成長し心境が変化していくのに合わせて、曲や歌詞の雰囲気がポジティブなものに変化していくのがとてもエモい。

## アニメ「ぼっち・ざ・ろっく!」の楽曲一覧

結束バンドの劇中歌は以下の4つ

– ギターと孤独と蒼い惑星(5話)
– あのバンド(8話)
– 忘れてやらない(12話)
– 星座になれたら(12話)

その他のアルバム収録曲(アルバム収録順)

– 青春コンプレックス
– ひとりぼっち東京
– Distortion‼
– ひみつ基地
– ラブソングが歌えない
– カラカラ
– 小さな海
– なにが悪い
– フラッシュバッカー

これらの曲について、
後藤ひとりが作詞した順番を推測する場合、
曲や歌詞の雰囲気がポジティブなもの → 初期に作られた曲
曲や歌詞の雰囲気がネガティブなもの → 後期に作られた曲
である程度の推測ができると思われる。

そこで、曲の歌詞をネガポジ判定ライブラリに食わせて、そのスコ

元記事を表示

Streamlitで遊んでみよう

この記事は タダの2年目 Advent Calendar 2023 の2日目の記事です。

n番煎じ甚だしいですが、streamlitをちょこちょこっと触ってみました!

# Document

https://docs.streamlit.io/

# はじめに

とっとと使ってみましょう。ターミナルから以下実行するだけで、streamlitが立ち上がります。

“`
$ pip install streamlit
$ streamlit hello
“`
![スクリーンショット 2023-11-24 11.47.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656439/a2afce99-1a9b-525a-aefe-a05a46a7b439.png)

すごい…!

左側のサイドバーから、デモを選択し、そのコードを確認することができます。
例えば、DataFrame Demo をクリックすると、次のように表示され、ページ下部にはコードも記載されます。

![スクリーンショット 2

元記事を表示

眠気を目のまばたきから判定するアプリ_part1

メモ書き程度にしか記載していないためご了承下さい。
再度編集いたしますので、イメージだけでも掴んでいただきたいです。

今回は作成したアプリは、目のまばたきを検知することで、眠気を判定することを目標にしています。

python,mediapipe,Dlib,openCVを用いました。

以下のQiita記事を参考にスクリプトを作成しました。
https://qiita.com/mogamin/items/a65e2eaa4b27aa0a1c23

以下の論文を参考に眠気の判定をしています。
![sleep_judge.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3559550/c994965a-9e7d-a263-78ea-280434d8fd35.png)
![sleep_judge_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3559550/c870e257-d351-ee41-27fe-efcdcaaf9

元記事を表示

ChatGPT API使用時に[Error code: 429]がでた時の確認事項

**注意**
未経験から転職した、一年目のエンジニアが、作成したものになります。
そのため、至らぬ表現や、誤った表現をしている場合があります。

経験豊富な先輩エンジニアの方々へ
もし、誤った情報を記載していた際は、大変お手数をおかけしますが、ご指摘いただけますと幸いです。

少しでも、皆様のお役に立てれば幸いです。

# 記事の内容

– 生じたエラー
– エラーの意味
– エラーの原因
– 対処方法

## 生じたエラー
![スクリーンショット 2023-12-02 13.02.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2963171/f3b1cd06-e345-9279-bb94-926ad0162c29.png)

## エラーの意味

例外が発生しました: RateLimitError
Error code: 429 – {‘error’: {‘message’: ‘You exceeded your current quota, please check your

元記事を表示

SnowflakeをTerraform化

この記事は[note株式会社のカレンダー | Advent Calendar 2023 – Qiita](https://qiita.com/advent-calendar/2023/note)の2日目の記事です。

SnowflakeをTerraform化したのでその時の記録となります。

# 背景

noteではデータウェアハウスとしてSnowflakeを採用しています。

Snowflakeではデータベースやスキーマはもちろんウェアハウスや権限など、数多くの管理すべきリソースが存在します。

SnowflakeのWEBインターフェースでももちろんそれらを管理できますが、同時によくある課題も付き纏ってきます。

– 変更の履歴が追いづらい
– いつ変更されたかわからない
– 変更をレビューしづらい
– 同じの環境の再構築・再現が難しい

これらの課題をTerraformによってコード化することで解決を行おうというのが今回の記事の主旨になります。

インフラがコード化されるので、今までの開発の知識やgitなどのツールをそのまま活かすことができます。

# SnowflakeのTe

元記事を表示

PythonでSwitchBotのAPIをしばく

# PythonでSwitchBotのAPIをしばく

この記事は[**四工大アドベントカレンダー2023**](https://qiita.com/advent-calendar/2023/yonko_univ)に参加しています。
この記事は[**ひとりアドベントカレンダー2023**](https://github.com/Chroma7p/one-man-advent-calendar2023)にも参加しています。

2日目です。

## 概要
– Pythonを使用したSwitchBot API v1.1でのデバイス制御
– 各デバイスのクラスを作ってより使いやすくする

## 要約
SwitchBot API v1.1を使用して、Pythonでデバイスを制御する方法を紹介します。
また、デバイスごとにクラスを作成して、より使いやすくする方法も紹介します。

## Pythonを使用したSwitchBot API v1.1でのデバイス制御
SwitchBotのデバイスをPythonで制御するためには、API認証とデバイス情報の取得を関数化して整理することが効果的です。以下は、

元記事を表示

Pythonのclass変数をCの静的変数のように使うテストプログラム ‘101回目のプロポーズ’

class変数をCのstatic宣言された変数のように、静的変数として使ってみるテスト。
101回めのプロポーズ。ドラマの設定とはちょっと違いますが。

class yurieに101回呼び出したら’Yes’を返す関数ansを作ります。
メインからyurieを’Yes’が返ってくるまで呼び出します。
‘Yes’が返ってきたら終了です。
ここでは、クラス変数を使ってますが、インスタンス変数は使ってません。

“`propose.py
#!/usr/bin/python3
import random

class yurie():
counter=0 # クラス変数定義
# ここで定義された変数はクラス共通の静的変数となる

def __init__(self): # 初期化関数
yurie.counter=0 # クラス変数にアクセス
return

def ans(self):
yurie.counter+=1

元記事を表示

ろうとるがPythonを扱う、、(その16:ファイル転送)

# ソケットによるファイル転送
ソケットレベル(TCP)を用いて、ファイル転送を実現した。

## 画面
最初に結果の紹介。
### Client(ファイル送信側)
後述する「Start」ボタンをクリックすると、転送するファイルを選ぶダイアログボックスが表示される。
![ファイル選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/e9d7d53c-023d-686e-76c7-002000259850.png)
転送中には、ボタンが「Stop」に変わり(クリック可能)、その右に転送の進行状況(%表記)が表示される。
![送信中.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/aa9ca960-a182-23c2-3d10-e202c70c8f51.png)
結果は下記のようなもの。
![Client.png](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

Pythonで「比較演算子の使い方」の動作を確認してみた

# 概要

Pythonで「比較演算子の使い方」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/if/index4.html

# 実装

以下のファイルを作成しました。
“`sample.py
print(bool(10 == 10))
print(bool(10 == 8))
print(bool(10 == 10.0))
print(bool(“Hello” == “Hello”))
print(bool(“Hello” == “Hey”))
print(bool(“Hello” == “hello”))
print(bool([“Red”, “Blue”] == [“Red”, “Blue”]))
print(bool([“Red”, “Blue”, “Yello”] == [“Red”, “Blue”]))
print(bool(5 > 3))
print(bool(7 < 3)) print(bool(4 >= 4))
print(ord(“a”))
print(ord(“b”))
print(o

元記事を表示

海上の太陽光発電所に最適なとこってどこなんだろうか? 波高調査編

# はじめに
 先日[[1]](#参考サイト)の記事で「調査対象が日射量と水深だけで、海岸からの距離、波高、潮の流れの速さ、台風の進路でないか、船の航路になってないか、など他の項目が不足している」という課題を挙げました。
 その中で今回は波高について調査していきたいと思います。

# 実行環境
– CPU: CORE i5 8th Gen
– メモリ: 8GB
– OSと環境: Window11にAnacondaをインストールした環境
– プログラミング言語とバージョン:python 3.11.5

# 使用したデータ
データのダウンロード方法は[[1]](#参考サイト)の記事と同じでダウンロードしてくる項目を変えるだけです。
– 有義波高のデータ
– 気象データセット: ECMWF(欧州中期予報センター) ERA5
– 期間: ERA5で公開されている2022年の全ての日時
– 領域: 日本周辺 北緯:24°~46° 東経122°~153°
項目: significant height of combined

Polarsで処理を高速化し、ゆとり時間を生み出そう!

Qiita初投稿です。
この記事は [Polars Advent Calendar 2023](https://qiita.com/advent-calendar/2023/polars) 15日目の記事です。

# はじめに
Pythonを2017年ころから使い始めてから、6年くらいの年月が経ちましたが、
2023年の大きな変化の1つとして、Polarsを使うようになったということが挙げられるかと思います。

今回、2023年にPolarsを使い始めたことで体感したメリットを綴って行きたいと思います。
(主にPandasを使っていて、Polarsをまだ使っていない人に向けて)

# Polarsとの出会い
もはや曖昧で覚えていないですが、2023年の2月くらいだったのではないかと思います。
Kaggleの[Predict Student Performance from Game Play](https://www.kaggle.com/competitions/predict-student-performance-from-game-play)あたりから、「あれ?Polars

GoF23のデザインパターンをPythonでChatGPTと学習してみた

# はじめに
ChatGPTとのデザインパターンについて学習した記録として記事にしています。

# デザインパターンとは?
学生: 先生、デザインパターンって何ですか?どこから学び始めればいいのでしょうか?

先生: デザインパターンはね、ソフトウェア設計のためのノウハウ集のことだよ。多くの開発者が設計の経験を積んできた結果、特定の問題に対する効果的な解決策がまとめられているんだ。

学生: それって具体的にはどんなものがあるんですか?

先生: GoF(Gang of Four)が提唱した23のパターンが有名だね。これらは主に「生成」、「構造」、「振る舞い」という3つのカテゴリに分類されるよ。

![デザインパターン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620022/1f581737-eceb-1076-3356-81eea38d296c.png)

学生: それらのパターンを学ぶことでどんなメリットがあるんですか?

先生: 一番大きなメリットは、保守性が高く、拡張性に優れたソフトウェア

Pythonで水墨画を作ってみる(線画の応用)

みなさんこんにちは!

前回、[Pythonで線画を作ってみる](https://qiita.com/yam_dev/private/beadcc5b74451c8c0f24)という記事を書きました。

やってみたら面白かったので、それを応用して、水墨画風にしてみようと思います。

どこまで水墨画に近付けるか分かりませんが、やってみましょう:muscle:

環境構築などは[前回の記事](https://qiita.com/yam_dev/private/beadcc5b74451c8c0f24)を参照してください:bow:

# 要件
– 線は太め
– モノクロ
– 濃淡で表現する
– ちょっとぼかす

ぱっと思いつくのはこのくらいなので、この要件で進めてみます。

# 追加したコード
ぼかし、コントラスト、ハイライトを使って、水墨画っぽくしてます。
これが正解かは分かりませんが、色々と調整した結果、ここに落ち着きました。
“`python
def ink_painting_effect(img):
# グレースケールに変換
gray = cv2.cvtColor(