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

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

__init__.py に定義した lambda_handler を Handler へ指定する。

`__init__.py` に `lambda_handler` をコーディングしている Flask アプリケーションを AWS CloudFormation の `AWS::Serverless::Function` や `AWS::Lambda::Function` リソースの `Handler` プロパティへ `lambda_handler` を設定する例です。

`app.py` や `lambda_function.py` の例が公式に掲載されているため、世の中の実装もその踏襲が多く、初学者によく質問されるので掲載しておきます。

以下は、AWS SAM として定義する場合の例です。

“`yaml
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: >-
AWS CloudFormation Template for my-app stack:
The FROG Brigade dot NET – Rev. 1.0.0, 2023-01-01

元記事を表示

AtCoderの暖色コーダ(黄・橙・赤)はどれだけの速度でコードを書く? ユーザの解答時間を色別で集計してみた

[Supership](https://supership.jp/)でVPoEをしている名畑です。2023年冬アニメの[テクノロイド オーバーマインド](https://techno-roid.com/anime)を見ていて、その内容から[うたプリ](https://www.utapri.com/)を思い出していたら、[上松範康](https://twitter.com/agematsu)さんの作品だと後から知りました。ストーリー展開が予想外で面白いです。

:::note info
AtCoderについて調べてみたシリーズの過去記事
– [そもそもAtCoderとはどんなものか](https://qiita.com/nabata/items/44fa3995e476b12b9860)
– [誕生年毎のアクティブユーザ数](https://qiita.com/nabata/items/75407e48c7ca8de8a4a4)
– [アクティブユーザの世代別国と地域](https://qiita.com/nabata/items/28b5572978ee4abb0126)
– [プログ

元記事を表示

Pythonコードの中に記載されたHTMLテキストをブラウザで表示する(Api Gateway,Lambda)

# 書くきっかけ
Pythonコードの中に直書きしたHTMLを、クライアントからリクエストがあったときにブラウザで表示するコードを書いてみました。
自分の話で恐縮ですが、ちょっとApi GatewayとLambdaのテストをしてみたいと思ったときに、HTMLレスポンスが返せる簡単なLambda関数を用意したくなります。
そういった際に使えるのではと考えました。
# 使うもの
AWSで以下のものを使います。
* Api Gateway
* Lambda (Python 3.9)

# やってみる
## Lambda
以下の設定値でLambda関数を作成しました。ほかはデフォルトの設定値です。
| 項目 |設定値|
|:———–|:———–|
|関数名|htmlResponseFunc|
|ランタイム|Python 3.9|
|ハンドラ|lambda_function.lambda_handler|
|アーキテクチャ|x86_64|

## コード
`string`型でHTMLを記述し、それを`bytes`型に変換するところがポイントだと思います。
“`pyt

元記事を表示

PythonとGridDBを用いたWebトラフィックの調査と予測

ここ数年、時系列データベースのカテゴリが最も急速に成長しています。既存の技術分野と新興の技術分野の両方で、時系列データの作成量が増加しているのです。

一定時間内に行われるセッションの量をWebトラフィックと呼び、時間帯や曜日などによって大きく変化します。プラットフォームが処理できるWebトラフィックの量は、プラットフォームをホストするサーバーのサイズによって決定されます。

過去の訪問者数データや過去のWebトラフィックデータに基づいて、多くのサーバーを動的に割り当てることができます。つまり、過去のデータに基づいてセッションやウェブトラフィックの量を分析し、予測することがデータサイエンスの課題なのです。

チュートリアルの概要は以下の通りです。

1. データセット概要
2. 必要なライブラリのインポート
3. データセットの読み込み
4. データの可視化による分析
5. 予測
6. まとめ

## 前提条件と環境設定

jupyterの全ファイルは、GitHubのリポジトリにあります。

$ git clone –branch web-forecasting http

元記事を表示

シンプルなLSTMモデル

“`py
!pip install tensorflow-gpu
!pip install yfinance –upgrade –no-cache-dir
!pip install pandas_datareader
!pip install sklearn
!pip install -U protobuf==3.8.0
“`

“`py
import math
import pandas_datareader.data as web
from datetime import date, timedelta
import pandas as pd
from numpy import array, reshape
from keras.models import Sequential
from keras.layers import LSTM, SimpleRNN, Dropout, Dense
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
from sklearn.prep

元記事を表示

tensor_contraction_cuquantum

“`py
!pip install cuquantum-python
!pip install cupy-cuda11x
“`

“`py
from cuquantum import contract
from numpy.random import rand

a = rand(96, 64, 64, 96)
b = rand(96,64,64)
c = rand(64,96,64)
r = contract(“mhkn,ukh,xuy->mxny”, a, b, c)
“`

“`py
print(r)
“`

[[[[53812.16322921 47536.67919788 46969.31610105 … 49303.5812126
51130.78025912 50699.04587463]
[52461.86132487 46316.94964869 45754.99439207 … 48042.95502928
49858.05759064 49399.9161135 ]
[53062.94169324 46876.6

元記事を表示

Blenderで重複して読み込んだマテリアルを共通のものに

Blenderで アペンドやインポートで名前が重複したマテリアルのついたオブジェクトを読み込むと
「.001」といった具合に名前がかぶらないようにリネームされてマテリアルが作成されるものの
重複元のマテリアルを使用したい場合に 割り当てを変更するスクリプト
“`
import bpy
object = bpy.context.active_object
material_slots = object.material_slots
for slot in material_slots:
mat_name = slot.material.name
if mat_name[-4:] == “.001”:
slot.material = bpy.data.materials[mat_name[:-4]]
“`
とりあえず動けばいい程度の書き捨て

元記事を表示

?nbdev2をWSLで利用する手順

前記事 [【?nbdev2入門】Dockerによる環境構築と作業手順 – Qiita](https://qiita.com/lilacs/items/19c9c572a0740c5fc548)

nbdevは、ノートブック駆動開発プラットフォームです。
公式ドキュメント([nbdev – エンド ツー エンドのウォークスルー](https://nbdev.fast.ai/tutorials/tutorial.html#first-steps))から以下の手順を抜粋しました。
なお、コマンドで簡単に始められるように、GitHub周りは手順の最後にまとめて実施するようアレンジしてます。

1. 環境のセットアップ
1. プロジェクト作成
1. 開発作業
1. GitHubリポジトリへのプッシュ・設定

# 想定環境
– Windows11 Pro
– WSL2 Ubuntu
– Python 3.9以上 (pipでパッケージ管理)

# 環境のセットアップ

| **作業** | **コマンド**

元記事を表示

Python で先週日曜日の日付を取得する

# はじめに
Python で先週の日曜日を取得したかったのですが、調べてもあまり良い解答が得られなかったので、忘備録として残します。
# 1. isoweekday
datetime モジュールにある date オブジェクトの isoweekday メソッド。
isoweekday は月曜日から日曜日を `1 ~ 7` として出力します。
“`Python
from datetime import date, timedelta

today = date.today()
last_week_sunday = today – timedelta(7 + today.isoweekday() % 7)
“`
`today.isoweekday() % 7` 部分で日曜日から土曜日を `0 ~ 6` として出力するよう変換し、先週の日曜日は今日から 7 日と何日前か計算しています。
# 2. weekday
datetime モジュールにある date オブジェクトの weekday メソッド。
weekday は月曜日から日曜日を `0 ~ 6` として出力します。
“`Pyth

元記事を表示

openpyxlのオートフィルタ設定のメモ

# 背景
複数のエクセル出力したテーブルに対して、「オートフィルタを設定して、空白のみ除外したい」といった状況になり、Pythonで自動化した。最近Pythonをよく使うので今回まとめたことを自分用にメモ。

# できたもの
**openpyxl**を使って、インプットされたワークシートにオートフィルタの設定を行う関数を作った。

使用したAPIの詳細は[公式](https://openpyxl.readthedocs.io/en/stable/)を参照。

(プログラム全体)
“`auto_filter.py
import openpyxl
from openpyxl.utils import get_column_letter, column_index_from_string
from openpyxl.utils.cell import coordinate_from_string

def auto_filter(ws, str_col, ref=None, shows=None, hiddens=None):
# オートフィルタの適用
start =

元記事を表示

ReazonSpeechで全文文字起こしを実装してみた あとWhisperとの比較

# はじめに
[前回記事](https://qiita.com/user-touma/items/d010be623034ed894cdc)はサンプリングレートの問題で正常に動作しなかったようです。
教えてくださった方、ありがとうございました。
そしてReazon社やその関係者の皆様、不確実な情報を広めてしまい申し訳ございませんでした。

https://qiita.com/user-touma/items/d010be623034ed894cdc

# 本題
先日Reazon社から公開されたReazonSpeech(https://research.reazon.jp/projects/ReazonSpeech/) を使って、
長時間(1時間以上)の音声データの全文文字起こしを行ったので、コードを公開します。

# 問題意識
私の環境では、およそ60秒以上の音声を推論させると、メモリ不足のエラーを起こします。

“`python:error
OutOfMemoryError: CUDA out of memory.
Tried to allocate 14.66 GiB (GPU

元記事を表示

Docker Composeで立てたRabbitMQにpikaで接続してみる

# はじめに

– 仕事でRabbitMQを触る必要性が出てきたのでDocker Composeで立てて遊んでみる
– 尚、本格的に構築する場合にはクラスタリング等も検討したほうが良い: https://www.rabbitmq.com/clustering.html

# 概要

### RabbitMQとは

– 主にメッセージキューを実現するためのOSSで、メッセージブローカと呼ばれる
– Erlangで書かれている
– 紆余曲折あり、現在はVMware社がサポートを行っている
– 他の選択肢としては、OSSだとApache KafkaやActiveMQ、パブリッククラウドだとAmazon SQSやAmazon MQ(内部的にはRabbitMQやActiveMQが使われている)等がある
– GitHubリポジトリ: https://github.com/rabbitmq

### メッセージキューとは

– 送信側と受信側の間にキューを挟み、送信側が任意のタイミングでキューにデータを溜め込み、受信側が任意のタイミングでキューに溜まったデータを取り出すような通信形態のこと

![]

元記事を表示

【テックジム】無料GAS講座「メルマガスタンドを作ろう」の感想

テックジム主催の無料講座、GAS講座「メルマガスタンドを作ろう」を受講しました。プログラミングを学ぶ目的は、エンジニアになるためと考えられがちです。この講座を受講すると、事務職の作業をエクセルとワードとGoogleを使い、効率化するためにも、プログラミングの学習が役に立つと思えました。非常に解りやすくオススメです。

1-1の解説
1-2の解説
1-3の解説
1-4の解説

元記事を表示

「プログラミング」ノススメ

## 1. はじめに

こんにちは!株式会社ジールの@tomonori_ishikawaです。
データ分析、データ活用で基礎になる技術と言えば、
「プログラミング」と思っております。
ここでは「プログラミング」が出来るようになることのメリット、勉強の仕方をご紹介したいと思います。

### 筆者について
職種:データ分析エンジニア
AIを用いたデータ分析をPythonを用いてデータ加工、
Tableauを用いて可視化を行っています。
要件定義から行っています。

![スクリーンショット 2023-01-24 1018121.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118504/5e0f0c3e-470e-bc17-339f-3c92f0c6d3aa.png)

## 2. 「プログラミング」とは?
「プログラム」を作ることを「プログラミング」と言います。
「プログラム」は、コンピュータにやらせる命令を順番に並べたものです。

私達の暮らしの中で使われている
コンピュータは人が命令して初めて

元記事を表示

スプレッドシートに記録+グラフ表示

以前、部屋の温度・湿度・気圧を測定して、そのままだったので、ログの保持と表示部分を実装しようかと。(備忘録です)
https://qiita.com/_saki_kawa_/items/7961c82b150a01920d72

## スプレッドシートの作成
まず、新規に記録用のスプレッドを作成。
ダミーのデータを適当に入力(シート名を「yyyymm」にしておく)
![スクリーンショット 2023-01-24 11.49.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37576/b0eb39c9-e77d-d4eb-ec48-e356e337bab0.png)

## GAS関連
拡張機能から「Apps Script」を選択
![スクリーンショット 2023-01-24 11.50.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37576/4fe31b0e-6180-b522-ecfd-c22a21bc188

元記事を表示

Tkinterのスクロールバー(ttk.Scrollbar)が上下しない場合の対処法

## 問題
Tkinterの`ttk.Scrollbar`でテキストボックスにスクロールバーを設置したところ、ドラッグしても上下しませんでした。

### スクロールバーが機能しない様子
![scroll_ng.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3115387/2dc5492e-d53b-ea6e-80a8-2266d83a84c2.gif)

### 元のコード
“`python
from tkinter import *
from tkinter import ttk

root = Tk()
style = ttk.Style()

frame1 = ttk.Frame(root, padding=10)
frame1.grid()

txt = Text(frame1, height=12, width=85)
txt.grid(row=1, column=0)

scrollbar = ttk.Scrollbar(
frame1,
orient=VERTICAL,

元記事を表示

フォルダ内の古いファイルを削除する

>Programを実行していると、ディレクトリーの中に”古いファイル”が溜まっていくことありませんか?
エポック秒を利用し古いファイルを判断して、指定した個数以外のファイルを削除する様にしました。
>

“`python
# “/Qiita投稿Program/古いファイルを削除/test/”フォルダ内の古いファイルを削除する

#—————————————————————————
import os # OSに依存しているさまざまな機能を利用するためのモジュール
import glob # 引数に指定されたパターンにマッチするファイルパス名を取得
#—————————————————————————
def p():
print(‘-‘*50)
print(”)

#—————————————-

元記事を表示

LocustをEKS上で動かす

# この記事について

負荷試験にてLocustを利用する必要がありました。そこで柔軟にスケールできるようにEKS上で動かすことになりました。

EKS上でLocustを動かして、簡単な負荷試験を実施する手順などについてこの記事にまとめます。

なお、この記事ではLocustのシナリオについては深く触れません。
あくまで動作確認レベルのシナリオになります。

# 簡単に登場人物の紹介

## Locsut

Python製の負荷試験ツールです。
負荷試験のシナリオをPythonを用いて柔軟に作り込むことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435280/9759d767-47f6-1b71-d521-1c1d9aedb43b.png)

https://locust.io/

locustにはmaster/workerモード機能があり、これを利用することで複数インスタンス(コンテナ)を利用してスケールさせながらlocustによる負荷試験を行うことが可能です。

元記事を表示

IAM Policy SimulatorのAPIを使用して権限テストの自動化

# はじめに
作成したIAMポリシーをマネジメントコンソールから手動でテストするのは大変なので、APIを利用してテストの自動化をしてみました。

# 内容
AWS CLI、またはAWS SDKを使用して[IAM Policy Simulator](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies_testing-policies.html)を呼び出して、既存のIAMポリシーをプログラムでテストします。これにより、ポリシーが意図した効果を持っていることを確認します。

# IAM ポリシーをシミュレートするには (AWS CLI、AWS API)
APIは下記の2つあり、CLIとSDKから利用できます。
– AWS CLI: [aws iam simulate-custom-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-custom-policy.html) および [aws iam simulate-p

元記事を表示

[sklearn]pipeline実行できない

scikit-learnのpipelineは前処理やモデルを定義しておくと処理を簡潔にかけるので重要です。
今回、pipelineをつかってgridsearchを組み込んだときにpipelineが動かなかったエラーにハマったのでその解決法です。

“`python:❌
param_grid = {‘n_components’: [2, 3, 4, 5, 6], ‘scale’:[True, False], ‘max_iter’: [1000]}

pipe = Pipeline(steps=[(‘scaler’, StandardScaler()),(‘model’, PLSRegression())])
kf = KFold(n_splits=5, shuffle=True, random_state=0)
grid_search = GridSearchCV(pipe, param_grid, cv=kf, refit=True, n_jobs=-1, verbose=1)
“`

“`python:エラー
ValueError: Invalid parameter ‘ma

元記事を表示

OTHERカテゴリの最新記事