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

Python関連のことを調べてみた2023年10月07日
目次

【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にこの記事の内容を動画にしたものがあります。
動画で流れを確認したい方はこちらをご活用ください。

# 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 datetime

def 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_

元記事を表示

OTHERカテゴリの最新記事