- 1. Python 機械学習プログラミング [PyTorch & scikit-learn編] 日記
- 2. 初心者Kagglerが初コンペに参加してみた。
- 3. ChatGPTにコードを書かせてみた。
- 4. pythonのdockerでeccodesのv28のpygribを使って気象庁のgrib2から気温と日射量を取り出したメモ
- 5. 【Python】絶対パスを環境変数へ置き換える
- 6. 【Splatoon3】ナワバトラーのスペシャルマスの発火表を作る
- 7. pythonモジュールの関数をコマンドプロンプトで出力する
- 8. 【AWS】AWS Lambdaで外部モジュール(ライブラリ)を含むPythonをzipデブロイする方法
- 9. PyhonでChatGPTのLineBotを作る
- 10. 会社の業務効率化を図る試作1号機
- 11. Pythonコース2周目の世界線1
- 12. 【decodeJWT(無料)】JWT decode API【JSON Web Tokens decoder】
- 13. 【Python】TwitchAPIを使用して任意ゲームの視聴者数が多い上位5人のデータをCSV出力する
- 14. 【Python】isinstanceをmatch/caseに置き換える
- 15. Pythonの勉強がてらDjango,PokeAPIでポケモンを並べる
- 16. Djangoフレームワークのメリット・デメリット
- 17. 研究室の議事録作成を自動化した話
- 18. CoreServer V2 にpython を入れる!【Flaskとコアサーバー】
- 19. 5分で紹介「退屈なことはPythonにやらせよう」
- 20. RouteTableにprefixlistを登録する方法① boto3編
Python 機械学習プログラミング [PyTorch & scikit-learn編] 日記
[試し書き] 現役大学生による春休み期間の学習日記
初心者Kagglerが初コンペに参加してみた。
超初心者Kagglerが
GoDaddy – Microbusiness Density Forecasting
に参加してみたので感想を書いてみました。成績は= 3,318 teams 参加で、2991位です。。。
![reygfgff.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3088680/6fd73ec8-9555-2955-ecd4-ef4c8ce663f2.png)
# コンペの内容は?
コンペティションの目標
このコンペティションの目的は、ある地域の月別マイクロビジネス密度を予測することです。あなたは、米国の郡レベルのデータで訓練された正確なモデルを開発することになります。あなたの仕事は、政策立案者がマイクロビジネス(非常に小規模な事業体の増加傾向)を可視化するのに役立つでしょう。追加された情報は、これらの小規模ビジネスの成功と影響を改善するための新しい政策やプログラムを可能にします。
https://www.kaggle.com/competitions/godad
ChatGPTにコードを書かせてみた。
# はじめに
ChatGPTはコードも生成できますので、人間がだいたいの指示を与えて、ChatGPTにコードを書かせて実行すればよいのではないかと考え、試してみました。# やること
「この文章を出力するコードはChatGPTが書きました」というコードを問い合わせるコードをコード内に設けて、ChatGPTから回答があったコードを実行するというコードを作成します。# プログラム
ChatGPTのAPIを使用します。メッセージは、{“role”: “user”, “content”: “「この文章を出力するコードはChatGPTが書きました」という文を出力するコードを教えてください。コードのみの記載で結構です。”}]としました。
「コードのみの記載で結構です。」と一言加えませんと、余計な文章も生成され、エラーとなりました。
“`python
# パッケージのインストール
! pip install openai
import openai
#import os# Google Driveに接続する
from google.colab import drive
drive.
pythonのdockerでeccodesのv28のpygribを使って気象庁のgrib2から気温と日射量を取り出したメモ
## 概要
気象庁のデータを読んでみたかった。
[ソース](https://github.com/hibohiboo/aws-cdk-v2/tree/master/docker-python)pygribについては[pygribで気象庁の数値予報GPVデータを読み込む](https://predora005.hatenablog.com/entry/2020/10/31/000000)、
eccodesについては[ecCodesに入ったGRIB2 Template 5.200/7.200サポートを用いてpygribで気象庁全国合成レーダーGPVを読む](https://zenn.dev/noritada/articles/grib2-template5_200-support-on-eccodes-pygrib)を参考にした。## フォルダ構成
“`
– docker-compose.yml
– eccodes
– Dockerfile
– src
– get-rad-tem.py
– grib2
– Z__C_RJTD_20171205000000_MSM
【Python】絶対パスを環境変数へ置き換える
## 前置き
何かと“`絶対パス→環境変数パス“`に、“`環境変数パス→絶対パス“`に変換する機会が多いのでメモ## 絶対パスから環境変数を含むパスへ
今回はRoamnigまでの絶対パスをターゲットとする
“`Python:target_pathを定義
import os
# APPDATAの絶対パスをターゲットに指定
user_name = os.path.expandvars(r”%USERNAME%”)
target_path = rf”C:\Users\{user_name}\AppData\Roaming”
“`
環境変数に合致した場合、変換したパスを返す
“`Python:convertEnvVar関数
def convertEnvVar(target_path, env_var=r”%HOMEDRIVE%%HOMEPATH%”):
env_path = os.path.abspath(os.path.expandvars(env_var))
if target_path.startswith(env_path):
resu
【Splatoon3】ナワバトラーのスペシャルマスの発火表を作る
## 要約
Splatoon3のナワバトラーの記事です。スペシャルマスを発火させる2枚のカードの組み合わせを列挙する作業を自動化しました。
発火表を作り、以下スプレッドシートに格納しました。
https://docs.google.com/spreadsheets/d/1zdpuMJ0PXy19cIg5Uyk4SbHwGMSueR0okNOW7_7ds0g/edit#gid=0## はじめに
#### ナワバトラーとは
Nintendo Switch専用ソフト”Splatoon3″内でプレイできるミニゲームです。公式紹介映像
[スプラトゥーン3 Direct 2022.8.10](https://youtu.be/lrGvap_lXno?t=954)#### 前提知識
##### スペシャルマス
ナワバトラーのカードに設定されているマスです。
(一部のカードを除き)、ほぼすべてのカードに1マス設定されています。スペシャルマスの周囲8マスを全て塗ると、
スペシャルマスの所有プレイヤーにスぺシェルポイントが+1加算されます。
(以降これを発火と呼びます)##
pythonモジュールの関数をコマンドプロンプトで出力する
# はじめに
以下のような人にとって便利だと思います(私です)
– 会社のWindows端末の縛りでjupyter notebookなどが使えない。
– 標準モジュールで何ができるかぱっとわかりたい。公式ドキュメントに行くほどのことでもない。
– dir()を叩くためにVScodeで開いているターミナルでpython3とわざわざ打って対話型に入っている。
– VScodeがいい感じの表示をしてくれない。# コード
“` d.py
import argparsedef main():
if args.os == True:
import os
d = dir(os)elif args.pandas == True:
import pandas
d = dir(pandas)else:
d = []d_fil = [x for x in d if x.islower() and not ‘__’ in x]
print(*d_fil, sep
【AWS】AWS Lambdaで外部モジュール(ライブラリ)を含むPythonをzipデブロイする方法
## 背景
– [AWS Lambda](https://aws.amazon.com/jp/lambda/)で`Python`を実行する際、[pandas](https://pandas.pydata.org/)などの外部ライブラリは`Lambda`に事前に`install`されていないため、いずれかの方法で`Lambda`に外部ライブラリ等を`install`させる必要があります。
– 私が知る限りでは、[AWS Lambda](https://aws.amazon.com/jp/lambda/)で`Python`を実行する際に、外部ライブラリを使用できるようにする方法は以下の3つです。
1. [Lambda レイヤー](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/invocation-layers.html)を使用する方法。
2. [zip デブロイ](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/python-package.html)を用いる方法。
PyhonでChatGPTのLineBotを作る
### TL;DR
流行りに乗ってChatGPT(本当はOPENAIのgpt-3.5-turboエンジン)のWebAPIをたたくLineBotを作る
ほぼ、下記記事の劣化焼き直し
https://zenn.dev/umi_mori/articles/chatgpt-api-python
https://chatgpt-lab.com/n/n55257c082a9d### OPENAIキーの発行方法
下記の通り。ただし、https://openai.com/api/はproductのページへリダイレクトされてしまう
https://platform.openai.com/account/api-keys などにアクセスする
https://zenn.dev/umi_mori/books/chatbot-chatgpt/viewer/how_to_use_openai_api#api%E3%81%AE%E7%99%BA%E8%A1%8C%E6%96%B9%E6%B3%95### LineDeveloper登録
下記などを参考にする。
https://chatgpt-lab.com/
会社の業務効率化を図る試作1号機
フルバーニアンではないです。システムです。(溢れ出るガノタ…)
今回の試作1号機は「「「画像をリサイズするシステム」」」です!!!!?
色々と商品画像を載せる際にバカでかい画像達を一つ一つリサイズしていく作業をしていた時、
「これまーじでしんどい」
って思ったやつがいました。僕です。
でもこれってPythonでまとめて一括処理できるのでは?と閃いたってわけです。
さっそくググるぜーって調べたらもうね、出てきましたよ。ナイスです???というわけで参考にさせていただいたサイト↓
https://opty-life.com/study/program/python/python-lecture-36/
習うより慣れろ精神で作っていくZE?
「Visual Studio Code」を使いました。import os
from PIL import Image
↑これでPIL(pillow)からImageをインポートする。※pillowはPythonの画像処理ライブラリbairitsu = 4
↑画像サイズの縮小倍率の定義。これで1/4サイズに。folder_a = “
Pythonコース2周目の世界線1
2周目の1日目:一通りProgateのPythonコースが1周終わったので今日から2周目やっていくぞ!!
◎復習兼メモ◎
リスト.append(値) ←[]じゃなくて()だゾ!!!
for文・・・「for 変数名 リスト:」
辞書・・・変数名 = {キー:値,キー:値,キー:値} ←[]じゃなくて{}※ややこしいけど覚えるんや…。
辞書の繰り返し処理・・・「for 変数名 in 辞書:」※for文けっこう間違えてるから要復習
while文・・・「while 条件式:」例えば「while x <= 100」みたいな感じ。条件式がFalseになるまで繰り返す。無限ループに注意!!特にインデントに気をつける。 ※forとwhileは「=」いらん ------------------------------------------------ 2周目Pythonコースの1と2が終了。思ったよりスムーズに解けた。ナイスってかライス? こうなってくるとコロンつけてなかったりインデント間違ってたりのケアレスミスがけっこう出てきたから気をつけること。 1周目と比べて答えを見な
【decodeJWT(無料)】JWT decode API【JSON Web Tokens decoder】
# Usage( 文法 )
“`bash
toekn=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
curl https://jwt.deno.dev/$token
“`# Example( 実行例 )
## ウラル?( URL )
[https://jwt.deno.dev/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c](https://jwt.deno.dev/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIi
【Python】TwitchAPIを使用して任意ゲームの視聴者数が多い上位5人のデータをCSV出力する
1.初めに
—
こんにちは。YoutubeやTwitchで配信しておりますアニメ、漫画、ゲーム、Vtuber大好きオタクのVtuber
久遠楽 (https://twitter.com/kuonraku0210) です。
今回は前回作成した視聴者上位のデータを取得するスクリプトを更新して取得したデータをCSV出力してデータを分析できるようにしたいと思います。前回
[Twitch APIをPythonで利用する(備忘録)](https://qiita.com/kuonraku0210/items/aaf4e69d3851a0dab471)2.実装
—
実際にコードを作成します。
基本的には前回のコードを一部修正という形です。***コード***
“`python:dataCsv.pt
#ツイッチAPIを使用して取得したデータをCSV出力する
from twitchAPI.twitch import Twitch
from twitchAPI.helper import first
import asyncio
import csvasync def twitch
【Python】isinstanceをmatch/caseに置き換える
## 概要
ある日、下記のような(めんどくさい)処理を書いていました。
“`python
# int型かstr型かfloat型かNoneか、よく分からない何かを受け取る
number: Optional[int | str | float] = GetHoge()
if number is None:
# Noneのときの処理
…
elif isinstance(number, int):
# int型のときの処理
…
elif isinstance(number, str):
# str型のときの処理
…
elif isinstance(number, float):
# float型のときの処理
…
else:
# ここに来ることは現時点で考えられない
raise TypeError
“`
設計が悪いと言えばそうなんだけど、もっと楽に書けないかな~って調べてたら「構造的パターンマッチング(match/case)」に行きついたので紹介します。## match/case とは
Pythonの勉強がてらDjango,PokeAPIでポケモンを並べる
# きっかけ
– 最近Excelで設計書を書く時、繰り返しを感じる(自動化したい)
– chatGPTが話題
等々の理由からPythonを学ぶでも文法の勉強は退屈、、
→ならフレームワークも含めてポートフォリオを作った方が面白いし覚えられる
という経緯# ネタ探し
特にネタが思いつかない時はAPIを使わん手は無いですね。イイ感じのAPIを探していたらポケモンのAPI(非公式)が有ったので早速使います。# フレームワーク探し
ネタは決まったので、フレームワークを探します。サクッと調べ、Flaskと迷いましたが、結局名前を聞いた事が有るDjangoにしました。# 捌いて行く
具材が揃ったので調理して行きます。とりあえずDjango Hello Worldまで進める
→ MTVという概念を学ぶ。今回はビジネスロジックを構築しない為、モデルは使わない。
ビュー内でロジックを完結し、テンプレートに出力します。
→ PokeAPIからのレスポンスを確認
→ デザインはBootstrapで整える程度に作ります
→ ロジックに関しては1匹のポケモンで表示が
Djangoフレームワークのメリット・デメリット
# Djangoフレームワークとは何か?
PythonのDjangoフレームワークは、Webアプリケーション開発のためのオープンソースのフレームワークです。Djangoは、MVT(モデル・ビュー・テンプレート)アーキテクチャを採用しています。
MVTについて、簡単にまとめると以下のようなイメージです。
### モデル(Model)
データベースとのやり取りを担当し、アプリケーションで扱うデータを表現します。モデルは、DjangoのORM(Object-Relational Mapping)によってデータベースとPythonのオブジェクトのマッピングを行います。データベースのテーブルに対応するモデルを作成することで、データベースとのやり取りを簡単に行うことができます。### ビュー(View)
ユーザーのアクセスに応じて、適切なデータを取得してテンプレートに渡す役割を担当します。ビューは、MVCアーキテクチャでいうところの「コントローラー(C)」に相当します。Djangoのビューは、関数ベースのビューとクラスベースのビューの両方が存在し、それぞれの特徴に合わせて使い分けることが
研究室の議事録作成を自動化した話
## 概要
私の研究室では毎週各班ごとにパワーポイントで資料を作ってゼミを行っています。
持ち回りで班員が議事録を書いています。
書いている内容としては– 最初のページの進捗
– 最後のページの今後の予定の二つだけでした.
私は「この単純作業いるのか?」と感じました。
資料を開いて、コピーしてペーストして、次の人の資料を開いて、コピーして…..という繰り返しです。
この作業をしていて思ったことは、「やりたくない」、「一々ファイルを開くのが面倒くさい」、「なんとなくプログラムで解決できるのでは?」と考えていました。
ということで、「自動化しよう!」決断し、自動化に踏み切りました。## 具体的に解決した課題
今回は3つのことを解決したいと考えていました。
1. メンバーの資料をコピペしていること
1. ゼミでの議論の内容を集中的に記録できていないこと
1. 先生だけが見る議事録になっていること### メンバーの資料をコピペしていること
基本的に最初のページに「進捗」、最後のページに「今後の予定」に沿ってゼミでの発表も行われています。
そのため、総括してまとめると
CoreServer V2 にpython を入れる!【Flaskとコアサーバー】
# 前置き
レンタルサーバーである、コアサーバーに、普通にpythonをインストールしようとすると、
“`sh
Permission denied: ‘/usr/local/lib/python3.6’
“`となってしまった。
デフォルトのpython を利用しようとすると、`pip`が使えなくて詰むので、どっちにしろ自分でpython入れなくちゃいけない。がんばろう。みんな。(正直、結構大変だったからVPS の方がいいと思う。今ならまだ間に合うよ!)
https://notemite.com/python/servers-for-python/
でもどうしてもやりたいんだったら、しゃーなし。一緒に頑張ろう?
# 解決策
?まずは、以下を参考にpython を入れる。
https://tech.any2.net/item/1849.html
?これも参考に。(自分の環境化ではうまくいかなかったけど)
https://touch-kun.net/2021/11/23/post-313/
その後、以下をチェック。
– [x] zshrc_profil
5分で紹介「退屈なことはPythonにやらせよう」
# 目次
**概要
個人的な感想
引用**# 概要
この本は**18章**と**4つの付録**から構成されています。この本の対象読者は**ノンプログラマー**であり、
この本を通して**Pyhonで単純作業をしてくれる便利なプログラム**が書けるようになることを目標としています。**さらにスキルを高めたい人**は章末の問題や付録の問題を解くことでスキルを高めることもできるようになっています。
この本の内容はまえがきに**Pythonの環境構築方法**が書かれており、
**1~6章**にかけて**Pyhtonの基礎の文法**などを学び**7~18章**にかけて今までの章で学んだことを使って**処理の自動化をするプログラミング**について学びます。
各章には**章末問題**がついていて知識の確認をすることもできるようになっています。
# 個人的な感想
この本を読んで**これからPythonを勉強したいがどう勉強すればいいのかわからない人**におすすめできる本だと思いました。なぜならこの本の対象読者は**高度なプログラミング技術を有する人**ではなく、**ノンプログラマ
RouteTableにprefixlistを登録する方法① boto3編
# 初めに
基本的にCloudFormationを使用してIaCを管理しているのですが、
なんと、、、
CloudFormationでは、PrefixlistをRouteTableに登録することができないとのこと。
参考:[AWS::EC2::Route support for DestinationPrefixListId](https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/572)CloudFormationでPrefixlistの作成はできるのに、RouteTableに登録できないなんて、、、と思っていても仕方ないので、
(実装時期も未定らしい。)
代案方法をまとめたいと思います。今回は、**boto3**になります。
:::note info
ちなみに、下記ツールならRouteTableにPrefixlistを登録することはできそうです。
– AWS CLI
– SDK
– boto3
– Terraform
:::### boto3とは?
>参考:Chat