- 1. Azure App Service Linux Python のログを見やすくする工夫
- 2. Hangman
- 3. pillowを使って見切れないように画像に文字を入れる。
- 4. 複素平面できませんでした。「2024 秋田大学 前期【8】」をChatGPTとsympyでやってみたい。
- 5. chatGPTを使用しmidi譜面を作成(作曲)してみる
- 6. Pythonでの数値計算を効率化する
- 7. 本試験。ChatGPT-3.5先生へ。太郎さんと花子さんの会話形式に変換「2024 大学入学共通テスト 本試験 数学I/数学IA【1】[1]」(回答抜粋)
- 8. 初心者がstreamlitで作る簡易時系列予測アプリ
- 9. Gremlinクエリ言語を使う為の設定とGremlinクエリ言語の使い方をまとめた
- 10. 【Python】初心者でも悩まずにできちゃうSlack連携してメッセージ通知
- 11. Pythonのライブラリを作成してPyPIに公開する方法:stringutils-happyの紹介
- 12. LangChain(Python)のPrompt基本使い方
- 13. Logfire🔥を使ってPythonアプリケーションでObservabilityを体験する
- 14. Python での getter/setter の書き方 3 選
- 15. pythonは4300桁しかprintできない
- 16. 【Python】便利なenumerate関数の使い方
- 17. 【Python】python-dotenvを使用し環境変数を読み込む
- 18. 【Python】json.dumps() でJSON形式に変換する方法
- 19. Qiita APIを使用し過去に自分が書いた記事一覧情報を取得する
- 20. 【備忘録】SHAPのexplainerのパラメータによって結果が変わってしまう with chatgpt4o
Azure App Service Linux Python のログを見やすくする工夫
# はじめに
App Service Linux 環境ではコンテナからの標準出力/標準エラーがファイルとしては `default_docker.log`、診断設定では `AppServiceConsoleLogs` に出力される。
https://azure.github.io/jpazpaas/2023/07/27/AppServiceOnLinux-Log.html
この記事では `AppServiceConsoleLogs`に出力される内容を改善して、ログを見やすくする工夫を試みます。
https://learn.microsoft.com/ja-jp/azure/app-service/troubleshoot-diagnostic-logs#supported-log-types
# 解決したい課題
下記の記事にあるように、`AppServiceConsoleLogs` では、標準出力は `Informational` レベル, 標準エラーは`Error` レベルで出力される。
https://azure.github.io/jpazpaas/2024/05/2
Hangman
### この記事において、Hangmanという相手の考えた単語を当てる2人用のゲームをPythonコードで書く方法を皆さんに教示したい。
#### 初期設定としては、このコードを書いたらいい。
![Screenshot 2024-06-10 at 15.59.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/75e2b514-e082-7d58-76da-b74c405b578d.png)#### 単語の選択と変数の初期化が必要になってくる。
![Screenshot 2024-06-10 at 16.00.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/5f385f9b-82c7-0714-2466-621c9de60ccb.png)hangman_words.word_listからランダムに単語を選びます。
選ばれた単語の長さをword_lengthに格納します。
en
pillowを使って見切れないように画像に文字を入れる。
# 前書き
こんにちはatomです。
仕事の一環でちょっと Pillowを使って画像をいじる場面がありました。
ちょこちょこと調べながらやったので、同じようなことでつまづくかたが減るようにメモを残します。# Pillowって何?
リサイズや切り出し、この記事のテーマの文字を入れる、などの画像処理をすることができるライブラリです。簡単な処理をしたいだけなら結構便利。
# 筆者のやりたかったこと
– たくさんある画像に文字を入れたい
– 文字は複数行に渡っていて右下端が切れると嫌なので座標を適宜指定したい
– ついでに文字の画像全体に占める割合を気にしておきたい# いざ
先にPillowで画像に文字を入れるときの大まかな使い方を書きます。
“`python
from PIL import Image, ImageDraw, ImageFontimg = Image.open(‘ファイル名’)
draw = ImageDraw.Draw(img)text = ‘書き込みたい文字’
font = ImageFont.truetype(‘フォントファイルの指定’, 文字サ
複素平面できませんでした。「2024 秋田大学 前期【8】」をChatGPTとsympyでやってみたい。
・**できませんでした。**
私は、複素平面がわかっていません。申し訳ありません。
???私の言い訳??? **私は、複素数の勉強開始予定です。**https://qiita.com/mrrclb48z/items/c05cef33fc4fbda73379
# オリジナル
・T氏の数学日記 様https://mathmathmass.exblog.jp/33772297/
・大学入試数学問題集成 様>【8】テキスト
https://mathexamtest.web.fc2.com/2024/202410101/2024101010100mj.html#top-0110
# オリジナル様の方法で
・勉強中? 私はあきらめました。# ChatGPT-3.5先生へ
大学入試数学問題集成 様> 【3】テキスト
・ページのソースを表示です。MathMLです。
省略しようと思いましたが、大学入試数学問題集成 様 の全文から必要部分の抜粋です。
“`2024 秋田大学 前期
chatGPTを使用しmidi譜面を作成(作曲)してみる
こんにちは 作曲大好きスクラムマスターKDDIアジャイル開発センターのたかたにです。
普段はバンドマンしてたり、会社の部活の音KAG\部で作曲をしてます。# はじめに
本題ですが、1曲丸々作ってくれるSunoAIを使って作曲する人が最近、増えてます。
でも、それって気になったとこ直せなかったりかゆいとこに手が届かないことはありませんか?
また、作曲ソフトを使っている方は打ち込みが面倒なこと、打ち込みの案が思いつかないことは多々ありませんか?そんな方に向けた記事を今回は投稿します。
# 譜面作成の手順
生成AIを使って、midi譜面を作ってみましょう。
手順は以下です。1. 生成AIと作りたい曲、必要なパート、そのテンポを壁打ちして、ABC記譜法(※1)の譜面を作成させる
1. 生成AIにABC記譜法の譜面をpythonで実行する方法/ソースコードを聞いてみる
1. music21(※2)をインストールする
1. 生成AIに聞いたソースコードを環境に貼り付ける
1. 作成したABC記譜法の譜面を貼り付ける
1. 各パート分、実行
1. 作曲環境に入れてみる。(テンポ等もPythonでの数値計算を効率化する
#### NumPyとは?
NumPy(Numerical Python)は、Pythonで数値計算を行うためのライブラリです。
多次元配列(ndarray)を扱い、高速な計算を可能にします。
データ解析、機械学習、科学技術計算など、多くの分野で利用されています。#### NumPyのインストール
以下のコマンドを実行することで、NumPyをインストールできます。
“`bash
pip install numpy
“`#### NumPyの基本操作
次に、NumPyの基本的な操作をいくつか紹介します。
##### 1. NumPyのインポート
NumPyを使用するためには、まずライブラリをインポートする必要があります。
一般的には`np`という名前でインポートします。“`python
import numpy as np
“`##### 2. 配列の作成
NumPyでは、リストやタプルを使って配列を作成できます。
“`python
# リストから1次元配列を作成
a = np.array([1, 2, 3, 4, 5])
print(a)#
本試験。ChatGPT-3.5先生へ。太郎さんと花子さんの会話形式に変換「2024 大学入学共通テスト 本試験 数学I/数学IA【1】[1]」(回答抜粋)
**???会話ありに、まとめて会話???**
深入りは、やめておきます。# オリジナル
・大学入試数学問題集成 様>**本試験【1】[1]** テキストhttps://mathexamtest.web.fc2.com/2024/202410000/2024100000100mj.html
# 会話への変換の実行
・ページのソースを表示です。MathMLです。
省略しようと思いましたが、大学入試数学問題集成 様 の全文から必要部分の抜粋です。“`
2024 大学入学共通テスト 本試
易□ 並□ 難□
仕事で時系列予測の依頼が急に増えたので、誰でも簡単に予測→ダウンロードができるようなアプリを作ってくれとChatGPTに聞いたら作ってくれました
マウス操作でドラッグアンドドロップによるデータ読み込みと予測結果のダウンロードができるようにと簡便さを重視させました。
#### 制約
– 仕事場の需要がほぼ月次予測なので使用データは月次対応
– 手法は古典的な指数平滑化とその拡張(Holt, Holt Winters)のみ
– パラメータ調整はトレンド項、季節項の有無と予測期間だけ
– input用CSVの日付はYYYY/MM/DD形式の表示が前提#### code
“`app.py
import streamlit as st
import pandas as pd
from statsmodels.tsa.holtwinters import ExponentialSmoothing
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib.dates import DGremlinクエリ言語を使う為の設定とGremlinクエリ言語の使い方をまとめた
# 概要
グラフデータを扱う機会があり、`Gremlin`クエリ言語にて、グラフDBの操作を行なっております。私の主観ですが、使用頻度が高いと思われる`Gremlin`クエリ言語をまとめます。# 環境
– グラフDBは、`Amazon Nputune`を使用
– `Gremlin`クエリは、`Python`から`Apache TinkerPop`の`Gremlin-Python`ライブラリをインストールして操作
– `Jupyter notebook`を使用して、グラフデータの操作、可視化を行なっている
– `Amazon SageMaker`を使用して、`Jupyter notebook`の環境を立ち上げた# 設定の確認
## ステータスの確認
“`py
%status# 出力内容
# 下記が表示されていれば、正常に動作している
‘status’: ‘healthy’
“`## 接続しているDBの情報の確認
:::note warn
私の環境では、Amazon Nputuneに接続している為、Nputuneの接続情報が記載されております
:::
“`py【Python】初心者でも悩まずにできちゃうSlack連携してメッセージ通知
## はじめに
最近Pythonに触れていないのですがぴちぴちの初学者時代に、Slackと連携してPythonスクリプトに記載した内容をメッセージ通知できたら何かに使えそうだな~と思い、調べて実践してみた記録です。
たしか[こちらのサイト](https://shikaku-mafia.com/from-python-to-slack/)を参考にした記憶があるので、載せておきます。Slackにインテグレーション機能を追加したら簡単にできるので、是非試してみてください。
:::note warn
Slackにインテグレーション機能を追加するにあたって、ワークスペース管理者に承認してもらう必要があります。
:::## 設定方法
### 1. Slackでインテグレーション機能の設定
“**Incoming Webhook**“を使用します。
設定は[こちら](https://my.slack.com/services/new/incoming-webhook/)から行います。![image.png](https://qiita-
Pythonのライブラリを作成してPyPIに公開する方法:stringutils-happyの紹介
# はじめに
Pythonのライブラリを作成し、PyPIに公開することは、自分のコードを他の開発者と共有し、再利用性を高めるための素晴らしい方法です。
本記事では、私が作成した文字列操作ライブラリ「`stringutils-happy`」を例に、Pythonのライブラリをゼロから作成し、PyPIに公開する手順を解説します。:::note alert
同じライブラリ名は権限がないとPyPIにアップできないので自分の決めたフォルダ名で作成するようにして下さい!
:::# ライブラリの概要
`stringutils-happy`は、文字列操作に関するいくつかの便利な関数を提供するシンプルなライブラリです。このライブラリには以下の機能が含まれています:
– 文字列を逆にする関数
– 文字列の大文字小文字を反転する関数
– 文字列の単語をカウントする関数# 環境の準備
まず、Pythonの仮想環境を作成します。仮想環境は、プロジェクトごとに異なるパッケージを管理するために使用します。:::note warn
ここのフォルダは適宜置き換えて下さい。
:::“`bash
$ mLangChain(Python)のPrompt基本使い方
いつも適当にLangChainのプロンプトを使っていたので、少し整理してみました。似たようなクラスも多いので頭の中がすっきりしました。
# 使用例
## 基本
一番基本的な使い方かと思います。`system`にLLMの役割を記述して、`human`にはLLMに投げかけるプロンプトを書きます。“`python
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model=”gpt-3.5-turbo-0125″)
messages = [
(“system”, “You are a helpful assistant”),
(“human”, “Hi”)
]
response = llm.invoke(messages)
print(response.content)
“`“`terminal: print(response.content)
Hello! How can I assist you today?
“`たまに`human`ではなく以下のように`user`と書いてあるのも見
Logfire🔥を使ってPythonアプリケーションでObservabilityを体験する
# はじめに
近年、クラウドネイティブな分散システムの構築・運用が一般化されつつあり、それに伴い可観測性(Observability)というワードが注目を集めていると思います。分散システムに限らずですが、特にシステムが巨大になるにつれてパフォーマンスの問題やエラーが発生した際にどこが原因なのかを特定するのが困難になりがちです。
それらの問題が発生した際に迅速に原因を特定し対処するためには、アプリケーションやシステムの内部動作を可視化することが極めて重要です。
具体的には、Observabilityの3つの柱と呼ばれている以下のテレメトリデータを収集し、可視化することが重要です。
– ログ
– アプリケーションの実行結果やエラーの詳細を記録するもの
– メトリクス
– システムのパフォーマンスやリソース使用状況を統計情報として記録するもの
– トレース
– システム内での処理の流れ(いつ、どこで、なにが起きたのか)を時系列で記録するもの## 本記事の内容について
先日、Pydanticのリポジトリを眺めていたところ、PythonアプリケーションのテレメトリデータPython での getter/setter の書き方 3 選
## まえがき
私が資格取得もかねて Python の基礎知識を見直していたところ、Python の getter/setter にはいろいろ書き方があることを知りました。業務で 1 年半 Python を書いてきて「もう使いこなしているぞ」という段階においてです。
プログラミング経験者で他の言語を習得しようとするときには、概念だけを知っている状態でとりあえず実装してみようとなる人もいますが、このときに、習得しようとしている言語にもっと便利な書き方があることに気付かず、すでに知っている言語と同じような書き方で終わってしまうことがあります。
備忘録を兼ねつつ、Python を学習中の方にも、すでに習得しているという方にも知っていてほしいと思ったので、今回の記事を書くことにします。
## 前提
この記事では、getter/setter の概念は習得済みであるとします。
deleter については省略します。
また、getter/setter の是非論については扱いません。## Python での getter/setter の書き方
:::note info
今回、pythonは4300桁しかprintできない
pythonは3になってから整数は桁数に制限がありません
“`bash
$ python3
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> a = (10 ** 10000) * (10 ** 10000)
>>> type(a)
>>> a / (10 ** 20000)
1.0
>>>
“`
除算は最後実数になっちゃうけど、計算は出来ています。言語のおかげで放っておいても整数計算なら桁数無制限というのは頼もしい限りです。しかしprintなど文字列にする場合には制限があります。
“`bash
$ python3
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type “help”, “copyright”, “credits”【Python】便利なenumerate関数の使い方
# はじめに
本記事ではPythonの enumerate() 関数の使い方について紹介します。# enumerate関数とは?
enumerate() 関数はリストなどのイテラブルなものをループ処理する際に、要素のインデックスと値を同時に取得する事が可能な関数です。https://docs.python.org/ja/3/library/functions.html#enumerate
# 使用例1(インデックスと値を同時に取得する)
以下のようにenumerate()関数を使うことで、リスト要素とそのインデックスを取得できます。
“`python:main.py
fruits_list = [‘apple’, ‘banana’, ‘orange’]for index, value in enumerate(fruits_list):
print(f’インデックス: {index}, 値: {value}’)
“`上記のソースを実行すると次のように出力されます。
“`:出力
インデックス: 0, 値: apple
インデックス: 1, 値: b【Python】python-dotenvを使用し環境変数を読み込む
# はじめに
外部に公開したくないAPIキーなどの情報はgit管理の対象から外し、`.env`ファイルに記載した環境変数として使用したいです。# 環境
Python 3.12.2# モジュールのインストール
次のコマンドでインストールします。
“`
pip install python-dotenv
“`https://pypi.org/project/python-dotenv/
# envファイルの準備
サンプルとして次のように`SAMPLE_KEY`を記載した`.env`ファイルを準備します。
“`:.env
SAMPLE_KEY=’hello_test_key’
“`# .envファイルをgit管理の対象から外す
`.env`ファイルはgit管理の対象としたくないので、次のように`.gitignore`ファイルを作成する。“`:.gitignore
.env
“`# envファイルの読み込み
“`python:main.py
# dotenvの読み込み
from dotenv import load_dotenv
impo【Python】json.dumps() でJSON形式に変換する方法
# はじめに
本記事ではPythonの enumerate() 関数の使い方について紹介します。
# 環境
Python 3.12.2# json.dumps()とは?
json.dumps()はPPythonの標準ライブラリであるjsonモジュールに含まれる関数で、データ構造をJSON形式に変換するために使用できる。https://docs.python.org/ja/3/library/json.html
# 使用例1(JSON形式に変換)
辞書型のオブジェクトをJSON形式の文字列に変換します。
“`python:main.py
import json# 辞書型のオブジェクト
data = {
“name”: “tarou”,
“hobby”: “baseball”,
“city”: “tokyo”
}# JSON形式の文字列に変換
json_string = json.dumps(data)print(json_string)
“`上記のソースを実行すると次のように出力されます。
“`:ログ
{“name”: “Qiita APIを使用し過去に自分が書いた記事一覧情報を取得する
# はじめに
本記事では、Qiita APIを使用して、自分が書いた記事の一覧を取得し、それをJSON形式で出力する方法についてまとめてます。# 対象の方
– Qiita Apiを叩いて自分が書いた記事一覧を取得したい方
– Qiita Apiを触ってみたい方
– タイトルが気になった方# 本記事のゴール
以下のように自分が作成した記事のタイトル、作成日時、リンクの一覧をJSON形式で出力する。“`json:qiita_articles.json
[
{
“title”: “記事のタイトル”,
“created_at”: “記事の作成日時”,
“url”: “記事のリンク”
},
{
“title”: “記事のタイトル”,
“created_at”: “記事の作成日時”,
“url”: “記事のリンク”
},
{
“title”: “記事のタイトル”,
“created_at”: “記事の作成日時”,【備忘録】SHAPのexplainerのパラメータによって結果が変わってしまう with chatgpt4o
# SHAPについての簡単な説明
SHAPは学習済み機械学習モデルの解釈を行うための指標のひとつで、協力ゲーム理論のシャープレイ値の考え方を用いて、モデルの予測した値に対して、「特徴量がどのように寄与して算出されたのか」を示す値となっています。
ジニ係数やgain(目的変数の減少)などで求める特徴量重要度はモデル1つに対し1組だけ定まる値となっていますが、SHAPはモデルと1つのデータサンプルについて定まる値であり、ひとつひとつのサンプルについて考察を行うことができる点で便利な方法となっています。
Pythonのライブラリが存在しており、簡単に算出できる値となっています。実装については以下の記事が参考になります。## 直面した問題
先日、改めてSHAPのドキュメントを見返していたところ自分が使っているTreeExplainerモジュールのパラメータにdataという引数があることに気がつきました。デフォルトの設定では「data = None」となっており、自身のコードでも特に設定はしておらずそのままになっていました。
そこで試しに、dataに訓練データやテストデータを入れてSHAPの関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた