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

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

DockerコンテナをRenderから無料&爆速でデプロイする方法

## 最初に
今回は、GitHubから取得したDockerコンテナに含まれるFlaskアプリを、Renderの無料プランを使用してデプロイする方法を説明します。

### 前提条件
・GitHubアカウント
・Renderアカウント(https://dashboard.render.com/)
・Dockerに関する基本的な知識
・Flaskアプリが含まれるDockerコンテナ
## ステップ1: GitHubリポジトリの準備
最初に、Flaskアプリを含むDockerコンテナのソースコードをGitHubリポジトリにプッシュします。
“`
git init
git add .
git commit -m “初めてのコミット”
git remote add origin <あなたのリポジトリURL>
git push -u origin main
“`
## ステップ2: Renderでのデプロイ準備
次に、Renderにログインし、新しいWebサービスを作成します。

Renderのダッシュボードにアクセス
「New +」ボタンをクリックして「Web Service」を選択します

元記事を表示

SimpleImputerを使った欠損値の補完方法のまとめ

機械学習で使うデータは、多くの場合欠損値を含みます。scikit-learnではすべての項目に値が設定されていると仮定されているので、欠損値と相性が悪いです。

あまりにも欠損値が多い列は列ごと捨ててしまうこともありますが、一部だけ欠損している場合だともったいないですよね。なんらかの値で補完する場合の備忘録として、sklearn.impute.SimpleImputerの使い方をまとめました。

# SimpleImputerの使い方
## デフォルト
欠損値 np.nan を 平均値で補完します
“`python
import numpy as np
import pandas as pd
from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

# すべての列を補完する場合
# この方法だと列名が消えてしまうので、元に戻してあげる必要があります
df2 = pd.DataFrame(imputer.fit_transform(df))
df2.columns = df.columns

# 特定の列を補

元記事を表示

RAII(Resource Acquisition Is Initialization)パターン (C++,Python)

## C++の場合

C++ではスコープ(ブロック)を抜ける時に自動的にデストラクタが呼ばれます。このRAII(Resource Acquisition Is Initialization)パターンは、リソースの管理(例えばフレームレート制御やファイル操作)に非常に効果的です。

ここでは、フレームレート制御の例とファイル操作の例を並べて示します。これにより、RAIIパターンがどのようにリソースの取得と解放を自動化するかを理解できます。

### 1. フレームレート制御の例

“`cpp
#include
#include

class FrameLimiter {
public:
FrameLimiter(int fps) : frameStart(SDL_GetTicks()), frameDelay(1000 / fps) {}

~FrameLimiter() {
Uint32 frameTime = SDL_GetTicks() – frameStart;
if (frameDelay >

元記事を表示

よいグラフ001

データの大きさを図形(たとえば円)のサイズで指定するとき,
– データの大きさを直径の大きさで表す
– データの大きさを面積で表す

後者に従うべし。以下の図は面積がデータの大きさを表している。たいへんよくできました。
多分同じ人が作った問題だろう。

### 地理A
![地理A5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/28dff0fa-ecad-5dbd-60e4-db8a610186af.png)

### 地理A
![地理A2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/ba5bfb6e-a4e2-c095-683c-e9ba98e63f28.png)

### 地理A
![地理A4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/3cd59f76-9cc8-6b6d-73d4

元記事を表示

I tried creating an application with python [Invader Game development]

## Environment

“`
pip3 install pygame
“`

## Reference site
[【Pygame超入門】50分でゲーム開発(Python)の基礎をマスター](https://www.youtube.com/watch?v=fAJ_BjLd3Ro)

元記事を表示

機械学習(教師有)の進め方

# 全体の流れ
1.目的の明確化
2.データの収集
3.前処理
4.モデル作成
5.モデル学習
6.モデルの予測精度確認
 ※精度が悪かったら前処理からやり直し
7.モデルの保存

# 1.目的の明確化について
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2696954/d1bd2d93-caff-1b60-350e-2953c766663e.png)
上記を定めないと、追加の定義や精度100%まで実施することとなり長時間かかってしまうので注意!

備考
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2696954/ec85ab30-3f5e-941f-331a-7d99ab9d5a56.png)

# 2.データの収集
以下、4点を気を付けて収集を行う
①モデル構築に必要なデータは何か
②現状のデータは何があるのか
③データ内にある特徴量はどんなものなのか
④どのくらいのデータ数がある

元記事を表示

駄目グラフ004

## 共通テスト一日目

円グラフが不適切なグラフであることと知らない人(かくも多き)が試験問題を作る…
それを見て育つ?受験生…

なお,円グラフのかわりとして推奨される帯グラフをちゃんと使っている問題も多く見られた。

### 英語リスニング
![英語リスニング.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/5c0c6ca2-5c24-dc9d-22e0-f99fe37fa905.png)
### 世界史B
![世界史B.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/48a85d85-e53a-042e-3b3a-2284b1a97f77.png)
### 日本史B
![日本史B.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611739/a2e8fe6d-73ed-db26-d2d0-55

元記事を表示

Python 入れ子の辞書を平坦化するメソッド

ネストされた辞書を展開して平坦にします。例えばJSONをCSVに保存する際にネスト状態を解除して平坦化したい場合に利用してください。

親キーと子キーを`.`で連結しています。また、子がリストの場合は親キーに1から始まる連番を付けています。

“`python
# 辞書の項目を累積的に処理する
def dict_accumulate(dct, f, acc = {}):
for k, v in dct.items():
acc = f(acc, k, v)
return acc

# リストの項目を累積的に処理する
def list_accumulate(lst, f, acc = {}):
for i, v in enumerate(lst):
acc = f(acc, i, v)
return acc

# 辞書に辞書をマージして返す
# ex. {‘a’: 1}, {‘b’: 2} -> {‘a’: 1, ‘b’: 2}
def update(dct, append):
dct.update(append)
return dct

#

元記事を表示

OpenCVのコーナー検出結果から、誤検出したエッジ点を除くフィルターを考えてみた

# はじめに

– OpenCVには、画像のコーナー点を検出するcornerHarrisやgoodFeaturesToTrackなどの関数があります。
– しかし、これらの関数には癖があるようで、長方形の形(左)だとコーナーをきれいに見つけましたが菱形の形(右)だと苦手でした。赤点が検出点です。

![before.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2449065/c8069818-97f6-80ba-fe27-1a7e98fbd586.jpeg)

– 感度を良くすればコーナーを見つけますが、エッジ上の点を誤検出するケースが増えます。感度を下げれば誤検出は減りますが、コーナーを見落としやすくなります。
– そこで、感度良く検出したあとから、誤検出したエッジ点を除く方法を考えて、試しました。

### 工夫したこと
1. goodFeaturesToTrackの結果からスタート
 画像の全各要素をフィルターすると時間がかかるので、途中から始めて処理量削減。

2. 白図形の凸コーナーのみの検

元記事を表示

微分方程式の数値計算 線形加速度法(ニューマークβ法)

## 線形加速度法概要
 振動の問題によく用いられる解法に線形加速度法というものがある。振動の変位$u(t+Δt)$と速度$\dot{u}(t+Δt)$以下の式で計算する。
“`math
\begin{align}
u(t+Δt) &= u(t)+ Δt\dot{u}(t)+\frac{(Δt)^2}{2!}\ddot{u}(t)+\frac{(Δt)^3}{3!}\frac{\ddot{u}(t+Δt)-\ddot{u}(t)}{Δt}\\
\dot{u}(t+Δt) &= \dot{u}(t)+Δt\frac{\ddot{u}(t)+\ddot{u}(t+Δt)}{2}\\
\end{align}
“`
変位$u(t+Δt)$はテイラー展開の3次までの項に似ているが、3次の項は加速度が1次式で変化する(線形加速度)と仮定した式になっている。速度$\dot{u}(t+Δt)$についても同様で、いわゆる台形公式である。

#### 陽解法と陰解法
 [オイラー法やルンゲクッタ法](https://qiita.com/TbsYS/items/b1c03c6d3d470287bd6b

元記事を表示

【備忘録】PythonでMySQLにデータベースを新規作成する方法

今回はPythonでMySQLのDBを新規作成する方法についてまとめました。

備考:
Python:3.9
MySQL:8.0.31
動作環境:MacOS
開発環境:PyCharm

モジュール:
mysql
mysql-connector-python
python-dotenv

### 1. PyCharmにて新規プロジェクトを作成する

### 2. プロジェクト直下にcreate_new_database.py / env.py / .env / requirements.txtを作成する
“`フォルダ構成.
.
├── main.py
├── create_new_database.py
├── env.py
├── .env
└── requirements.txt

“`
### 3. requirements.txtファイルを以下の内容にする
“`requirements.txt
mysql
mysql-connector-python
python-dotenv
“`

### 4. ターミナルにてコマンドを入力してモジュ

元記事を表示

Pythonで「集合の演算を行う(和集合、積集合、差集合、対称差集合)」の動作を確認してみた

# 概要

Pythonで「集合の演算を行う(和集合、積集合、差集合、対称差集合)」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/set/index6.html

# 実装

以下のファイルを作成しました。
“`sample.py
set1 = {“A”, “B”, “C”, “D”}
set2 = {“C”, “D”, “E”, “F”}
print(set1 | set2)
print(set1.union(set2))

set1 = {“A”, “B”, “C”, “D”}
set2 = {“C”, “D”, “E”, “F”}
set3 = {“A”, “C”, “E”, “G”}
print(set1 | set2 | set3)

set1 = {“A”, “B”, “C”, “D”}
set2 = {“C”, “D”, “E”, “F”}
set1.update(set2)
print(set1)

set1 = {“A”, “B”, “C”, “D”}
set2 = {“C”, “D”,

元記事を表示

航空機の最大上昇時は、抗力最小ではない

こんにちは.九州大学工学府航空宇宙工学専攻修士2年,ITストラテジストの岩附陽太です.
TAで飛行力学1の採点補助をしていて,間違いが多かった「航空機の最大上昇時は抗力最小ではない」という話をしたいと思います.
# 問題
各自選んだ機体について,海面標準状態における最大上昇率と,その時の速度を求めなさい.ジェット機の場合には推力は速度によらず一定と過程し,プロペラ機の場合には,(一般には正しくないが計算のために)利用パワー=エンジン軸パワー×0.8と仮定し,速度によらず一定と仮定しなさい.ただし,経路角が微小であるという仮定を用いてよい.

# 基本となる式

揚力と重力の一部が釣り合っており,一定であると仮定します.つまり,以下のような状況ですね.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3064963/d7deed26-59f0-23c1-8f93-f604e8a7302d.png)

$$L=mgcos(\gamma)$$

$$m\dot{V}_{TAS}=Thr-D-m

元記事を表示

PyMongoの基本操作

初めましての方は初めまして.そうでない方はいつも読んでいただきありがとうございます.

研究で MongoDB を利用する事になり,その操作のために PyMongo を利用したのですが,今回の記事ではその基本操作を自分のメモ的な感じでまとめたいと思います.

|項目|バージョン|説明|
|:-:|:-:|–|
|`Python`|`3.10.12`|プログラミング言語|
|`PyMongo`|`4.6.1`|PythonでMongoDBを操作するためのライブラリ|
|`MongoDB`|`7.0.5`|データベース|
|その他|-|私の環境ではDockerを利用していますが,他の環境でも同じ操作になると思います.|

:::note
本記事は[PyMongo 4.6.1 Documentation](https://pymongo.readthedocs.io/en/stable/#)を参考にして作成したものです.言うまでもなく[公式ドキュメント](https://pymongo.readthedocs.io/en/stable/#)の方が詳しいので,詳細が気になる方はそちらを参照さ

元記事を表示

webdriver.Chrome()のエラー

いまにゅさんの動画()
[いまにゅさんのスクレイピング講義動画](https://youtu.be/VRFfAeW30qE?si=u-zYHVgSXiPrbkNJ “【Webスクレイピング超入門”)を見ながら、初めてスクレイピングをハンズオンで進めたところ、エラーが起きてしまいました。

初心者用の動画なので、他の方が躓いたときの参考になれば幸いです。

実行したのは下記コードです。
“`
!pip install webdriver_manager
from selenium import webdriver
browser = webdriver.Chrome(ChromeDriverManager().install())
“`

エラーコードは下記です。

“`
—————————————————————————
AttributeError Traceback (most recent call last)
Fil

元記事を表示

BedrockエージェントとKendraを使って出来るだけローコードにRAGを実現する

ノーコードで構築するRAGと言えばKnowledge baseがありますが、Knowledge baseはデータソースが限られる為、コネクタが豊富なKendraを使いつつ、Agents for Amazon Bedrockを使って出来るだけローコードにRAGを実現してみます。

以下のようなニーズを意識したお試しです。
– 出来るだけAWSのサービスを使ってローコードに構築したい
– Knowledge baseよりKendraを使いたい
– LangChainは使いたくない

コードとしてはKendraを検索するだけのLambda関数(実処理としては数ステップ)を1つのみ作成し、後はAgentのプロンプトでどうにかします。

# 作ったもの

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/bbe5270a-ed50-ffbe-5dfd-3af6806e31c4.png)

ユーザーからの質問を元に、Kendraの検索キーワードを3種類考えてもらい、1種類ずつKendra

元記事を表示

[Python]スクレイピングして、必要な情報を加工してからcsv出力

# はじめに
ある公式リリースノートから
* 情報取得
* 抽出・加工
* 一覧形式でcsv出力

したかったので、Pythonで作成しました。[ETL](https://e-words.jp/w/ETL.html)のようなイメージです。
URLを載せると万が一アクセス集中した場合に迷惑がかかるので、対象は伏せます。

:::note alert
スクレイピングする際は、アクセス数に注意

私もまずは[ブラウザで閲覧してHTMLをダウンロード](https://func.jp/microsoft-edge-show-source/)してから、ローカル内で試行錯誤しています
:::

# 成果物
“`python:EtlReleasenote.py
import requests
import csv
from bs4 import BeautifulSoup

# please change this setting
VERSION_LIST=[“xxx”,”yyy”,”zzz”]

HEADER = [‘version’,’Type’,’description’]
#

元記事を表示

Agency là gì? Toàn bộ kiến thức về Agency trong Marketing

Khái niệm về “Agency là gì?” là một điều gây tò mò cho nhiều người và thường được sử dụng phổ biến trong lĩnh vực marketing. Ngành nghề này đang phát triển mạnh mẽ, mang lại nhiều cơ hội việc làm và mức lương hấp dẫn. Vậy nghề này làm gì và hoạt động như thế nào? Để có cái nhìn rõ ràng hơn, hãy cùng theo dõi chi tiết trong bài viết dưới đây cùng Yang Media.

##Agency là gì?
Agency là các công ty, tổ chức chuyên cung cấp các dịch vụ theo yêu cầu của doanh nghiệp hoặc tổ chức, bao gồm nhiều lĩnh v

元記事を表示

Macフォルダ内のファイル名を一括で置換する自動スクリプトつくりました!

### 0.完成例!
![gamen_test1 23.14.12.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3660939/e0de2f1f-e117-bba3-8a93-a86badd1d0bf.gif)

### 1.使用するライブラリ
##### -1.pandas
“`
pip install pandas
“`
### 2.デスクトップなどにTrimName.py等の名前をつけて下記コードをコピペ
“`py
import os
import pandas as pd
import re
import tkinter as tk
from tkinter import filedialog

# 置換を実行するフォルダのパスを指定
folder_path = “/Users/nishikawashuuhei/Desktop” # フォルダのパスを指定してください

# ファイル名を置換する関数
def replace_filename(filename, rules):
f

元記事を表示

「asdf」と「Poetry」でPythonの依存物管理した理由

標準のpipはシステム全体に依存関係をインストールし、プロジェクト間の依存関係の衝突やバージョンの問題を引き起こすこともあります。これが理由でPythonを嫌厭している人もいるのではないかと思います。
言語も同様に、プロジェクトごとにバージョンを変更することもあるでしょう。そうすると環境構築の重要性はさらに高まります。

この記事では、なぜPythonの依存物管理に「asdf」と「Poetry」を採用したのかを解説します。

## Poetryの使い心地

自分はPythonだけでなく、TypeScriptやRustなどの複数のプログラミング言語を扱います。そのため言語に固有のバージョン管理ツール(~env系)を使用すると、環境設定が複雑になりがちです。この問題を解決するために、`asdf`を選びました。

https://github.com/asdf-vm/asdf

Pythonのバージョンだけではなく、poetryのバージョンを管理することもできます。
“`bash
# Pythonのバージョン管理
asdf plugin-add python
asdf install py

元記事を表示

OTHERカテゴリの最新記事