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

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

スプレッドシートでシートをコピペしてグラフを作る作業から逃れたかった話

## はじめに
みなさんは業務でグラフを作ることがありますか?
作るときどんなツールを使いますか?

おそらくスプレッドシートやExcelを使っているという方が多いのではと思います。
私も手軽に動的なグラフが作成できるので業務で時々使用していました。

## 今回の記事投稿のきっかけ
業務で定期的にデータを収集して、その結果をグラフ化することがあるのですが
毎時追加される大量のデータをグラフ化する際に、毎回データを貼り付けたりシートをコピーするのがめんどくさいなと思っていました。
Pythonのコードで自動化してJupyter NotebookやGoogle Colabで全てのセル実行するだけで毎回最新のグラフを作成できたらなぁ。。。と思っていたところPlotlyを使用したらできました。

## 結論
Jupyter Notebook上でデータを取得してPython&Plotlyで作成したコードのひな形をもとに様々な場面で活用されており、
無事スプレッドシートのシートコピペ作業から脱却できました。

ただし、スプレッドシートが全く使えないというわけではなく、
例えばある程度データの取得

元記事を表示

djangoチュートリアルがわからない人のための読むと勇気が出るポエム②-2 Django Database API と管理画面

[前回]()の続きですが、チュートリアルとはちょっと順番を変えてやっていきます。  
  
Djangoには、デフォルトで管理者用のインターフェースが用意されています。データベースに直接変更を加えたりするのに便利な機能です。

では最初に、adminとしてログインするためのユーザーを作成しましょう。こういう系のお願いごとは誰に願いするんでしたっけ。

“`
python manage.py createsuperuser
“`
そう、manage.py先輩でしたね。
ここでユーザーのemailアドレスやユーザー名、パスワードなどを入力していきます。(こういう勉強用に急に作ったパスワードとかって忘れがちなので、ほんとはよくないですが、.gitignoreとかで退避してパスワード用のファイルを作るのがおすすめ)
Superuser created successfully.
と出たらユーザー作成成功です。

# adminサイトを見てみよう
mysite/urls.pyを見返してください。作成したpollsのurlパターンのほかに、デフォルトでa

元記事を表示

AWS CDK(ver.2)PythonでS3の署名付きURLを取得する構成を実装してみました

AWS CDKを使ってS3の署名付きURLを取得するAPIを実装してみました。今回はアップロードとダウンロードの2パターンの署名付きURLを作成するAPIを実装しています。
署名付きURLについては、他の方が詳しく書かれていますので、そちらを参照ください。
[署名付き URLってなんだろ?](https://zenn.dev/mn87/articles/b447f9f4b11f7b)

全コードはGithubを参照してください。
[Githubはここ](https://github.com/ShinyaT1994/presigned-test.git)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660703/714f6bd2-116d-ce29-b8f9-ab053083de0b.png)

## 前提条件
– AWS CDK v.2 がインストールされていること
– Python 3.x がインストールされていること
– AWSアカウントがあり、AWS CLIが設定されている

元記事を表示

Google ColabでPythonの位置情報を扱えるライブラリGeoPandasが最初から入るようになった話

## 概要
GeoPandasはちょっとインストールが厄介なパッケージで、入門者がローカル環境に入れるのは結構しんどい(Windowsは特に)。でも、位置情報を扱うのに便利なパッケージなので、使いたい。紹介したい。でも、環境作成大変だし・・・ってのがありました。

それがGoogle Colabにプリインストールされて凄い便利になりました。実はちょっと前まで、GeoPandas以外のパーツまでそろっていたのに、GeoPandasは入っていない状態を見てなんでだろうな?と思っていたのですが、最近入ったようです。

その状況を疑問に思った私のツイート

pip listで確認するとあります。
![geopandas.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/85433/537cb062-fac3-ae74-575b-f2f234feae12.png)

## ちょっとした使い方の紹介

元記事を表示

開発ツールに頼らず 様々な言語から WebAssembly(第2回)

WebAssembly は多くのプログラム言語からライブラリの様に呼び出す事が出来る。
WebAssembly のコードを書く方法は多くの記事で書かれているが、その使い方はフレームワーク等のツールに頼っている事が多い様だ。
本記事では、そのような便利ツールに出来るだけ頼らず JavaScript, Rust, Python, Ruby から WebAssembly を実行する方法を記載する。

WebAssembly は新しい技術である。
目先の最先端ツールに飛びつくのもよいが、その基礎を学んで長く使える知識を身に着けないか?

本記事はシリーズの第2回である。シリーズ記事の一覧は [第1回] の **#シリーズ記事一覧** に載せている。シリーズの記事を追加する時は [第1回] の一覧を更新して通知を行うので興味の有る人は [第1回] をストックして欲しい。

# 本記事の概要と過去記事の復習

[第1回] では、最小限の WebAsseembly のコードとして「足し算を行う」関数を作成し、そのコードを実行する外部プログラムを JavaScript, Rust, Python,

元記事を表示

【ChatGPT】黒歴史ブログの文章を生成した

# やったこと
・友人の黒歴史ブログの文章をChatGPTに読ませた
・文章の特徴などについて,ChatGPTと一緒に考えた
・DiscordのBotに組み込み,APIから利用できるようにした

# 経緯
某ソシャゲのクラン用Discord鯖で,とあるメンバーのブログがネタにされていました.
10年以上前に書かれた,いわゆる中二病全開の文章が,とても味があり好評でした.
しかし,記事の数には限りがあり,すぐに消費し切ってしまいました.
そこで,味を長く楽しむため,似たような文章を生成することにしました.
気になる方は以下リンクからどうぞ.公開許可はもらっています.

http://maudamepo.blog84.fc2.com/

# できたもの
このような文章を書いてくれるbot
![chat1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3507224/f01c7b8c-be1e-5cd0-42b2-134e45c32d23.png)

# つくりかた
最終的にDiscordのBotからGPT-

元記事を表示

SECCON beginners ctf 2023でFormat String Bugを学ぶ

まえがき

 6月の3日4日に開催された、SECCON Beginners CTF 2023に参加しました。その後、復習しています。今回は、その中でもpwnableのForgot_Some_Exploitを題材にFormat String Bugについて勉強したので備忘録として投稿しようと思います。原理の点からflag取得のスクリプト作成まで行います。なにか間違いなどありましたらご指摘いただけると幸いです。

問題について

 問題は、前述したとおりSECCON Beginners CTF 2023で出題された、pwnableのForgot_Some_Exploitです。配られたファイルには、challという実行ファイルとそのソースコードであるsrc.cが入っていました。src.cを眺めると以下のような内容です。

“`diff_c
#include
#include
#include
#include

#define BUFSIZE 0x

元記事を表示

PythonでMisskeyのBotを作る

# はじめに

最近何かと話題のMisskeyですが、今回は有名なMisskey.pyではなく、MiPAというフレームワークを使ってBotを作ってみます。

## MiPAとは

MiPAは私自身が作成しているMisskey用のBotフレームワークで、特徴としてはDiscord.pyのコードを参考に作成しているため、Cogやイベント等の記述方法に類似点が多いため、Discord.pyの知識をそのまま活かせるところです。また、独自の機能のとして、 `@ユーザー名 コマンド` のようなコマンドを作成できるメンションコマンドというシステムもあります。今回はこれらの機能を使ってBotを作っていきます。

MiPAとMisskey.pyの違いについて

Misskey.pyはBotフレームワークではなく、あくまでAPIラッパーです。また、戻り値などは型が無く、ほとんど生のdictでレスポンスが帰ってきます。それに対し、MiPAではDiscord.pyのようにそれぞれのモデルに応じてクラスが存在するため、ノートでは `Note.author.i

元記事を表示

python初心者がダンジョンゲーム作成してみる

# [Day 1: Pygameの基本を学ぶ](https://qiita.com/tsuyoron515/items/78cc6d949123beea6f71#day-0-%E3%83%80%E3%83%B3%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%B2%E3%83%BC%E3%83%A0%E3%81%AE%E6%9C%80%E4%BD%8E%E9%99%90%E8%A6%81%E7%B4%A0:~:text=%E8%A8%88%E7%94%BB%E3%82%92%E7%AB%8B%E3%81%A6%E3%82%8B-,Day%201%3A%20Pygame%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%82%92%E5%AD%A6%E3%81%B6,-Pygame%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)

## Pygameのインストール
1. 公式サイト(https://www.pygame.org/news) にアクセスします。
2. ダウンロードペ

元記事を表示

【日本の祝日】Pythonで日本の祝日を判定するライブラリを作ってみた

# はじめに

この記事はChatGPTとBingが執筆しています。文章が怪しいところがあるので、少しずつ修正していきます。

日本の祝日を取得するためのPythonライブラリはいくつか存在しますが、正確に取得できるものはないという課題がありました。そこで、私はPython 3.9以降で動作するシンプルな祝日判定ライブラリを作成してみました。

このライブラリでは、モデルなどの複雑な仕組みを使わず、シンプルさを重視しています。`1980年1月1日から2024年12月31日まで`の期間について、内閣府が公開している情報と比較し、正確な祝日判定ができることを確認しました。
2025年以降も自動でテストが行われるようになっており、問題があれば私宛に通知が送られ、問題が修正されるようになっています。

日本の祝日は、年によって異なるルールに基づいています。たとえば、春分の日は春分の日の定義に従って計算されますし、祝日法に基づいて固定された日付の祝日もあります。このライブラリでは、これらの異なるルールを考慮し、正確な祝日判定を行います。また、日本の営業日を判定するロジックもあり

元記事を表示

機械学習モデルの解析に新たな風を! Phoenixを使ってみる

## はじめに

本記事では、機械学習モデルの解析ライブラリであるPhoenixを解説します。Phonenixでは、入力データの迅速な可視化やパフォーマンスの確認、問題点の抽出とその改善を手助けなどができます。

![ 2023-06-27 22.58.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/487820/a76a7dc8-7d8f-01ea-9f83-de8f5ade8aac.png)

上記は埋め込みベクトルをUMAPで次元削減し、HDBSCANでクラスタリングした結果の図です。(全てPhoenixが自動で行ってくれます。)

:::note
おすすめポイント
:::
1. 入力データとモデルの出力を関連づけることでより深い考察が可能である点
1. クラスタリングや次元削減の結果をもとに特徴のある入力データを特定&Exportでき、今後の改善に活かしやすい点 

– GitHub
https://github.com/Arize-ai/phoenix

– ドキュメント
http

元記事を表示

gspreadを利用してスクレイピングした内容をスプレッドシートに自動入力

# スクレイピング内容をスプレッドシートに自動で入力する
クラウドソーシングに絶えず投稿されている業務内容に、「指定のWEBサイトの情報を取得し表計算ソフトにデータを入力する」というものがあります。今回行う流れは、このような形になります。
“`mermaid
graph TD;
WebサイトにRequestを利用してアクセス–>bs4を利用してHTML,CSSをパース;
bs4を利用してHTML,CSSをパース–>パースしたデータをリスト化;
パースしたデータをリスト化–>リスト化したデータをスプレッドシートにgspreadを利用して自動入力;
“`
## 用意するもの
まだインストールしていない方は __pipなどを利用して__ すべてインストールしてください。
“`:ターミナル
$ pip install requests
$ pip install beautifulsoup4
$ pip install google
$ pip install gspread
$ pip install oauth2client

“`

<

元記事を表示

pako.jsで圧縮したgzipバイナリをpythonで展開する

前回、こんな記事を書きました。

https://qiita.com/masakun1150/items/e678b72b780caa61c594

今度はその逆を実装する必要が出てきたのですが、これはこれでハマったので備忘録

# まずは前回使ったzlibのライブラリpakoを使って圧縮する

### pako.js

https://github.com/nodeca/pako

## フロント側

“`typescript
export const handleGzipData = (
targetData: object | object[],
isErrorAlert = true
): number[] | ” => {
try {
  // まずは文字列に変換
const targetDataOfString = JSON.stringify(targetData)

// python側ではバイナリ配列で渡す
const gzipedUnit8Array = pako.gzip(targetDataOfString)

元記事を表示

「世界に認められたAIスタートアップが、Djangoを使って感じる良さとは?」参加レポート #rc_tech

7月5日(水)、「[世界に認められたAIスタートアップが、Djangoを使って感じる良さとは?](https://revcomm.connpass.com/event/285318/)」に参加しました。

## 「Djangoの特徴とRevCommにおける選定理由」
資料: https://speakerdeck.com/revcomm_inc/djangonote-zheng-torevcommniokeruxuan-ding-li-you
スピーカーは小門 照太さん。
RevCommさんが運営しているサービス「[MiiTel](https://miitel.com/jp/)」のバックエンドで採用しているDjangoの利点についての解説でした。

RevCommさんは2019年頃にDjangoを導入していて、マイクロサービス化されており、Djangoアプリケーション数は約40とのことです。

Djangoの利点として、以下を挙げていました。
– セキュリティ対策が標準でサポートされている
– O/Rマッパー、マイグレーション管理が便利
– エコシステムの充実
– チーム開発のしやすさ

元記事を表示

さくらのクラウドシェルでpipを使えるようにしよう!

前提として会員IDでログインした後、sudoコマンドを使用できるようにする必要があります。

sakura@cloud-shell% curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

sakura@cloud-shell% sudo python3 get-pip.py

ログアウトしたらデータは全て削除されます。

元記事を表示

四つ目並べゲーム(hand drop)手でコイン制御とJetson AI Specialist入手

# この記事の説明
こんにちは。初めの投稿です。よろしくお願いします。
どこか間違ったら、指摘お願いします。
今日の本題はタイトルの通り四つ目並べゲームの操作をマウスで操作ではなく、
WEBカメラで手の認識でコインを落とすプログラムの動作の説明です。
この記事はライブラリのインストールの説明はしません。
# 四つ目並べの基本コード
“`diff_python
# Four Python Game
import pygame
import numpy as np
import sys
import os
import time
from gtts import gTTS
from pygame import mixer

# import random
import math

# Welcome to Connect Four Python Game
welcome = “Welcome to Connect Four Python Game”
print(welcome)

def speach(txt):
tts1 = gTTS(text=txt, lang=”ja”)

元記事を表示

【Python】JSONの特定のキーだけ残して不要部分は削除する

# はじめに
JSONの不要な要素を削除するコードを書いたので記事にしておきます

# 実装
“`python
import json

def filter_json(data):
if isinstance(data, dict):
filtered_data = {}
for key, value in data.items():
if key == “legacy”:
filtered_data[key] = value
elif isinstance(value, (dict, list)):
filtered_value = filter_json(value)
if filtered_value:
filtered_data[key] = filtered_value
return filtered_data
elif isi

元記事を表示

PythonでPDFのテキスト毎の座標を取得する

# 結論
`pdfminer`を使用し、各テキストのレイアウトを取得することで座標が取得できます。

# 前提
記事を書いたときの`Python`と`pdfminer.six`のバージョンです
|名前|バージョン|
|-|-|
|Python|3.10.12|
|pdfminer.six|20221105|

# 準備
以下のサンプルコードを実行するために`pdfminer.six`をインストールしておきます。コンソールで下記のコマンドを実行します。
“`
pip install pdfminer.six
“`

# サンプルコード
“`.py
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.layout import LAParams, LTTextContainer
from pdfminer.converter import PDFPageAggregator

def main()

元記事を表示

Pythonのsubprocessを使用してシェルコマンドを使いたいので下調べ

## はじめに
pythonからコマンドを実行したいなと調べたところ、subprocessモジュールというのを見つけた。これは、Pythonから外部プロセスを起動し、そのプロセスとのやり取りを行うことができるモジュールらしいので使い方を調べた。

## 基本の使い方
基本はsubprocess.run()の引数に配列で実行したいコマンドを渡すことが多そう
“`python
import subprocess, sys

completedProcess = subprocess.run([‘ls’, ‘-la’])

print(res.returncode) #=> 終了コード
print(res.stdout) #=> 標準出力
print(res.stderr) #=> 標準エラー出力

if completedProcess.returncode != 0:
print(‘ls failed.’, file=sys.stderr)
sys.exit(1)
“`
subprocess.run()の戻り値はCompletedProcess。以下Complete

元記事を表示

Python3ではじめるシステムトレード:ネルソンーシーゲルモデルー金利予測の原点

金利曲線をモデリングするために、1987年にCharles R. NelsonとAndrew F. SiegelはNelson-Siegelモデルを提唱しました。特に、このモデルはゼロクーポンボンドのイールドカーブを表現するのに適しています。

Nelson-Siegelモデルは以下の式で表されます。

$$Y(t) = b_0 + b_1 * [(1 – \exp(-t/\tau)) / (t/\tau)] + b_2 * {[(1 – \exp(-t/\tau)) / (t/\tau)] – \exp(-t/\tau)}$$

ここで、

$Y(t)$ は満期までの時間 t のゼロクーポンボンドのイールドを表します。
$b_0$, $b_1$, $b_2$ はモデルのパラメータで、イールドカーブの水準(level)、傾き(slope)、および曲率(curvature)を表します。
$\tau$ はスケーリングパラメータで、カーブの形状を調整します。
モデルの特徴は、これら3つの要素を使用して金利曲線を捉えることです。

水準・レベル($b_0$)は、長期的なイールド(時間が無限大に

元記事を表示

OTHERカテゴリの最新記事