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

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

Pythonのアンパックの基礎

### アンパックとは
From ChatGPT:
>Pythonのアンパック(Unpacking)は、シーケンス(リストやタプルなど)やイテラブル(iterable)オブジェクトから要素を取り出して、それぞれの変数に代入する操作です。アンパックは一度に複数の変数への代入を行うことができます。

アンパックは、Python言語の特徴の一つで、複数の戻り値を戻せる関数を作成できるというとても便利な機能です。
“`python
li, num_val, string_val = func(args1, args2)
“`
戻り値の一部を省略する場合は以下
“`python
li, num_val, _ = func(args1, args2)
“`
戻り値がそれぞれ異なる型でもOK

### 事例1
基準日を基に月、年度、月初め、月末、年度初、年度末をそれぞれ戻す関数
“`python
def get_cal_info():
”’基準日の計算
Returns:
base_day:基準日
base_month:基準月

元記事を表示

ABC312回答メモ

0.はじめに
 ユニークビジョンプログラミングコンテストだから難易度高いかなーと思ったら
 やっぱり高かったです。(毎週言ってる気が。)
 ABしか解けず、惨憺たる結果でしたが、レートは-14と他の人もてこずって
 いたんだなーと安心しました。

 思えば1年ちょっと前にABC初参加したのもユニークビジョンプログラミング
 コンテストでした。

1.A – Chord
 単純にチェック対象の文字列のリストを持って置き、インプットが
 その中に含まれるかをチェックしてYesかNoを出力でACでした。

 https://atcoder.jp/contests/abc312/submissions/44035416

2.B – TaK Code
 初見、これがB問題!?と思うほどややこしい問題でしたが
 まぁ、地道に解いたらなんとかいけました。

 【考え方】
“`
P1=”###.”
P2=”….”
P3=”.###”
“`
 ・上記変数を用意しておく 
 ・インプット表の左上から以下をチェック
  1)チェックポイントの1~3行目の左から4桁がP1と一致
  2)チェックポイ

元記事を表示

Pythonで非同期処理

TypeScriptでフロントエンドの開発していた頃に非同期処理をゴリゴリ書いていましたが
今はPythonで同期処理ばかりで、Pythonで非同期処理が作成できないか調べてみました

Python3.11からasyncioというライブラリを使用して非同期処理が作成できるようになりました

https://docs.python.org/ja/3/library/asyncio.html

# 1.asyncioについて

>asyncio は async/await 構文を使い 並行処理の コードを書くためのライブラリです。
>
>asyncio は、高性能なネットワークとウェブサーバ、データベース接続ライブラリ、分散タスクキューなどの複数の非同期Pythonフレームワークの基盤として使われています。
>
>asyncio は多くの場合、 IOバウンドだったり高レベルの 構造化された ネットワークコードに完璧に適しています。
>
>asyncio は次の目的で 高レベル API を提供しています:
>・並行に Python コルーチンを起動 し、実行全体を管理する
>・ネットワーク

元記事を表示

ABC312をPythonで解いてみたよ。(A~F問題)

[AtCoder Beginners Contest 312 (ABC312)](https://atcoder.jp/contests/abc312) をPythonで解きました。
見やすいコードを書く練習も兼ねてます。

TwitterとPayPayリンクをまとめたリトリンを下に貼ってあります。
Twitterのフォローお待ちしてます!(DMでなにか一言いただけるとたすかります…!)
この記事が役に立ったなと思ったら、PayPayのご支援もよろしくお願いします┏○ペコッ

https://lit.link/mer6177999

# A – Chord

## 問題ページ
https://atcoder.jp/contests/abc312/tasks/abc312_a

## 考察
テクニカルな解法はTwitterにも公式の解説にもあるとは思いますが、気合いで解けるならそれで十分okです。
「この中に文字列 $S$ は存在しますか?」の問題はリストよりもセットの方が高速ですが、たかが7個の判定なので正直どっちでもいいです。

## コード
“`Python
lst = [

元記事を表示

【python】ttkbootstrapメータを表示

今回もttkbootstrapで作成した成果物を記録として残します。
今回作成したのはメータを表示するプログラムです。

### 成果物
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2759758/e03c4661-bc00-d7a4-a213-b60c18283cc9.png)

ボタンを押下したら%が増加したり、減ったりします。
一番上のボタンには現在のパーセントが表示されます。

### ソースコード
“`python
from tkinter import *
import ttkbootstrap as tb

root = tb.Window(themename= “morph”) # カラーを決める事が出来る。
root.geometry(‘500×570’)

def up():
my_meter.step(10)

def down():
my_meter.step(-10)

global counter
counter = 5
def click

元記事を表示

玉が行ったり来たりしてるだけなのになぜか円が回っているように見える現象の数理

X で見かけたこの映像。とても不思議。

コードで再現したものが以下。コマが回っているように見える。

![vib_flat.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285861/485b3844-58b8-e215-1833-7589ca93c950.gif)

一方で、色をつけてかつ軌跡がわかるようにすると、振動しているだけだとはっきりわかる。不思議。

![vib_rad.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285861/54e4884a-860e-0f7f-cd98-937258ecfa98.gif)

この小さな円に見えるものは、式にすると以下のようになる。ここで $t$ は時間を表現した実数。

$$
\left(x- \frac12 \cos t \right)^2

元記事を表示

【FastAPI】PydanticでIPv4Addressのインポートエラーが出る理由とは?

# 概要
FastAPIで`pydantic`を使ったコードを実行したら、以下のエラーが出た。
`IPv4Address`とはなんぞや?`pydantic`と関係あるの?と思ったので調べてみました。

“`
from pydantic import BaseModel
File “pydantic/__init__.py”, line 2, in init pydantic.__init__
File “pydantic/dataclasses.py”, line 43, in init pydantic.dataclasses
# | | No action: no method is added. |
File “pydantic/error_wrappers.py”, line 4, in init pydantic.error_wrappers
File “pydantic/json.py”, line 5, in init pydantic.json
ImportError: cannot import na

元記事を表示

【google colaboratory】入門:グラフの描画と可視化の基礎

## google colaboratoryについて初心者エンジニアに向けて
こんにちは。今回は、google colaboratory(以下、colab)について初心者エンジニアに向けて紹介します。colabは、pythonプログラミングをブラウザ上で実行できるクラウドベースの統合開発環境(ide)です。googleが提供しているため、googleアカウントを持っていれば誰でも無料で利用することができます。また、colabはgpuやtpuを利用できるため、機械学習やディープラーニングなどの高負荷な計算にも適しています。さらに、colabは他のユーザーとの共同作業が容易であり、ブログ記事やnotebookとして共有することもできます。

本記事では、colabを使用してグラフの描画と可視化の基礎について解説します。pythonプログラミングの基礎知識を持っていることを前提に進めますが、初心者エンジニア向けに丁寧に解説するため、わからない部分があっても心配ありません。

それでは、colabを使ってグラフの描画と可視化の基礎を学んでいきましょう。

## グラフ描画の基本
グラフの描画と

元記事を表示

Python:データ分析基礎(pandas,matplotlib)

# はじめに

「Python2年生 データ分析のしくみ 体験してわかる! 会話でまなべる!」で学習したので
備忘録として記載しています。

# データ分析とは
客観的な事実をもとにして、よりよい解決方法を見つけること。

統計学とは、大量のデータから傾向を見つけ出して、法則を発見するための技術。

データ分析で必要なのは、データから推測する力と、分析結果を使って説明できる力。

# データ分析の手順(PPDAC)
①Problem(問題の把握)
②Plan(調査の計画)
③Data(データの収集)
④Analysis(データの分析)
⑤Conclusion(結論を考える)⇒①へ戻る

# 表データ
横方向・・・1行、レコード、ロウ(row)
縦方法・・・1列、カラム(columns)

# データフレーム
データフレームとは`pandas`が用意するデータ形式で、Excelのように行と列で管理できる。

**「データフレーム = pd.DataFrame(data)」**のように指定する。

# データフレームの作成

●行データから

元記事を表示

遺伝的アルゴリズムに並列化プログラミングの実施と考察

# 前回の続きです
[遺伝的アルゴリズムのサンプルコード](https://qiita.com/avantia/items/54e3ffcab4f9ec9896f2)

## 参考文献
「C言語による画像処理入門」2000/11/1
(著)安居院 猛、長尾 智晴
[文献のAmazon](https://www.amazon.co.jp/C言語による画像処理入門-安居院-猛/dp/4785631244/ref=sr_1_2?__mk_ja_JP=カタカナ&crid=36QQH3TUBJFRT&keywords=C言語による画像処理入門&qid=1690083613&s=books&sprefix=%2Cstripbooks%2C454&sr=1-2)

## 準備
“`bash:console
pip install numpy
pip install matplotlib
““
## ソースコード
“`python:sample.py
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as

元記事を表示

Python3ではじめるシステムトレード:非復元単純無作為抽出

大きさ$N$の有限母集団から大きさ$n$の標本を非復元単純無作為抽出で得た場合の標本平均の分散は母分散に有限修正を施すことで得られます。この有限修正項を導きたいと思ったのですが、期待値の意味がよくわかっていないので、導出に苦労しました。有限母集団の非復元抽出の際には、期待値は確率を用いて算出するよりも、順列と組み合わせ、場合の数を駆使して計算した方がいいかもしれません。基本的なところを調べメモしましたので、残しておきたいと思います。間違い等がありましたら、ご指摘いただけると幸いです。

18:28

コードはGitthubに掲載しました。
https://github.com/innovation1005/qitta_innovation1005

# 非復元単純無作為抽出の標本平均と不偏推定量
**大きさNの母集団から非復元単純無作為抽出されたn個のデータ点の標本平均が母平均の不偏推定量であることを示します。**

例として、N=3,n=2を考えます。
$X_1,X_2,X_3$の結合分布は2個からなる組み合わせの数、$i_1,i_2$に対して

$$P_x(X_1=x_{i_1},

元記事を表示

Kaggleの無料データセットの確認 ~toyota_cars~

# 概要
Kaggleで公開されている無料データセットを確認してみた。
AIの開発に使用でき、色々な検討ができそう。

# 環境
OS: MacOS 13.4.1
DockerDesktop: 4.20.1
python3.8.5

# データのダウンロード
以下のサイトからダウンロードする。
https://www.kaggle.com/datasets/occultainsights/toyota-cars-over-20k-labeled-images

またその他にも様々なデータが公開されている。その他のものも今後確認してみる予定。
https://www.kaggle.com/competitions/google-universal-image-embedding/discussion/337384

ダウンロードしたファイルを解凍すると、車種ごとの名前でフォルダ分けされた画像があることが確認できる。

# クラス数のカウント
それぞれのフォルダの画像の枚数をカウントし、クラス数を調べる。
Pythonで記述。
“`python: check_data.py
import

元記事を表示

Python初心者が犬・猫の画像認識をやってみる

# 目次
1. はじめに
2. 実行環境
3. ソースコードの解説
3.1 Google Colaboratoryとの連携
3.2 画像データの入手
3.3 学習用データと検証用データの作成
3.4 モデルの定義と学習
3.5 画像分類の結果と出力
4. 実行結果と考察
5. おわりに

# 1. はじめに
こちらはAidemyさんのAIアプリ開発講座(6ヵ月)を受講した成果報告となります。作成したアプリのソースコードと解説をブログという形で投稿させていただきます。

`テーマ「犬と猫の画像分類」`
受講中に学んだ男女識別のアプリ作成を基にして、身近な動物である犬と猫の画像分類アプリを作成しました。
![catdog.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518826/291662f3-d9c4-b674-95ba-e11b5f088e74.jpeg)

# 2. 実行環境
OS:Windows10
・Google Colaboratory
・Visual Studio Cod

元記事を表示

OpenCVでpython wrapper関係のテスト

TL;DR
=====
Python Testの動かし方

`PYTHONPATH=/home/kmtr/work/opencv/modules/python/test ./setup_vars.sh python /home/kmtr/work/opencv/modules/python/test/test_misc.py`

課題
====
– Python wrapper周りの修正コードを書いた。
– あれ?テストコードってどう書いたらいいのかな?
– ソースコードは、opencv/modules/python/test にあるけど
– キックする方法がよく分からない・・・

結論
====
このあたりに書いてた。公式ドキュメントは、あとで見つかったら書いておこう。

– https://answers.opencv.org/question/225157/how-to-trigger-tests-in-miscpythontest/
– https://github.com/opencv/opencv/pull/16405#issuecomment-577096863

Ope

元記事を表示

【Python初学者向け】クラスが分かると在庫管理ができる

Pythonのクラスを使って在庫管理の仕組みを作ります。

今回はクラスへの理解を深めていくことが第一目的なので、仕組みの部分のみを実装します。
(実際に作るとなった場合は、データベースとなる箱に接続する必要があります。)

## クラス?インスタンス?

クラスとインスタンスの違いが曖昧な方向けに、簡単に違いを確認します。

クラスとは設計図のイメージです。基本的に変数とメソッドを組み合わせて作成します。
一方、インスタンスとはクラスを使って実際に作った物を言います。

図で表すとこんな感じです。

![図解 ブログ用 (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/ac6424aa-d33b-e494-9c43-44c1f698551f.png)

クラスについてもう少し詳しく知りたい方はこちらの動画を活用ください。

## 在庫管理を可視化する

次に、コードを書く前に必要な情報と機能を可視化します。

今回は簡潔

元記事を表示

Djangoの自動テストを実行する方法について

# 「Djangoで自動テストをする方法は?」
* 独りよがりな先輩が後輩に教えています。
* たまに後輩からの突っ込みが入ります。直接先輩には言いませんが、、、
* ()と太字で書いています。例, **(ほげほげ) (なんでやねん!)**

Windowsならコマンドプロンプトで次のコマンドを実行してね!
でも「manage.py」があるフォルダーというかディレクトリで実行してね。
**(全然違うディレクトリで実行していて一晩を費やした過去の自分に教えてあげたい)**
**(あとこの先輩、MacとWindows、Linuxだったらコマンドが違うのに全然解説せんやん、、これはググる必要があるな「Django テスト Mac」で検索っと)**
“`:bash windows バージョン
py manage.py test
“`
これを実行するとこんな感じの画面に切り替わるよ!いっちょ前に成功したやつを載せたい!
“`: 実行結果
Creating test database for alias ‘default’…
System check identified no

元記事を表示

Django & JavaScriptで非同期通信のアプリを作る

PythonとDjangoを使って簡単なWebアプリケーションを作ってみます。
また非同期通信の練習として、以下の要件を満たしたものにします。

・バナーとテキストを用意して、バナーをクリックしたら画面のリロードが走らずにテキストと画像が書き換わるシンプルなプログラム

一般的なノベルゲームをイメージするとわかりやすいです。

最終的なディレクトリ構成は以下になります。
“`
ajax_practice
├── myapp
│ ├── …
├── db.sqlite3
├── manage.py
├── myproject
│ ├── …
├── ajax
│ └── …
├── static
│ └── css
│ └── style.css
│ └── images
│ ├── default_image.jpg
│ └── new_image.jpg
│ └── js
│ └── script.js
├── templates
│ └── index.html
└── requireme

元記事を表示

SQL、Python、Power Query、DAX用の軽いサンプルデータ作成クエリ?

# はじめに

簡単なサンプルデータが欲しいときってありますよね?サンプルデータをいれたServerをたたくとか、そもそもサンプルデータを入れたテンプレートファイルつくっとけとか、いろいろ方法はありますが、サクっとサンプルデータが入ったテーブルを作成したいときってありますよね!?

記録しておき、いつでも流用できるようにしておきます。

## サンプルデータ

下記の3テーブルを作成するためのクエリを記述していきます。

Customersテーブル

| CustomerID | FirstName | LastName | Email |
|————|———–|———-|—————————-|
| 1 | 太郎 | 山田 | taro.yamada@example.com |
| 2 | 花子 | 佐藤 | hanako.sato@example.com |
| 3

元記事を表示

Django Form操作(自分用メモ)

## Django自分用メモになります
今回はFormの操作についてまとめます

## 開発環境
OS:mac
エディタ:vscode
python:3.10.9
django:4.1.0

### フォーム作成の基本的な流れ
“`python:
#forms.py
class UserForm(forms.Form): #forms.Formを継承してフォームで入力したい項目を設定する
name = forms.CharField(label=’your name’ max_length=100)
age = forms.IntegerField()
mail = forms.EmailField()

#views.py
form = UserForm() #インスタンスを作成して初期化
return render(request,’template_path’,context={‘form’:form} #contextとしてテンプレートに渡す

#テンプレートへの記述

サイトからのスクレイピング(メモ)

Excelファイルに記載のある指定サイトURLから
指定情報(今回はメールアドレス)をスクレイピングしてくるcoding memo
※未完成版
※精度向上させるため修正予定

“`python:qiita.py
# ライブラリ
import pandas as pd
import requests
from bs4 import BeautifulSoup
import re
from urllib.parse import urljoin
import concurrent.futures
import time

def extract_email_addresses_from_page(url):
“””
サイトからメールアドレスを取得する関数
“””
try:
response = requests.get(url)
response.raise_for_status()
soup = BeautifulSoup(response.content, ‘html.parser’)
t

元記事を表示

OTHERカテゴリの最新記事