- 1. 【Matplotlib】Python グラフ描画テンプレート
- 2. 忙しい人向けPython自動化スクリプト集
- 3. LangChainのRunnableをKubernetesで実行するRunnableを書いてみた
- 4. Pythonで九九表
- 5. ArgumentParserの備忘録
- 6. #70 リスト内包表記を使ってネストのある配列の値を検索する
- 7. atcoder練習(2024.11.14)
- 8. atcoder練習(2024.11.14)
- 9. M4Pro MacBook ProのGPUをPyTorchから使う
- 10. atcoder練習(2024.1114)
- 11. paizaラーニング問題集「STEP2移動が可能かの判定・方角」を解いてみた
- 12. paizaラーニング問題集「STEP1移動が可能かの判定・方角」を解いてみた
- 13. Pythonの開発環境を2年ぶりにアップデート【uv+ruffに移行】
- 14. M4Pro MacBook ProのGPUをTensorflowから使う
- 15. RIZEの歌詞に出てくる固有名詞を分析してみる
- 16. LangChainのデバッグを極める:コールバックとロギングの実践的ガイド
- 17. LangChain Runnable入門:基本的な使い方と実装パターン
- 18. Facebook APIで広告IDから広告画像URLを取得する
- 19. [ChatGPT][Python]技術交流のためにワードクラウド(の第一歩)
- 20. SaliencyMapを使って視線誘導したい
【Matplotlib】Python グラフ描画テンプレート
## 1. はじめに
今回はMatplotlibというPythonのグラフ描画ライブラリを用いて、グラフの作成を行なっていきます。この記事では、Matplotlibの基礎から、実際のグラフ描画までの基本的な使い方やテンプレートを紹介していきます。
## 2. 環境構築
### 2-1. ライブラリの詳細
まずは、Pythonの環境構築を行います。
今回は、以下の4つのライブラリをインポートします。
– **NumPy**
様々な数値計算をサポートするライブラリ。平均値や中央値の計算、行列やベクトルの計算を行える関数がある– **Matplotlib**
グラフを描画するためのライブラリ。折れ線グラフ、棒グラフ、散布図などを様々なグラフを簡単に描け、視覚化に便利である– **pandas**
データ操作に特化したライブラリで、データフレームを使って表データを扱う。データの集計や分析がしやすい– **japanize-matplotlib**
Matplotlibで日本語フォントをサポートするためのライブラリ。グラフ上に日本語を使う際の文字化けを
忙しい人向けPython自動化スクリプト集
## はじめに
忙しい毎日で、ルーチン作業に時間を取られることはありませんか?本記事では、Pythonを活用してよくある業務を自動化することで、少しでも作業を効率化する方法をご紹介します。今回はすぐに使える簡単なスクリプト集ですので、Pythonが少しわかる方ならすぐに導入できます!—
## 1. 毎日のファイル整理を自動化する
### 目的
毎日ダウンロードフォルダに溜まっていくファイルを、日付ごとや種類ごとにフォルダ分けして整理するスクリプトです。指定したフォルダのファイルを、拡張子ごとに自動で整理します。### コード
“`python
import os
import shutildef organize_files(folder_path):
# フォルダ内のファイルを取得
files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]for file in files:
file_
LangChainのRunnableをKubernetesで実行するRunnableを書いてみた
LangChainで書く処理(i.e. chain)は、RunnableをLCELでつないだワークフローみたいな感じになる。
[Argo Workflows](https://argoproj.github.io/workflows/)とか[Tekton](https://tekton.dev/)みたいなクラウドネイティブなワークフロー実行エンジンには、ワークフローの各ステップを個別のコンテナで実行するようなのがある。
ならばRunnableもコンテナで実行したらどうかという思いつき。# LangChainとは
[LangChain](https://www.langchain.com/langchain)は、LLMを使ったアプリケーションを開発するためのPythonのフレームワーク。
LangChainを使うと、様々なLLMの呼び出しや周辺の処理を一貫したインターフェースで扱えて、RAGやチャットモデルやLLMエージェントの開発が楽になる。[LangChain Expression Language (LCEL)](https://python.langchain.com/v
Pythonで九九表
# はじめに
Python勉強用のために過去ほかの言語で勉強したコードをPythonでやりなおします
# code“`python:code
# 横列の表示
print(” “, end=””) # 先頭の空白を揃える
for i in range(1, 10):
print(f”{i:3}”, end=” “) # ヘッダーの列幅を3に設定
print() # 改行# 各段の掛け算結果を縦に出力
for i in range(1, 10):
print(f”{i:2} “, end=””) # 段の番号とスペースを合わせて揃える
for j in range(1, 10):
print(f”{i * j:3}”, end=” “) # 各結果を3文字幅で出力
print() # 段ごとに改行“`
# 解説
{i * j:2} は Python のフォーマット文字列で、特に {} 内の書式指定を使って、整数を指定の桁数で表示する方法
今回は2桁にそろえています
参考:https://note.
ArgumentParserの備忘録
# はじめに
Python実行時、コマンドライン引数を受け取る際に利用する**ArgumentParser**の備忘録です。 内容は必要最低限です。この内容に関する説明は以下の記事が分かりやすいです。
[【参考】ArgumentParserの使い方を簡単にまとめた](https://qiita.com/kzkadc/items/e4fc7bc9c003de1eb6d0)## 公式ドキュメント
https://docs.python.org/ja/3/library/argparse.html# 使い方
## ライブラリのインストール
※Pythonの標準ライブラリです。
“`console
$ pip install argparse
“`
## 簡単な使い方
“`python:test_argparse.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(‘–A’)
args = parser.parse_args()
print(args)
print(args.A)
#70 リスト内包表記を使ってネストのある配列の値を検索する
## はじめに
以前phpでarray_reduce()を使ってネストのある配列の値を検索する処理を調べる機会があり、他の言語、例えばpythonを使用するとどのように書けるのか気になったので、調べてみました。すると、pythonではfor文の代わりにリスト内包表記というものを使うと、よりシンプルに書けるということがわかりました。
今回はそんなリスト内包表記について、for文で記述した場合と比較しつつ備忘録としてまとめていきたいと思います。### やりたいこと
ネストのある元配列を一意の値で検索して、同じの要素の中で深さの違うキーの値を取り出したいと思います。文章だけだとわかりにくいですね。
以下のようにネストされた配列があるとします。
“`python
arrays = [
{
“id”: 930,
“mail”: “suga59@ex.com”,
“sendMailFlg”: “1”,
“user”: {
“id”: 02,
atcoder練習(2024.11.14)
# キーワード
while, list
# 問題
https://atcoder.jp/contests/abs/tasks/abc081_b黒板に
N 個の正の整数
A
1
,…,A
N
が書かれています.すぬけ君は,黒板に書かれている整数がすべて偶数であるとき,次の操作を行うことができます.
黒板に書かれている整数すべてを,
2 で割ったものに置き換える.
すぬけ君は最大で何回操作を行うことができるかを求めてください.制約
1≤N≤200
1≤A
i
≤10
9入力
入力は以下の形式で標準入力から与えられる。N
A
1
A
2
…
A
N
出力
すぬけ君は最大で何回操作を行うことができるかを出力せよ.入力例 1
Copy
3
8 12 40
出力例 1
Copy
2
最初,黒板には
[8,12,40] が書かれています. このとき,書かれている整数はすべて偶数なので,操作を行うことができます.1 回操作を行った後,黒板には
[4,6,20] が書かれています. 再び,書かれ
atcoder練習(2024.11.14)
# キーワード
# 問題
https://atcoder.jp/contests/abs/tasks/abc081_aすぬけ君は
1,2,3 の番号がついた
3 つのマスからなるマス目を持っています。 各マスには 0 か 1 が書かれており、マス
i には
s
i
が書かれています。すぬけ君は 1 が書かれたマスにビー玉を置きます。 ビー玉が置かれるマスがいくつあるか求めてください。
制約
s
1
,s
2
,s
3
は 1 あるいは 0
入力
入力は以下の形式で標準入力から与えられる。s
1
s
2
s
3
出力
答えを出力せよ。入力例 1
Copy
101
出力例 1
Copy
2
マス
1,3 にビー玉が置かれます
入力例 2
Copy
000
出力例 2
Copy
0
ビー玉はどのマスにも置かれません# 回答
“`Python
a = str(input())
print(a.count(“1”))
“`# 参考
# 備考
– int形のcount関数を探していただけど、そ
M4Pro MacBook ProのGPUをPyTorchから使う
M4Pro MacBook ProのGPUをTensorflowで実行する手順は[コチラ](https://qiita.com/xtrizeShino/items/56e3c1e027107debe331)で試しましたので、PyTorchの使い方もまとめておきます。PyTorchは2024/11/14現在、既にデフォルトでMPS(Metal Performance Shaders)に対応していますので、**特別な手順は必要なく** `.to(“mps”)`メソッドを使うだけでハードウェアリソースを利用することができます。
## 手順の前準備
以下記事を進めていることを前提に書いています。
– Homebrewをインストールする
– Anacondaをインストールする
– Miniforgeをインストトールするhttps://qiita.com/xtrizeShino/items/56e3c1e027107debe331
## PyTorchをインストールする
それでは仮想環境を作成してPyTorchをインストールしていきましょう。この手順では仮想環境の作成にAnacon
atcoder練習(2024.1114)
# キーワード
命名規則,
# 問題
https://atcoder.jp/contests/abs/tasks/abc086_aシカのAtCoDeerくんは二つの正整数
a,b を見つけました。
a と
b の積が偶数か奇数か判定してください。制約
1
≤
a,b
≤
10000
a,b は整数
入力
入力は以下の形式で標準入力から与えられる。a
b
出力
積が奇数なら Odd と、 偶数なら Even と出力せよ。入力例 1
Copy
3 4
出力例 1
Copy
Even
3×4=12 は偶数なので Even を出力してください。入力例 2
Copy
1 21
出力例 2
Copy
Odd
1×21=21 は奇数なので Odd を出力してください。# 回答
“`Python
a, b = map(int, input().split())if a*b % 2 == 0:
print(“Even”)
else:
print(“Odd”)
“`# 参考
# 備考
– EvenとOddが逆だった。命名規則の側面も合わせて
paizaラーニング問題集「STEP2移動が可能かの判定・方角」を解いてみた
https://paiza.jp/works/mondai/a_rank_level_up_problems/a_rank_snake_mapmove_step2
▼考え方
この問題を解くために私が考えた内容1、2を以下に示します。
1. 現在向いている方角dと1マス移動する方向mを関数caldistanceに渡して、y,x座標の移動距離を計算します。
2. 1の戻り値と現在の座標を関数nextpositioncheckに渡して、移動が可能かどうかを判定し出力します。
▼コード
“`py
H,W,sy,sx,d,m = input().split()S = [list(input()) for _ in range(int(H))]
# caldistance: y,x座標の移動距離を計算する関数
def caldistance(d,m):# dy: y座標の移動距離
dy = 0# dx: x座標の移動距離
dx = 0if d == “N”:
if m == “L”:
paizaラーニング問題集「STEP1移動が可能かの判定・方角」を解いてみた
https://paiza.jp/works/mondai/a_rank_level_up_problems/a_rank_snake_mapmove_step1
▼考え方
現在の座標と1マス移動する方角の3つを関数に渡して、移動が可能かどうかを判定し出力します。解答コードの考え方と私のものはほぼ一緒でした。
▼コード
“`py
H,W,sy,sx,m = input().split()S = [list(input()) for _ in range(int(H))]
# npc: 移動が可能かどうかを判定し出力する関数
def npc(ny,nx,d):if d == “N”:
ny -= 1
elif d == “S”:
ny += 1
elif d == “W”:
nx -= 1
else:
nx += 1if (ny <= -1 or ny >= int(H)) or (nx <= -1 or nx >= int(W)):
Pythonの開発環境を2年ぶりにアップデート【uv+ruffに移行】
## はじめに
Python ⇒ C/C++ ⇒ System Verilog を経て、約2年ぶりに Python へ戻ってきました。
ということで、自分の知識を更新するために Python の開発環境を2024年版にアップデートします🎉
:::note info
**結論**
`Poetry` から `uv` に移行、`Flake8`, `Black`, `isort` を `ruff` に一本化しました。
:::### 新しい開発環境(2024年~)
エディタは、[VSCode](https://code.visualstudio.com/)を使用する。
パッケージマネージャーは、 [**uv**](https://docs.astral.sh/uv/) を使用する。開発用のツールとしては以下を使用する。
– [**ruff**](https://docs.astral.sh/ruff/):リンター
– [**mypy**](https://www.mypy-lang.org/):型ヒントを利用した静的型チェックツール
– [**pytest**](https:/
M4Pro MacBook ProのGPUをTensorflowから使う
M4Proチップ搭載メモリ48GBのMacBook Proを買いました。これまで、機械学習をいろいろ試したく開発用にx86_64 Ubuntu + GeForce3060Tiを準備していましたが、M4ProチップはGPUハードウェアリソースが豊富なのでMacBook Proで持ち運べる開発環境を作ってみました。
今回の手順では、ゼロから設定をはじめ、TensorflowからGPUを認識できるところまで紹介しています。なお、本記事は以下のサイトを参照して書いています。
https://medium.com/@kakadechaitanya77/how-to-initialize-tensorflow-environment-on-m4-m4-pro-and-m4-max-macbook-pros-3415f8679e36
### PyTorchを使う手順はコチラ
https://qiita.com/xtrizeShino/items/abe5b9caaadecbd1efd6
## Homebrewをインストールする
まず、macOS上のパッケージを管理できるHomebrewを
RIZEの歌詞に出てくる固有名詞を分析してみる
# はじめに
The BONEZ – Straight Up feat. Kj / THE FIRST TAKE がサイコーすぎるので全人類に観て欲しい🦴🐉歌詞の通り、「出会った時からのマブダチ」という関係ではないJESSEとKjが、並んでバキバキの気概全開で最高のミクスチャーロックをやっている。JESSEとKjが「お前にだけは負けるわけにいかねえ」とばかりに、彼らのバンド人生の全てぶちこんでガンガン掛け合いをかましていく曲であるため、歌詞に自身の名前や故人の名前等の固有名詞が頻出している。RIZEの歌詞でも固有名詞が多く出てくる印象はあったが、具体的な数は流石に把握していなかった。
というわけで、以前他のバンドPeople
LangChainのデバッグを極める:コールバックとロギングの実践的ガイド
## 🎯 この記事の目的
この記事では、LangChainを使用する際の効果的なデバッグ方法について、実践的なコード例を交えて解説します。特に`BaseCallbackHandler`を活用したデバッグ手法に焦点を当てます。
langchain のRunnableに特化してキャッチアップしていきます⑤
langchainでデバッグするときにめっちゃ困ってたけど、CallbackHandler使えばなんとかなりそう!!! https://t.co/y456RYcLny pic.twitter.com/yJnSVC8FuJ— Maki@Sunwood AI Labs. (@hAru_mAki_ch) LangChain Runnable入門:基本的な使い方と実装パターン
## はじめに
LangChainのRunnableは、AI処理パイプラインを構築する上で非常に重要なコンポーネントです。この記事では、LangChainのRunnableの基本的な使い方から、より複雑な実装パターンまでを、実践的なコード例を交えて解説します。
### この記事で学べること
– Runnableの基本的な概念と使い方
– 段階的に複雑さを増す実装パターン
– 実践的なエラーハンドリングとログ管理
– チェーンの構築と最適化のベストプラクティス## 環境構築
まず、必要なパッケージをインストールします:
“`bash
pip install langchain langchain-openai python-dotenv loguru art
“`プロジェクトの基本構造:
“`plaintext
sandbox/
└── runnable/
└── basic/
├── 01_simple_transform.py
├── 02_passthrough_chain.py
├── 03_comFacebook APIで広告IDから広告画像URLを取得する
# はじめに
こんにちは、ユーゴです。今回は、Facebook API (マーケティングAPI > インサイトAPI)についてを紹介します。# 問題
広告IDから、広告画像URLの取得方法に悩みました。# 解決
以下のように実装します。“`python
from facebook_business.adobjects.ad import Ad
from facebook_business.adobjects.adcreative import AdCreativedef get_ad_image_url(ad_id):
# Adオブジェクトから「creative」を取得
ad = Ad(ad_id).api_get(fields=[Ad.Field.creative])
creative_id = ad[“creative”][“id”]
creative = AdCreative(creative_id).api_get(
fields=[
AdCreative.Field.image_url,
[ChatGPT][Python]技術交流のためにワードクラウド(の第一歩)
# 着想
– 「技術交流を盛んにしよう!」という名目で開かれている会社の飲み会イベントがあります
– しかし、実際はただ世間話しながら酒飲んだり飯食ったりするだけで終わることが多い印象です
– 自分から話題を提供できるほど技術トピックに詳しいわけでもないので悩ましい
– そこで参加者に技術雑談の話題を提供するような何かがあれば良いと考えた
– 例えば、ホワイトボードに「最近ホットな技術ワードを並べたワードクラウドを掲示してみる」とかはどうだろう?
– そんな経緯で、「最近ホットな技術ワードをワードクラウド形式で出力する」をやりたくなった# まずはワードクラウドを作る
– 技術雑談を促進する手段としてワードクラウドが適切かどうかはさておき、まずはワードクラウドを作れなければ話にならない
– 軽くググったところ、pythonにそのようなライブラリがあるらしい。とりあえずchat GPTにコードを書かせてみた## 依存環境
`pip install wordcloud matplotlib`
## コード
“`python
from wordcloud import W
SaliencyMapを使って視線誘導したい
# はじめに
## Saliencyとは
– サリエンシー(Saliency) =「顕著性」「目立ちやすさ」
– 画像や映像において、人間の注意を引きつけやすい特徴や領域を指す## サリエンシーマップとは
– 画像や映像の中で、各領域がどの程度目立つかを視覚的に表現したもの
– 人間の視覚的注意を予測するモデルとして使用される![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348593/c6778eb7-f946-0897-8124-88f9a4d7ea4c.png)
## サリエンシーマップの主な用途
– マーケティング:広告の効果を予測・分析
– UI設計:重要な要素が目立つようにデザインを調整
– コンピュータビジョン:物体検出や画像分割のための前処理として使用# 本題
## やりたいこと
– 意図した情報やメッセージを効果的に伝えるための分析を簡単に行いたい
– サリエンシーマップを使うことで、自然に目が引きつけられる領域を特定し、それに基づいて