- 1. 【2023年】プロ野球のセリーグの戦績でデータ分析
- 2. Deep Learningフレームワークを作ってみたお話
- 3. Python と Java と Go と Node.js と PHP と Rupy のサポート状況について (2023.10)
- 4. ChatGPT で Python プログラミング ケーススタディ:拡散モデル と デノイジングオートエンコーダ
- 5. 【Python in Excel】Excelで機械学習ができる!
- 6. Poetry を始める
- 7. UiPath Document UnderstandingをPythonなどの外部から利用する方法
- 8. 【強化学習】DreamerV2を解説・実装
- 9. 立方体を平面で切った場合にできる断面図
- 10. FastAPIで非同期処理を理解する -FastAPIで安直にasyncしてはいけない-
- 11. ラプラス変換で積分方程式に挑戦「(6-2)オンデマンド動画・2020年度東北大学工学部」をChatGPTとWolframAlphaとsympyでやってみたい。
- 12. Djangoでアプリ開発〜超絶初級編〜
- 13. 便利な小ネタ集(Python編)
- 14. Seaborn heatmapのLogスケール設定時にカラーマップ範囲を設定する
- 15. Amazon BedrockをPythonスクリプトから利用してみた
- 16. Pythonで年内通算日を計算したい(年跨ぎもあるよ)
- 17. 辞書(dict型)でkey指定で値を取得するのとget()メソッドを使うのは何が違うのか【Python】
- 18. 【Python3.9】Pyintallerでコンパイルされた.pyファイルをデコンパイルする方法
- 19. OpenAPIを用いてSwitchbot Hubのデータを取得するAPIを実装する
- 20. TypeError: datetime64 type does not support sum operations の対応方法
【2023年】プロ野球のセリーグの戦績でデータ分析
# はじめに
セリーグの2023年レギュラーシーズンが終わり、優勝は阪神タイガース。2位は広島東洋カープ、3位は横浜DeNAベイスターズとなりました。
今年のセリーグは岡田監督が復帰初年度で阪神を久しぶりの優勝に導き、カープの新監督は、シーズン前に評論家の順位予想がBクラスでしたが、それに負けず「家族」をテーマに2位、DeNAは新外国人のバウアー(YouTuber)選手が2桁勝利を挙げ、侍ジャパンの牧選手が打点王を獲得するなどして2年連続Aクラス入りしました。ここで今季の順位表をスポナビさんから拝借させていただきます
https://baseball.yahoo.co.jp/npb/standings/detail/1 から引用|順位 |チーム名|勝利 |敗戦 |引分 |勝率 |勝差 |得点 |失点 |本塁打 |盗塁 |打率 |防御率 |失策|
|—|—|—|—|—|—|—|—|—|—|—|—|—|—|
|1 |阪神|85 |53 |5 |.616 |優勝 |555 |424 |84 |79 |.247 |2.66 |85
Deep Learningフレームワークを作ってみたお話
こんにちは、お読みいただきありがとうございます。
少しだけ最初はフレームワークを作るまでの経緯を書いています。
「お前の話なんてどうでもいいからソースコードを見せろや」という人は「ついに完成」のパートまで飛ばして進んでくださいな。# ディープラーニングの勉強
エンジニアを始めて早3年、そろそろ自分の専門分野・得意分野を作らねば、と思い立ってDeep Learningを今年6月から勉強し始めました。
ただ、僕が勉強したかったのはDeep Learning(Neural Network)の仕組みであったのに対して、世の中にあるほとんどの学習マテリアルは既存のフレームワークを扱うためのものだったのです。ネットで`機械学習 スクラッチ`や`Neural Network 1から作る`などと、小さな子供のような検索を毎日のようにしていました。
もちろん、このニーズを満たすページはあるにはありましたが、どれも前提知識が高く要求されていたりして当時の僕にとってはもはやちんぷんかんぷんで「何言ってんだコイツ」状態になっていたのでした。# 良書との出会い
そんな中で僕にとっての良書、いや、神書
Python と Java と Go と Node.js と PHP と Rupy のサポート状況について (2023.10)
オープンソース系のプログラム言語のセキュリティサポートの期限をまとめました。他の方の参考になれば幸いです。
# Python のサポート状況
サポートが有効な Python のバージョンは **Python 3.8, 3.9, 3.10, 3.11, 3.12** です。
3.8 は1年以内にサポート終了の予定です。|バージョン系列|最新バージョン|リリース日|バグ修正の対応期間|セキュリティ修正の対応期間|
|—|—|—|—|—|
|**Python 3.12**|3.12.0|[2023年10月2日](https://peps.python.org/pep-0693/)|[**サポート内**](https://peps.python.org/pep-0693/#bugfix-releases)|[**2028年10月**](https://peps.python.org/pep-0693/#lifespan)|
|**Python 3.11**|3.11.6|[2022年10月24日](https://peps.python.org/pep-0664/#
ChatGPT で Python プログラミング ケーススタディ:拡散モデル と デノイジングオートエンコーダ
「ChatGPT で Python プログラミング ケーススタディ」、今回は、生成モデルとして最近注目されている拡散モデルについて、ChatGPTと雑談してみました。それでは、お楽しみください。
### **user**:
拡散モデルを理解するためのPythonコードを書いてください。その際に、コード中の説明を可能な限り詳しく書いてください。
—
### **assistant**:
以下のコードは、1次元的な拡散モデルの簡単な例を示しています。それぞれの時点での粒子の分布を示す数値配列を用意し、各粒子が隣接する場所にランダムに移動するシミュレーションを行っています。
“`python
import numpy as np
import matplotlib.pyplot as plt# 粒子の数
n_particles = 1000# ステップ数
n_steps = 100# 初期位置の配列を作成する。
# 全粒子は最初は位置0にあると仮定します。
positions = np.zeros(n_particles)# 各ステップでの粒子の位置を保存す
【Python in Excel】Excelで機械学習ができる!
2023年8月にPython in Excelが発表されました。
これにより、Excelでscikit-learnやpandas(Pythonのライブラリ)を使うことができ、簡単に機械学習を実装できるようになりました。なので今回は機械学習においてHello World!の位置づけ(入門者向け)にある**アヤメの分類**をやっていきたいと思います。
## 動画Ver
YouTubeにこの記事の内容を動画にしたものがあります。
動画で流れを確認したい方はこちらをご活用ください。
Poetry を始める
Poetry を使ってみよう。
# Poetry をインストール
[これ](https://python-poetry.org/docs/) に従う。
# Poetry をはじめる前に Python の仮想環境をつくる
Poetry も仮想環境を作る機能を持つが、ここではそうさせない。というのも、例えば docker の中で Poetry を使おうとする場合は container の持つ Python をそのまま利用するケースもあるので、それを想定して Poetry の外部に Python がある状態でやる。
開発環境を整えるときなんかは、以下の手順がそのまま使えるだろう。
以下、ローカルに python3.11 がインストールされていることが前提。
“`bash
# 仮想環境を作る
python3 -m venv .venv# activate
source .venv/bin/activate
“`# Poetry をはじめる
プロジェクトを一から始める場合は、以下のコマンドで始める。
“`bash
poetry init
“`こうすると、 `
UiPath Document UnderstandingをPythonなどの外部から利用する方法
今回はUiPathのDocument Understandingを外部プログラムから使用する方法を解説します。
例えば、UiPathが提供している日本語のAI-OCR処理をPythonから使いたい場合などです。Pythonなどの外部プログラムからDocument Understandingのデジタル化などの処理を実行したい場合には、次の3つのステップが必要です。
・外部アプリケーションの登録
・Document Understandingプロジェクトの作成
・呼び出し::: note
Studioのアクティビティから呼び出す場合には認証などが自動的に行われますので、エンドポイント等を指定するだけで簡単に実行可能です。
:::## 外部アプリケーションの登録
Automation Cloudの管理画面にアクセスします。
外部アプリケーション登録を行うため、External applicationページをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577
【強化学習】DreamerV2を解説・実装
この記事は自作している[強化学習フレームワーク](https://qiita.com/pocokhc/items/a2f1ba993c79fdbd4b4d)の解説記事です。
https://github.com/pocokhc/simple_distributed_rl
前:[Dreamer](https://qiita.com/pocokhc/items/9d69ab60a97ab73ae18d)
# DreamerV2
WorldModelシリーズのモデルベース強化学習は面白いアプローチですが、モデルフリー強化学習と比べると特にAtari環境ではパフォーマンスに難がある状況でした。
![ss1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396150/c9631739-ce99-4dd6-6480-baba9cac37f1.jpeg)
(図は論文より引用)DreamerV2はDreamerを改良し、Atari環境において人間レベルやRainbowよりも高いパフォーマンスを実現した手
立方体を平面で切った場合にできる断面図
“`python
import numpy as np
from mpl_toolkits.mplot3d.art3d import Poly3DCollection, Line3DCollection
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.art3d as art3dtList = [0, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5, 2.75, 3.0]
axList = []
for i, t in enumerate(tList):if 0 <= t and t <=1: points = np.array([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0],
FastAPIで非同期処理を理解する -FastAPIで安直にasyncしてはいけない-
## 自己紹介
初カキコども
**医師でエンジニア?もどきのikora**です`python`については今まで趣味程度しか触ったことがなく、また`FastAPI`をこの一ヶ月前くらいから触り始めました。
エンジニアの方々にとっては当たり前の`非同期処理`というものについてあまり理解できてなかったので、FastAPIの挙動と共に理解しようということで忘備録的に書きました。
一応後半では、真面目に実験しているのでなにかの参考になるかなと思います。
素人に毛が生えたようなものなので、もし間違い等あったら優しめにご指摘いただくと嬉しいです☺️
始めての技術記事で拙いかもしれませんが、参考になりましたら幸いです。## まず結論
FastAPIのマルチタスク性能・高速性は非同期処理によって実現されている
従ってAPI Endpoint配下の関数(パスオペレーション関数)の書き方で速さが変わり
**非同期処理 >>> 同期処理 >>>>>>>> 非同期定義 + 同期処理(async-lock)**
となる
## 前提
FastAPIは `Go` や`Node.js`
ラプラス変換で積分方程式に挑戦「(6-2)オンデマンド動画・2020年度東北大学工学部」をChatGPTとWolframAlphaとsympyでやってみたい。
– **パイソニスタ?の方へ教えて下さい。。アドバイスをいただけると助かります。**
**①与式(多項式?)を+ーで分割する方法を教えて下さい。。xの有無で分けたいです。**
**②小数を分数に変換したいです。0.16666666666666666 →1/6**オリジナル
>微分積分。両方混ざったとしても、ラプラス変換で計算することができます。(9:00)
>畳み込み積分があったとしても..cosとsinの…(9:04)
>留数定理をだすことができます。 (8:44)???
**???私は、微分「サンビックリ」からです。???**# ChatGPT-3.5先生へ(**???できませんでした。???**)
“`
f'(t)-Integral(cos(t-s)*f(s),(s,0,t))=1
“`
(省略)
“`
積分方程式
f'(t)-Integral(cos(t-s)*f(s),(s,0,t))=1
“`
…ただし、与えられた積分方程式は一般的に簡単に解ける形ではありません。…
“`
Djangoでアプリ開発〜超絶初級編〜
## Django使える人かっこいい
ということでお勉強。
まずは開発できる環境を作りたい。### 開発用サーバーを立ち上げる
以下の魔法の言葉をターミナルに書き込む。
“`django
django-admin startproject フォルダー名
“`
これにより今いるディレクトリ下に任意のフォルダーを作ることができる。今回はやるべきゲームが溜まりすぎているのでそれを管理するアプリでも作りたいなと考えている。
中身は以下のようになっている。便利だね。
“`
todo_game/
├── manage.py
└── todo_game
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
“`続いて言語とタイムゾーンを日本にする。
“`django
LANGUAGE_CODE = “ja”TIME_ZONE = “Asia/Tokyo”
“`マイグレーションファイルをデータベースに適用するための操作を行う。デフォルトはSQLi
便利な小ネタ集(Python編)
# はじめに
ソフト作るときに地味にストレスなのが– この程度の機能の実装に時間をかけたくない
– メモっていたけどどこに置いたか忘れた(探すのめんど)です。
これらを解消したいので何度も使いそうなプログラム部品を記録しておきます。
Python編です。# 部品たち
それでは早速便利な部品たちを載せていきます。
## モジュールログをファイルに出力
“`python
### ログ #################
import os
import logging
import logging.handlers
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# loggerのフォーマット、出力先ファイルを定義
log_dir = fr”./log/”
os.makedirs(log_dir, exist_ok=True)
formatter = logging.Formatter(‘%(asctime)s – %(levelname)s:%(name)s – %(message)s
Seaborn heatmapのLogスケール設定時にカラーマップ範囲を設定する
# 結論
LogNormのvmin/vmax引数を与えてやればOK
“`python
sns.heatmap(data, norm=matplotlib.colors.LogNorm(vmin=0, vmin=10))
“`# NGだったこと
heatmap内の引数にvmax, vminを渡しても, LogNorm()の方の範囲が優先されるっぽいので, 反応しない
“`python
sns.heatmap(data, norm=matplotlib.colors.LogNorm(), vmin=0, vmin=10)
“`おわり
Amazon BedrockをPythonスクリプトから利用してみた
# はじめに
こんにちは、はやぴー(@HayaP)です。
ついに、Amazon BedrockがGAされましたね!
東京リージョンでも、一部のモデルが使用可能になりました。今回はPythonスクリプトでAmazon Bedrockを利用してみます。
理由として、Lambdaから実行するケースや、Webアプリケーションに組み込むケースが多そうだなぁと感じているからです。(Lambdaで実行するハンズオンは別で記事を書く予定です)# 対象読者
– Amazon Bedrockに興味がある方
– Pythonスクリプトで、Amazon Bedrockを利用したい方
– AWS Lambdaでの実装を考えている方(Lambdaのハンズオンではありません)# TL;DR (忙しい人用)
– Amazon Bedrockは、モデル毎に(マネージメントコンソールなどで)初期設定が必要
– Boto3を使えば、比較的簡単に実装できる(基本コピペでOK)
– Claude系は、全リージョン共通で許可制(現時点)
– 東京リージョンで使えるモデルは、us-east-1と比べてまだまだ少な
Pythonで年内通算日を計算したい(年跨ぎもあるよ)
Pythonで年内通算日(年間通算日)を求めるのに、書式コードを探すのにちょっと時間がかかったので計算方法も合わせてメモしておく。
## 基本
まずは単純にその年の通算日を求めます。### strftime() と strptime() の書式コードは%j
↓ここを参照
https://docs.python.org/ja/3/library/datetime.html#strftime-and-strptime-format-codes`strftime(‘%j’)`で変換すると0埋めした3桁の通算日が返却されます。
もちろんint()で数値化可能。“`python:test1.py
import datetimedef calc():
day = datetime.date(2023, 4, 1)
total_day = day.strftime(‘%j’)print(f’2023/04/01の通算日 = {total_day}’)
total_int = int(total_day)
print(f’intで扱う
辞書(dict型)でkey指定で値を取得するのとget()メソッドを使うのは何が違うのか【Python】
Pythonのコード改修をしていて`dict.get(‘key3’).get(key3f)`のような記述があり、「なんでや!`dict[‘key3’][‘key3f’]`でええやろ!`.get`の4文字余分やろ!」と思ったので、なぜこういったコーディングになるのかの理由を調べた。
# 結論
keyで指定すると`KeyError`になりエラーハンドリングしていない場合は途中終了するが、`get()`の場合は`None`が返ってくるため、場合によっては途中終了しない。>##### get(key[, default])
>Return the value for key if key is in the dictionary, else default. If default is not given, it defaults to None, so that this method never raises a KeyError.([公式ドキュメント](https://docs.python.org/3.12/library/stdtypes.html#mapping-type
【Python3.9】Pyintallerでコンパイルされた.pyファイルをデコンパイルする方法
## Python3.9をデコンパイルする方法がわからない
Python3.9でコンパイルされたexeファイルをコードに戻す方法が見当たらない!
そんな悩みを抱えた私がひたすら調べたこと・成功した方法をまとめていく## 方法
### pyinstxtractorをダウンロードしよう
下記のGithubからzip形式でダウンロードし解凍しておいてください
https://github.com/WithSecureLabs/python-exe-unpacker### exeファイルを展開しよう
先ほどダウンロードしたファイル内から「pyinstxtractor.py」を見つけてください。
そのファイルを使って展開します。
“`cmd:cmd
>>cd “pyinstxtractorのカレントディレクトリのパス”
>>python pyinstxtractor.py “展開したいexeファイルのパス”
“`
実行して「You can now use a python decompiler on the pyc files within the extracted directo
OpenAPIを用いてSwitchbot Hubのデータを取得するAPIを実装する
### はじめに
[OpenAPI](https://www.openapis.org)はAPI実装における標準化された手法の一つです。本記事では、Switchbotのスマート家電からデータを取得するAPIをOpenAPIを用いて実装し、取得したデータを表示する方法を紹介いたします。
#### 使用した環境:
– リモート環境(Ubuntu 20.04)
– Docker version 24.0.5
– openapitools/openapi-generator-cli
– Python 3.8.10:
– streamlit
– numpy
– matplotlibまた、データ取得をするスマート家電として、自宅においてある **Switchbot Hub 2** を用いました。
https://www.amazon.co.jp/sspa/click?ie=UTF8&spc=MTo1MjAzODA3MjIxMTcwNjQyOjE2OTY0OTc5MzI6c3BfYXRmOjEyODg0ODA1NTk5ODo6MDo6&url=%2
TypeError: datetime64 type does not support sum operations の対応方法
### これをやったらエラーが出た
“`python
join_data.dtypes
“`実行結果
“`
detail_id int64
transaction_id object
item_id object
quantity int64
payment_date object
customer_id object
customer_name object
registration_date object
customer_name_kana object
email object
gender object
age int64
birth object
pref object
item_name object
item_