Python関連のことを調べてみた

Python関連のことを調べてみた

AWS Glue入門(2章 Glueジョブの種類とリソースについて)

前回の記事では、データ基盤とAWS Glueの概要について説明しました。

https://qiita.com/Mikoto_Hashimoto/private/35b2de805af855b17b6d

今回はAWS Glueが提供する主要な機能の1つであるGlueジョブについてより詳しく説明したいと思います。

# Glueジョブの概要
Glueジョブは、Pythonでプログラムを組むことでサーバレスでETL処理を実装できる機能です。
Lambdaと似たような機能ですが、ETLに特化したビルドイン機能やデータ処理に適したリソースの提供もしてくれる、データ処理に特化した機能になります。
時間ベースのスケジュールやイベントをトリガーにしてジョブを実行することも可能です。

# 4つのタイプのGlueジョブ
Glueジョブには以下4つのタイプの実行環境が用意されています。

・Spark
・Spark Streaming
・Ray
・Python Shell

## Spark
PySparkを軸としたSparkシステム上で処理を行うジョブです。
PySparkおよびその拡張版であるgl

元記事を表示

サンキー図の生成とカスタマイズに関するコード解説

このコードは、Pythonのplotly.graph_objectsモジュールを使用してサンキー図を作成し、カスタマイズする方法を示しています。サンキー図は、フローやプロセス内の要素間の流れを視覚的に表現するために使われる図で、特に大規模なシステムや複雑なプロセスを可視化する際に役立ちます。

![スクリーンショット 2024-08-29 15.09.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398994/863274cf-7c4a-91d9-fdbe-7e821ffd19af.png)

以下、このコードの各部分について説明します。

## 1. ライブラリのインポート
“`python
import plotly.graph_objects as go
“`

まず、plotly.graph_objectsライブラリをインポートします。このライブラリは、Plotlyで様々なグラフを作成するために使用されます。

### 2. ノードのラベルと値を定義
“`python
labels

元記事を表示

Pythonで解いたっpaizaのキャンペーン対象問題(Aランク「お菓子の詰め合わせ」)

こんなメールがpaiza運営から来ていました。

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620682/d37d876f-b419-2b28-de3f-9d445df29fcf.png)

ということで、お菓子の詰め合わせを解説します。解説するコード的にも初心者に分かりやすいかなと。

https://paiza.jp/works/mondai/a_rank_skillcheck_archive/school_hiking/

## 提出したコードの解説

“`py:A034.py
# coding: utf-8
def main():
import itertools
n,yen = map(int,input().split())
a = [int(input()) for _ in range(n)]
s = yen
c = n
z = []
for q in range(n+1,0,-1):
fo

元記事を表示

Pythonユーザーのためのデータの保管方法

## この文書の目的
pythonプログラマのためのスキルを標準化するための情報へのリンクを示します。
個別の内容については、それぞれ詳しい記事がネット上に書かれているので、
この文章では詳細は省略します。

## 想定する読者
– [Python プログラマのスキル標準化のための項目](https://qiita.com/nonbiri15/items/6461aa4dd82183fa7014)を気にかけてくださっている方
– 機械学習をしているPythonユーザー

# gitリポジトリに少量のテスト用データファイルを置く
– リポジトリのモジュールのテストのために少しだけデータをおかなきゃならないことがある。
#### git lfs
リポジトリのルートで以下のコマンドを入力する。
“`
git lfs track “*.jpg” “*.png” “*.ply” “*.npy”
“`
そうすると.gitattributes ファイルに以下の内容が追加される。

“`
cat .gitattributes
*.png filter=lfs diff=lfs merg

元記事を表示

不正アクセスしてきたホストの国コードを知ってセキュリティ対策に活用する

現在 Ubuntu server (24.04) で自宅サーバーを稼働させていますが、日々悩まされているのがSSHで不正ログインしてくるホストの増加です。一般的なセキュリィティ対策は行っていますがサーバーとして使っているPC(ノートパソコン)が10年以上前の古い機種なので日々のセキュリティ対応が悩みの種になっています。

こちらがその不正アクセスしてきたホストに関する情報(抜粋)です。

“`bash
2024-06-12T20:59:45+09:00 example.host sshd[102647]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=103.77.241.34 user=root
2024-06-12T21:00:12+09:00 example.host sshd[102649]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ru

元記事を表示

【Python】集計に便利なピボットテーブルを紹介!

Pythonで、よく使う外部ライブラリの「pandas」にピボットテーブルという便利な機能があります。集計の際に使うと便利だな~と思い、今回は、簡単に使い方を紹介したいと思います!!

:::note
集計したい内容
各担当者がどのお弁当を何個売ったか、
そしてそれに伴うお渡し品(マヨネーズ、ソース、しょうゆ)のお渡し数を集計します。
:::

今回は、以下のデータを基に集計を行います。
# **1. データの準備**
まず、提供されたデータを整理して、Pythonのデータフレームに変換します。

“` python
import pandas as pd

# データをリスト形式で整理
data = {
‘日付’: [
‘2024-08-01’, ‘2024-08-01’, ‘2024-08-01’,
‘2024-08-01’, ‘2024-08-01’, ‘2024-08-01’,
‘2024-08-02’, ‘2024-08-02’, ‘2024-08-02’,
‘2024-08-02’, ‘2024

元記事を表示

【AWS】EventBridgeを使って,組織用・個人用のGoogleカレンダーを統合した予定通知を行いたい

# はじめに
私の所属する研究室のカレンダーには,当然自分以外の予定が大量に混在しています.
そのため,自分の参加する予定のみを抽出して,毎日通知してくれるシステムを作りたいと思ったことがきっかけです.
また,研究室のカレンダー以外にも,自分だけの予定を管理しているカレンダーもありました.
別々のカレンダーを統合して,自身に関係のある予定のみを抽出して,毎日決まった時刻に通知してくれるシステムを作成してみました.

https://github.com/haradakaito/schedule_management

# 全体概要図

![全体概要図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3477007/c1134e91-7fff-5141-0725-be2fcbfd8da8.png)

# 使用技術
– AWS(Amazon Web Services)
– Python
– Google Calendar
– LINE Notify
– Koyeb

※AWSでは,Event Bridge,

元記事を表示

FastAPI × swagger.ymlファイルの出力

## 経緯
Swaggerファイルの修正にかける手間を省略するために、FastAPIのSwagger自動生成機能を使ってみたものの、それまでの開発でSwaggerをymlで統一していたため、ymlファイルとして出力する必要がありました

## FastAPIとは
Pythonで開発された高速なWebフレームワークで、特にAPIの開発に特化しています。

非同期フレームワークであるStarletteと、ValidationやSerializationのためのPydanticを基盤にしており、非常に高速です。

Pythonの型ヒントを活用して、自動的にAPIドキュメントを生成します。Swagger UIやRedocなどのインタラクティブなAPIドキュメントが、開発中に自動で生成されます。

https://fastapi.tiangolo.com/ja/

## Swaggerについて
ローカルでFastAPIが起動している場合、通常は、以下のendpointでswagger情報にアクセスできます
1. Swagger
http://localhost:8000/docs
2. Swag

元記事を表示

島探し (paizaランク S 相当):

[島探し (paizaランク S 相当)](https://paiza.jp/works/mondai/s_rank_skillcheck_sample/search-island)

https://paiza.jp/works/mondai/s_rank_skillcheck_sample/search-island

## 背景
列の数がM、行の数がNの表があります。表の各マスは白か黒で塗られています。
黒で塗られたマスが上下左右で隣接している時、その黒マスの塊をまとめて「島」と呼びます。
例えば、以下のような4列×5行の表(M=4、N=5)があった場合
![スクリーンショット 2024-08-29 6.26.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527611/7bcfb3eb-e3d0-c1da-4fdd-279745ef69f4.png)
この表には以下の(1)~(3)のように3つの島が存在します。

![スクリーンショット 2024-08-29 6.26.51.png](ht

元記事を表示

ブラウザ内でリアルタイムに回転するカラフルなメタリックボール。Powered by GPU + JavaScriptエンジン。

![スクリーンショット 2024-08-29 055650.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/94429480-d95d-5c31-21ff-2a512e857815.png)

![スクリーンショット 2024-08-29 055717.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/b65d32ca-5d34-c17c-a336-1f5f0ff5bb26.png)

![スクリーンショット 2024-08-29 055828.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/fbec72d9-c577-b6ba-428d-525685dca052.png)

### スペースキーを押すとボールの位置、サイズ、色がランダムに再生成されます。

コードをメモ帳などのテキストエデ

元記事を表示

小さなGPUのエンジニアリング。TensorFlow.js JavaScriptエンジン 次世代の WebGPU 。

##### コードをメモ帳などのテキストエディタに貼り付け、ファイルを「index.html」などの拡張子が.htmlのファイルとして保存します。その後、保存したファイルをブラウザで開けば、コードが実行されます。

### ショートストーリー: 「小さなGPUでの冒険」 GPU量子エンタングルメント
東京の繁華街に住む若いプログラマー、ケンジは、自分の小さなノートパソコンを使って驚くべき実験を行っていた。ケンジはコンピュータ科学に情熱を注ぎ、特にGPUを使った計算に興味を持っていた。今日は、自分の小さなGPUで「量子エンタングル状態」をシミュレートしようと決心していた。

「ビット列のすべての可能性をシミュレートしてみせる!」とケンジは意気込んでいた。彼は最近、量子ビットの概念に心を奪われ、ビットのすべての組み合わせが同時に重なり合う状態について学んでいた。この知識を基に、彼は自分のノートパソコンを使ってこのエンタングル状態を模倣するプログラムを書いた。

ケンジのノートパソコンには内蔵GPUが搭載されており、その性能を活かしてみたかった。彼はまず、ビット列を生成し、そのすべて

元記事を表示

Pythonで株価アニメーション動画を作成する方法

この記事では、Pythonを使用してApple Inc.(AAPL)の株価データを取得し、インスタグラムに適したアニメーションを作成する方法について解説します。このアニメーションでは、株価の変動を可視化し、ドル表示で最新の価格を表示します。

## 完成イメージ
https://x.com/Y81018469/status/1828810782827848028

## 必要なライブラリ
まず、以下のライブラリをインストールしておきましょう。
“`
pip install matplotlib yfinance pandas
“`
## コードの解説
以下に示すのが、アニメーションを作成するためのコードです。

“`python
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import yfinance as yf
import pandas as pd
import datetime
“`
## 1. グラフの設定
コードの最初の部分では、グラフの見た目を設定して

元記事を表示

NY連銀からプレスリリースを取得する

この記事では、requests、BeautifulSoup、およびdatetimeモジュールを使用して、NY連銀のウェブページからプレスリリースの情報(タイトル、日付、URL)を取得する方法を解説します。

### コードの概要

“`python
import requests
from bs4 import BeautifulSoup
from datetime import datetime
“`

最初に、必要なライブラリをインポートします。

requests: ウェブページの内容を取得するためのライブラリ。
BeautifulSoup: 取得したウェブページの内容を解析して必要なデータを抽出します。
datetime: 日付をフォーマットするためのライブラリ。

### データ取得の流れ
まず、ウェブページからデータを取得し、その内容を解析します。

“`python
def extract_press_releases(url):
response = requests.get(url) # ウェブページの内容を取得
soup = Beautif

元記事を表示

multiprocessingとthreadingの併用

“`py
import os
import random
import threading
import time
from multiprocessing import Process, Queue

def write_and_read(q, write_threads_count):
write_threads = [threading.Thread(target=write, args=(q,)) for _ in range(write_threads_count)]
read_thread = threading.Thread(target=read, args=(q,))

for thread in write_threads:
thread.start()
read_thread.start()

for thread in write_threads:
thread.join()
read_thread.join()

def write(q):
for value in

元記事を表示

Pythonで仮想環境を作成する(venv)

## 目的
いつからか、pythonで開発を行う場合に、pipなどを用いて作業を行うと仮想環境内で作業をしなさいと、エラーが出る様になってしまった。

## 環境の作成
“`bash
$ python -m venv 仮想環境名
“`

## 端末の起動
“`bash
$ source 仮想環境名/bin/activate
“`

シェルスクリプトからも使う事が出来ます。

元記事を表示

Pythonで動かしっぱなしのプログラムのログを毎日違うファイルに保存したい

# きっかけ
とあるプログラムを延々と動かしてたんです。1週間ほど。
ログを出していたのですが、動かしっぱなしなので一つのログファイルにログを溜め込み・・・。(ちょっと怖い)

いや、これメモリーを圧迫したりとかしないの?(コンピューターは(も)よく知らない)

とういうことで、「動かしっぱなしのプログラムのログファイルを**日毎**に取得したい」って思いました。
精神的にも安心できそうだしね。

# 環境
2020 M1 MacBookAir
Python==3.10.8

# ドキュメントを読んでみた

https://docs.python.org/ja/3.10/library/logging.html#module-logging

ム・ズ・カ・シ・イ
それっぽいのも見当たらない

# GPTに聞いてみた
:relaxed::relaxed::relaxed:さすが!!!

とあるクラスを紹介してくれました。そして使ってみたらバッチリ。
だから紹介します!キリッ!

元記事を表示

転移学習に使うモデルの違いって?by初学者

# はじめに
ここ3か月弱の間でPythonを学習したので、AIを用いた画像分類のWebアプリを作ってみることにした。色々と試している中で、転移学習に使うモデルがどれほどの差があるのか興味が出たのでWebアプリ実装に使うモデル選びとして比較してみる。

:::note
お願い
初心者故に、コードに間違いや無駄、見づらさ等があると思われるが、温かい目で見てほしい。
:::

# 目的
モデル以外の部分に同じコードを使い、転移学習に使うモデルの違いを探る。
題材としては犬猫分類を扱う。一番優秀だと判断したモデルで、Webアプリの実装をしてみようと思う。

# 実行環境
モデル比較検討・構築
* Windows11
* GoogleColab
* python3

webアプリ化
* コマンドプロンプト
* GitHub
* GitLFS
* Flask
* Render

# 画像の処理
まずは学習に使う画像の処理から行っていく。
“`py
#必要なモジュール等をインポートする
import os
import cv2
import numpy as np
import tensor

元記事を表示

Python イテレータとイテラブルの違いを理解する

## 前提条件
この記事は、Python 3.6以降のバージョンを対象としています。ほとんどの概念は以前のバージョンでも適用されますが、一部の機能や構文は新しいバージョンで導入されたものがあります。

## 記事の概要

Pythonプログラミングにおいて、イテレータとイテラブルは非常に重要な概念です。これらの概念を理解することで、より効率的で柔軟なコードを書くことができます。本記事では、初級者から中級者まで幅広い読者を対象に、イテレータとイテラブルの違いを解説し、それぞれの特徴と使用方法を明確にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/3659455e-c639-128f-d3f4-8d636db7a2b4.png)

## イテラブルとは

イテラブル(iterable)は、繰り返し可能なオブジェクトのことを指します。簡単に言えば、for文で反復処理できるオブジェクトです。

主なイテラブルの例:
– リスト(list)
– タプル(tuple)

元記事を表示

ESP32 WROVER CAMとBME280 > 画像と気温をブラウザで見る

ESP32 WROVERのカメラ付きで部屋の様子を監視しその画像をレンタルサーバーにFTPで投げます。同時にBME280で計測した気温などをMQTTで公衆MQTTブローカーに投げます。そしてブラウザでレンタルサーバーの画像を表示し、その下に公衆ブローカーからのWEBソケット通信(WSS://)で気温などを表示します。ランニングコストはほぼ0円。応用次第で低コストでIOTシステムを構築できます。

![dog.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806156/bb4f289f-e0a6-86dc-8ad1-e6dbb47a6c88.png)

# ESP32(micropython)
ME280の温度、湿度、気圧をMQTTで送信,画像FTPでUP(ESP32 WROVER DEV CAM)

mqtt_bme280_pub_ftp_spi.py

“`python
”’
@file mqtt_bme280_pub_ftp

元記事を表示

send_mail

“`
#!/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from email.header import Header
from email.utils import formatdate
import os

def send_email(to_address, subject, body, attachments=None):
# メールの設定
from_address = ‘your_email@example.com’ # 実際のメールアドレスを使用
smtp_server = ‘localhost’ # 自分自身のサーバーを指す
smtp_port = 25 # ポートを25に設定

# メールの作成
msg = MIM

元記事を表示

OTHERカテゴリの最新記事