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

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

Python×DAX(DynamoDB Accelerator):初心者向け簡単チュートリアル

## はじめに
AWS DynamoDBは、スケーラブルで柔軟性が高く、パフォーマンスに優れたNoSQLデータベースサービスです。DynamoDB Accelerator(DAX)は、DynamoDBをより高速に扱うことができるサービスです。

しかし、PythonとDAXの組み合わせに関する解説記事は少なく、ハードルが高いかもしれません。

よって本記事ではPythonを使ったDAXの基本的な利用方法をわかりやすく紹介します。

前回の解説記事であるPython×DynamoDBに内容が似ています。

https://qiita.com/sergicalsix/items/74ac10a50aeb2cbc2bdf

また「Python×AWSのDB」の解説記事は全3つを予定しており、最後はPython×Elasticache Redisを予定しています。

## 内容
### 事前準備
まずDynamoDBにアクセスするために、AWSのアカウントのアクセスキーとシークレットキーを環境変数に設定します。

“`bash
$ export AWS_ACCESS_KEY_ID={アクセス

元記事を表示

GitHub ActionsでDockerイメージのECRプッシュにキャッシュ適用(&Lambda更新)

# 取り組んだこと
以前投稿した[こちらの記事]()で、workflowを作成しました。
このときは、workflowはとりあえず動くものから、といった形で作業していました。

**作業前のworkflow**

https://github.com/eno-conan/githubaction-python-docker-cache/blob/main/.github/old-workflows/old.yaml

今回は、**キャッシュを利用して、実行時間短縮を図ろう**!
ということで作業を行っていました。

キャッシュは以下の2カ所に設定していきます。
– python関係のライブラリをインストール
– DockerイメージのPushまでの過程

## python関係のライブラリをインストール
`github actions pip cache`と検索すると、以下リポジトリが見つかりました。

https://github.com/actions/cache

関連する実装を色々確認して、以下の実装を使わせていただきました。
Pythonとpipのそれぞれのレイヤーでキャッシ

元記事を表示

Papers with Code トレンド論文bot作って雑食的に情報収集してみた

本記事は「[Kaggle Advent Calendar 2023](https://qiita.com/advent-calendar/2023/kaggle) 」の 11 日目の記事です。

# 概要
X(旧:Twitter)のタイムラインを眺めていると、日々新しい論文・手法の情報が流れてきますよね。
SNSによる情報収集を私も活用しておりますが、一方でフォローしているユーザーさんの情報がメインとなるため、もともと私が関心ある・認知済みの分野に偏った情報が入ってきやすかったりします(Kaggle、CVなど)。

そこで、認知外の情報をよりキャッチアップするために、トレンド論文情報を通知するbotを作ってみました。
あえてキーワード検索などせずトレンドに身を任せることで、機械学習関連の情報を雑食的にキャッチアップし、分野の流行りやKaggleに使えそうな手法を見つけようって狙いです。
– botのSlack通知例
【Hello World!】Pythonの各分野における入門的位置づけまとめてみた

プログラミング入門では、「Hello World!」を出力するプログラムを作成することが多いですが、入門を終え、次のステップの入門では何をするのが一般的なんでしょう。ふと疑問に思ったので自分なりにまとめることにしました。もちろん「Hello World!」のようにコレと決まっているものはないのであくまで自分の考えにはなりますが、これからPythonを始める方の参考になれればと思います。

## デスクトップアプリ入門
### Tkinterで簡単なwindowを表示する
TkinterとはPythonに標準搭載されているGUIライブラリです。Pythonには**PySimpleGUI**や**kivy**など、他にもGUIライブラリが存在しますが、Tkinterは標準ライブラリだけあって、ネット上に沢山情報があります。なのでデスクトップアプリに入門する際は、まずTkinterで色々と操作になれることをおすすめします。

**GUIとは**

グラフィカルユーザインターフェース(Graphical User Interface)の略語です。コンピュータへ出す命令や指示等を、画面上で視覚的

元記事を表示

[Python]seleniumの起動までの手順

# はじめに
 副業でseleniumを使った実装をすることになったので、seleniumを動かすまでの手順について書いていきます。

# 手順
大まかな手順は以下の流れになります。

**1.seleniumをインストール**

**2.Google Chromeのdriverをダウンロード**

**3.実装**

各手順について説明してきます。

## 1.seleniumをインストール
以下のコマンドで、seleniumをインストールします。(今回のバージョンは3.141.0を使用)
“`
pip install selenium==3.141.0
“`

## 2.Google Chromeのdriverをダウンロード
seleniumを使用するには、ドライバーをダウンロードする必要があります。
また、使用しているブラウザと、ダウンロードするドライバーのバージョンを合わせる必要があります。
1.Chromeのバージョンを確認する。
 Chromeの右上から、以下の「Google Chromeについて」を選択します。
![スクリーンショット 2023-12-11 1033

元記事を表示

【OCI クラウド移行ガイド】AWS SQSをOCI Queueで実装してみた_キューサービス編

# はじめに
本記事は[Oracle Cloud Infrastructure Advent Calendar 2023](https://qiita.com/advent-calendar/2023/oci) の 11 日目の記事です。

キューサービスはクラウドネイティブなサービスで、性能向上、コスト削減や観点でパブリッククラウド上で利用するケースも少なくないと思います。
筆者自身、キューサービスを触ったことがなかったのでAWS SQSでできる基本的な動作がOCI Queueでも実装できるか試してみました。
今回はAWS側はBoto3、OCI側はSDK for Pythonを利用しました。
タイトルはAWS SQSをOCI Queueで実装してみたとなっていますが、AWS SQSの基本的な動作/実装がOCI Queueでも問題なく動作/実装できることを主軸の紹介記事としてしていることご容赦ください。

# OCIクラウド移行ガイドとは
オンプレミスやAWSなど、複数のプラットフォームからOracle Cloud Infrastructureへの移行プロジェクトに取り組んでいるクラ

元記事を表示

BeautifulSoup(beautifulsoup4)公式ドキュメント日本語翻訳案

そもそも Python、BeautifulSoup、スクレイピングとは

 Pythonはプログラミング言語の1つで、おそらく始めに学ぶであろうHTML&CSSと比べると次のような特徴があります。(なお、HTMLは本当はマークアップ言語と言います。)

**①作れる機能は比べものにならないほど多い(※よく利用させてもらっている方の以下のQiita記事だけでも大量に用途が載っています。)**
https://qiita.com/python_academia/items/62aefbf4e373cd2aa496
**②その分???パーツが細かすぎる**

 ②の性質のため、**ほとんど最初に import ~ というのを最初に書いて必要なパーツを使うための設定をしてから**、コードを書いていきます。そして、この ~ に書くものをライブラリといいライブラリの中に入っている便利機能(の小さいパーツにあたる)プログラム1つ1つをモジュールと言います。

そのため例えば、ここで紹介するbeautifulsoup4を使いたい場合は、ターミナルで例えば
“`
pip install be

元記事を表示

CursorとPythonで英文PDFを日本語翻訳して表示するツールをつくる

## はじめに
こんにちは。モノヒトです。PDF形式の英語論文をひたすら読んで内容を理解して簡単にまとめる。。。。みたいな業務をやることがありまして、論文の序論だけでもぱぱっと日本語訳できたら楽だなあと思い、それができるアプリみたいなもんを勉強を兼ねて作ろうと思いました。Cursorというエディタを使えば超簡単にできたので感動しました。以下に備忘録も兼ねて開発日記的なものを記します。
なお、PCのOSはWindows11にて開発しております。

## Cursorのインストール

https://cursor.sh/

Cursorはここからダウンロードします。右上の「download」をクリックしてインストールするだけです。最近巷でコーディングに特化してとても優秀なエディタと噂のcursorですが、何がスゴイかご存じの方も多いかもしれませんが、ChatGPT4に作りたいアプリの概要をチャットすると、ぱぱっとコードを作ってくれてそのままRun and Debugを試すことができるのが便利すぎてビビりました。ChatGPT4への質問はフリープランだと回数が限られており、一定数質問数がカウ

元記事を表示

Django 5.0 主な変更点まとめ

これは[Qiita Django Advent Calendar 2023](https://qiita.com/advent-calendar/2023/django) 11日目の記事です。

2023年12月4日、Django 5.0がリリースされました。主な変更点について解説します。

![Django5.0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7809/7545e7ef-82d1-e9db-d8fc-671e31f93759.png “Django 5.0リリースおめでとう!(Created with DALL-E)”)
*Django 5.0リリースおめでとう!(Created with DALL-E)*

公式サイトでのリリース情報は以下を参照してください。

https://docs.djangoproject.com/en/dev/releases/5.0/

Django 5.0はlong-term support(LTS)版ではありません。サポート期限は2025年4月です。

元記事を表示

ChatGPTとPythonで学ぶ 線形計画法

皆さんこんにちは。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ 線形計画法」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

こんにちは、皆さん。今回は線形計画法の話題について雑談してみましょう。

線形計画法(Linear Programming)は、限られたリソースを効率的に使って最大の利益を得たり、最小のコストを達成したりするための手法として数学とオペレーションズリサーチの領域でよく使われています。

PythonにはPuLPというライブラリがあり、これを使って線形計画問題を解くことができます。ある製品を生産する際のコスト、生産時間、利益などを考慮した最適化問題を解くことができます。

というわけで、線形計画法をPythonで実装することについてお話ししていきましょう。

### **user**:

線形計画法について学ぶためのPythonコードを書いてください。

### **assistant**:

もちろんです。ではま

元記事を表示

犬がうんちする前に回るから回った回数をグラフにした

# うんちする前に回る回数

| 日付 | 回った回数 |
|— |—|
| 11/27 | 1 |
| 11/28 | 0 |
| 11/29 | 2 |
| 11/30 | 1 |
| 12/1 | 0 |
| 12/2 | 2 |
| 12/3 | 3 |
| 12/4 | 0 |
| 12/5 | 1 |
| 12/6 | 0 |

# データ分析

“`mermaid
pie
title うんちする前に回った回数の割合
“11/27”: 1
“11/28”: 0
“11/29”: 2
“11/30”: 1
“12/1”: 0
“12/2”: 2
“12/3”: 3
“12/4”: 0
“12/5”: 1
“12/6”: 0
“`

## pythonで分析
“`python
import pandas as pd
import matplotlib

元記事を表示

StreamlitのスタイリングTips

## はじめに
Streamlitは手軽にWebアプリケーションを作れる代わりにスタイリングの幅は非常に狭くなっています。
標準の機能で設定する方法と、直接CSSを適用する方法についてまとめてみようと思います。

## 標準のスタイリング
## config.toml
ライトモードとダークモード、背景色(メイン画面とサイドバー)やページ全体のテーマカラー(ボタン等に反映される)、文字色、フォントを設定できます。
まず、.streamlitフォルダを作成してconfig.tomlを配置します。
https://docs.streamlit.io/library/advanced-features/configuration

“` toml:config.toml
[theme]

# The preset Streamlit theme that your custom theme inherits from.
# One of “light” or “dark”.
# base =

# Primary accent color for interactive elements

元記事を表示

FFTで多項式のかけ算をする

本記事は,京都大学人工知能研究会KaiRAのAdvent Calender 11日目の記事です.

https://qiita.com/advent-calendar/2023/kyoto-kaira

# 本記事の概要
[「pythonで学ぶ音声認識」](https://book.impress.co.jp/books/1120101083)の輪読会を行った際に、音声の特徴量を作るときに行う音声の周波数分解でFFT(高速フーリエ変換)が登場しました。そのときに多項式のかけ算をFFTで高速化できたはずという話が出たので、自分なりにまとめてみました。

# 多項式のかけ算
“`math
f(x) = a_0 + a_1 x^1 + a_2 x^2 + \cdots a_{N-1} x^{N-1}
“`
“`math
g(x) = b_0 + b_1 x^1 + b_2 x^2 + \cdots b_{M-1} x^{M-1}
“`
としたときに、これらをかけ合わせた
“`math
h(x) = f(x) g(x) = c_0 + c_1x^1 + c_2 x^2 + \cdo

元記事を表示

【Python】【小ネタ】WindowsのプロセスIDが生存しているか確認する方法

## 前提
プロセスIDの変数`pid`には`int`の他`None`がアサインされることもある。
`None`の場合は既にプロセスがkillされていると判断して`False`を返すことにする。
それ以外では、プロセスIDをなんらかの方法で用いて生存を判断する。

## 標準ライブラリ`subprocess`を使う場合

“`py
import subprocess

def exists_task(pid: “int | None”) -> bool:
if pid is None:
return False
proc = subprocess.run(
# chcp437指定でコマンドの言語を英語に切り替える。
# これで実行環境が日本語でも`stdout`は英語バイト列になる
[“chcp”, “437”, “|”, “tasklist”, “/fi”, f”PID eq {pid}”],
stdout=subprocess.PIPE,
shell=True,

元記事を表示

【低ランク近似で】畳み込みニューラルネットワーク軽量化の世界

[GDSC Japan Advent Calender 2023](https://qiita.com/advent-calendar/2023/gdsc-japan) 11日目をGDSC UTからお届けします。

# これはなに

機械学習の研究✨をやっているので「なんか研究の話して」って振られ、ネタに困っていたところに

(なんか近い論文を最近読んだし乗るしかない!)ということで[[Lebedev et al. ICLR 2015.]](https://arxiv.org/pdf/1412.6553.pdf)の紹介です!

実装→[NVIDIAの強い研究者のGitHubにあるJupyterNotebook](https://github.com/JeanKossaifi/tensorly-notebooks/blob/master/05_pytorch_backend/cnn_acceleration_tensorly_and_pytorch.ipynb)

#

元記事を表示

“エンジニア”の目線でアコーディオンを修理する~librosaで複数音の分析~

## 前回までのあらすじ

壊れたアコーディオンを買った.[^1]
アコーディオンを修理する技能や知識はないので,音響処理を用いて演奏可能な状態に持っていこうと思う.

実際に演奏してみて,壊れた状態を確認した.
鍵盤を押すことなく蛇腹を動作させると,常に一定の音が鳴っており
蛇腹を開く時と閉じる時で別の音が鳴っていることがわかった.

https://qiita.com/Killinneko/items/39faf941688b8e42cd80

pythonの`librosa`を用いて,蛇腹を開く時と閉じる時で鳴っている音を分析することにした.
蛇腹を開く時は,単音が鳴り,閉じるときは複数の音が鳴っている.

蛇腹を開くときの単音は,**D (レ)の音かつ294Hz**が鳴っていることが分かった.
閉じる時になる複数音は,294Hzと何かしらの音が同時に鳴っているが,
それが何の音なのかわからなかった.

https://qiita.com/Killinneko/items/16a7a7604f5a9dc69248

今回は,蛇腹を閉じる時に鳴っている音を分析する.

## 現状

元記事を表示

【Python】lambda式とpass構文

## 前回までのあらすじ
前回は、任意引数や引数のアンパックについて挙動を確認してきました。

https://qiita.com/advent-calendar/2023/python-hello-world

## 本日のゴール
– lambda式とは何かを知る
– passの使い方を知る

## lambda式とは
lambda式とは、名前のない関数で、動的な関数を生成する際によく利用されます。
早速サンプルコードを見てみましょう。
下記のサンプルコードでは、combinerはラムダ式という関数を返す関数と定義されています。
“`python:python
def combiner(word):
return lambda x: x + word

f = combiner(‘ple’)
print(f(‘ap’))
print(f(‘ya’))
“`
“`:結果
apple
yaple
“`
## passとは
passは関数を定義する際に、何もしないことを明示的に示す役割があります。
何も記述されていなければ関数は動作しませんが、`pass`と記述することで、

元記事を表示

GPTsを活用したテスト駆動開発について

## はじめに

こんにちは!
この記事ではGPTsを用いてテスト駆動開発を行う方法について説明します。作成したGPTs『テスト駆動開発メンター』は、ユーザーがテスト駆動開発をステップ・バイ・ステップで進められるようサポートします。ソフトウェア開発のみならず、機械学習やデータ分析プロジェクトにおいてもテスト駆動開発を取り入れることは重要だと考えています。

**テスト駆動開発とは**
テスト駆動開発(TDD)は、ソフトウェア開発の手法の一つです。このアプローチでは、まず失敗するテストケースを書き、それをパスする最小限のコードを記述し、最後にコードをリファクタリングするという短い開発サイクルを繰り返します。この方法は、開発の初期段階でバグを発見しやすく、保守性の高いクリーンなコードを書くことを促進します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627015/faab28ed-4764-9c92-9020-9de300c3c6cd.png)

[**「テスト駆動開発(TDD)

元記事を表示

Vertex AI Experiments ではじめる機械学習モデルの実験管理

:::note
本記事は [ZOZO Advent Calendar 2023](https://qiita.com/advent-calendar/2023/zozo) シリーズ 7 の 11 日目の記事です。
:::

# はじめに
この記事では Google Cloud のマネージドサービスである [Vertex AI Experiments](https://cloud.google.com/vertex-ai/docs/experiments/intro-vertex-ai-experiments?hl=ja) を使った実験管理方法をご紹介します。

このサービスのメリットは当然 Google Cloud の各種サービスと連携がとてもシームレスに行える点が一番に挙げられますが、個人や大学の研究室で実験管理・共有するためのツールとしても有用だと思いますので、既に [MLflow](https://mlflow.org) などを使っている方でもぜひご一読ください。

# Vertex AI Experiments で何ができる?
端的に言ってしまえば、2023年12月時点では機

元記事を表示

遺伝的アルゴリズムを用いたテトリス

# はじめに
[Retail AI Adventurers Advent Calendar 2023](https://qiita.com/advent-calendar/2023/rai-adventurers)の11日目の投稿です.
昨日は[@ido_shun](https://qiita.com/ido_shun)さんの[Dev Containerで開発環境の年末大掃除を行う](https://zenn.dev/i_do/articles/c72fc2867d8c58)でした.
本日は遺伝的アルゴリズムを用いたテトリスについて記述します.このテーマにした理由は以下です.

– シンプルで伝統的なアルゴリズムを体系的に学びたかった.
– 最近,生成AIと進化的アルゴリズムが注目されており,これからも活きてくるアルゴリズムと考えられるため.

# どこにミノを置くか?
テトリスの概要やルールについては割愛いたします.今回はテトリスの基本的なルール(ランダムに落ちてくるミノを積み上げて,行すべてをブロックで埋めると,その行を消去する)を前提としています.正式なものは[こちら](http

元記事を表示

OTHERカテゴリの最新記事