Python関連のことを調べてみた2022年11月16日

Python関連のことを調べてみた2022年11月16日
目次

JupyterNotebook+Docker+VSCode(Devcontainer)の開発環境構築

![my image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109639/b13af8f9-04ce-5021-dbf8-36c9266a03c4.png)

## 経緯
– 環境を汚さずにパッとVSCodeのDev Containerで動くPython(Jupyter notebook)の開発環境が欲しかった
– Githubに上げたので共有

## 動作検証した環境
– Windows 11+WSL2 (Ubuntu)
– Docker 20.10.20
– VSCode 1.73.1
上記の環境構築に関しては[こちら](https://lethediana.sakura.ne.jp/tech/archives/steps-ja/1169/)

## 手順
1. [jupyter-docker-devcontainer](https://github.com/ttnt-1013/jupyter-docker-devcontainer)をcloneし、VSCodeでフォルダを開く
`git clone

元記事を表示

Python Language – format() built-in Floating Point Rounding(浮動小数点数の端数処理 – 丸め)

Python では、他の多くの言語と同様に浮動小数点数における端数の丸めが行われます。

__15. Floating Point Arithmetic: Issues and Limitations__
https://docs.python.org/3.9/tutorial/floatingpoint.html

__The Perils of Floating Point__
https://www.lahey.com/float.htm

Python では IEEE 754 の `Round to nearest, ties to even(最近接丸め(偶数)= 偶数丸め(= 銀行家の丸め =Bankers’ Rounding ))` を採用しています。
__IEEE 754__
https://en.wikipedia.org/wiki/IEEE_754#Rounding_rules

※ decimal 等で丸めの方法を変更することも可能です。
__Rounding modes__
https://docs.python.org/3/library/decimal.htm

元記事を表示

Python Language – Index & Slice

Python には様々な Data Type があり、それらの中には Index や Slice でその一部を取得したり、変更したりできるものがあります。

__3. An Informal Introduction to Python__
https://docs.python.org/3.9/tutorial/introduction.html

__5. Data Structures__
https://docs.python.org/3.9/tutorial/datastructures.html

ここでは、以下の代表的な Data Type について、使用方法の違いをご紹介します。

– String (Str)(文字列)
– List(リスト)
– Tuple(タプル)
– Set(集合)
– Dictionary (Dict)(辞書)

#### 環境
以下の Python 3.9 / Linux 環境で確認します。
“`shell
$ uname -si
Linux x86_64

$ python3.9 -V
Python 3.9.13

$ python3.9

元記事を表示

Python Language – Comprehension(内包表記)

Python では、いくつかの言語がサポートしている内包表記 (Comprehension) が使用可能です。

__5.1.3. List Comprehensions__
https://docs.python.org/3.9/tutorial/datastructures.html#list-comprehensions

__リスト内包表記__
https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%B9%E3%83%88%E5%86%85%E5%8C%85%E8%A1%A8%E8%A8%98

ここでは、以下の代表的な Data Type について、簡単な使用方法をご紹介します。

– String (Str)(文字列)
– List(リスト)
– Tuple(タプル)
– Set(集合)
– Dictionary (Dict)(辞書)

#### 環境
以下の Python 3.9 / Linux 環境で確認します。
“`shell
$ uname -si
Linux x86_64

$ python3.9 -V
Python 3.9.

元記事を表示

TechFUL 難易度2「ねずみ算」

今回はTechFULの「ねずみ算」を解いてみた
問題は下記のURL

https://techful-programming.com/user/practice/problem/coding/16317

# 問題概要
$N$匹のねずみがいます。このねずみを**第1世代**とします。
$i$世代目のねずみが$Ni$匹の時、$Ni+1$世代のねずみの数を$A*Ni+B$匹とします。
整数$N,A,B,G$が与えられます。
$G$世代目のねずみの数を求めてください。

# 制約
– $ 1 \le N \le 100$
– $ 2 \le G \le 20$
– $ 1 \le A,B \le 20$
– 64bit符号付き整数の範囲に収まるような入力が与えられるものとする。

# 解説
動的計画法の最初の問題にいいのでは?
そのまま実装すればよい。
$G$世代目のねずみの数を求めるが、添え字が**0**から始まることに注意。
また、型にも注意しよう。

# PythonとC++による実装例
**C++による実装例**
“`c++
#include
usi

元記事を表示

PythonでDocumentScanner(斜めの四角を長方形に)

# 四角の形を補正したい

以下のような斜めになった四角を90度の長方形に補正したい。
いわゆるドキュメントスキャナー。

![pexels-pixabay-163194.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/b20ac42f-821e-900d-69b0-b054aa8f50cf.jpeg)

![d977f744-8b51-464c-b307-dc9e5575cdd0.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/7e731545-09bf-3eb0-a373-40b0632a1a56.jpeg)
**↑補正された画像**

# Python単体で可能

以下のコードでできます。

“`python
import cv2
import numpy as np

def biggest_contour(contours):
biggest = np.array([])

元記事を表示

AIに意識はあるの?(序の序)

# ハードな問題

で、まあこんな話をいきなり初めても、しょうがないぐらいに大きな話題です。しかも量子の話はいったん抜かすのはごめん。量子もAIも扱う対称がでかすぎるし、ADHDの人だから話は取っ散らかるよw

意識に関しては書き出すと何千ページとかになっても書ききれない謎の話なのですが、まあまずここではさわりの所の自分の認識をざっくりと書いてみますね。深く話するとそれだけでも重すぎるので軽めにします。

いわゆる **ハードプロブレム** 。 **クオリア** の問題。現代科学の領域を完全に超えてる部分。

youtubeとか見てても、茂木健一郎氏はじめ、数々の人たちがこの問題を述べてるわけですが。なのでいろいろ考えたりしたい人はそっちをまず見たり、茂木さんの本とか、他の人の本とか見たらいいと思う。このブログは入門じゃないから細かい説明はできないと思う。

[自己言及性と、時間の経過、クオリアの生成](https://www.youtube.com/watch?v=l3cfkTLuQL0)
【毎日こういうの地味に上げてる茂木さんw】

まずは前提的な話から始めないと何ともとっつけない

元記事を表示

JR EAST Train SimulatorでZUIKIの電車でGO!!用コントローラを使えるようにする(完結)

# はじめに
**[この記事][1]の続きです。**
遂に[JR EAST Train Simulator][5]が正式リリースされました!!やったぜ。オープニングがカッコイイ。
ということで(?)、一応完成としていた前回記事の状態から、ちょっとだけ手を加えました。(これ以上の変更点の追記は可読性を下げそうな気がしたので別記事にしました。)
# 概要
* コントローラの操作をすべてマウス操作として入力する
* コントローラのボタンにキーボードのキーを割り当てる
# コントローラの操作をすべてマウス操作として入力する
前の記事では、ハンドルの位置変化をキー押下ではなくマウスホイールのスクロールとして入力するように変更しました。
すなわち、ハンドルがNおよびEB位置の場合の処理はそれぞれ`S`、`1`のキー押下のままなわけですが、これでは211系などの2ハンドル車ではうまく動作しません。2ハンドル車を1ハンドルマスコン型のコントローラで操作するというのはいかがなものか…という気はしますが、一応遊べるようにしておきます。
#### マウスホイールで操作する
[公式の操作マニュアル][2]を

元記事を表示

[Django/Python]requestsモジュールでよく使うところ。

# はじめに
業務でAPI連携を設計から任された時に使ったrequestsモジュールについて自分の議事録としてまとめようと思います。個人の感想ですが、直感的でわかりやすく多機能なモジュールなのですごくありがたかったです。ただ一点、リトライの処理がurllib3の方に比べて使いにくかったなというのが残念に感じました。

公式のクイックスタートがすごいわかりやすかったので、そちらを一通りやってみるのもおすすめです。
## バージョン
“`bash:version
% pip list | grep requests #インストールしてない人は pip install requestsを実行
requests 2.28.1
% python -V
Python 3.9.6
“`
## requestsモジュールができること
できることはたくさんあるのですが、自分がよく使われるだろうと思った機能を6つ紹介させて頂きます。

### 1. リクエストの生成
たった2行であるサイトの情報を取得することができます。
今回は`get`を使っていますが、`post`,`put`,

元記事を表示

PythonでFlaskを使ってPOSTで送られたデータの確認用

PythonでFlaskを使い、ウェブアプリを作っています。
POSTで送られたデータの確認をしたいと思い、コードを書きました。
このコードは、汎用で使えると思います。
HTMLの部分は、base.htmlで作って継承できるように書きました。

“`Python
{% extends ‘base.html’ %}
{% block head %}
データの出力
{% endblock %}
{% block content %}

キーとバリュー

キー一覧

    {% for key in user_data.keys() %}

  • {{ key }}
  • {% endfor %}

入力されたデータ

    {% for key, value in user_data.items() %}

  • {{ key }}: {{ value }}
  • {% end

元記事を表示

『サイバーセキュリティプログラミング第2版』の読書メモ (4)

ひきつづき『サイバーセキュリティプログラミング第2版』の読書メモです。

https://www.oreilly.co.jp/books/9784873119731/

4.3 章まで進みました。記載されているコードをじっくり確認しながら読み進めています。

## P86 detect 関数より

python から OpenCV を使って画像データに人の顔が含まれるかを検出する関数です。が、「ある一行」の理解につまづきました。

“`python
rects[:,2:] += rects[:,:2] // ⑤
“`

P87 の解説によると、

> … rects は (x, y, width, height) という形式であり、x, y は四角形の左下の座標、width, height は四角形の幅と高さを表す。
> ⑤に示す Python のスライス構文により上記の rects データを (x1, y1, x1+width, y1+width) ― 言い換えると (x1, y1, x2, y2) ― に変換することで、cv2.rectangle の引数として利用しやすくしてい

元記事を表示

アニーリング基礎1.荷物の分担

– Aさん、Bさんの二人が、それぞれ重さ$w$が異なる$N$個の荷物を出来るだけ均等に分配する。但し、それぞれの荷物には持ちにくさ$D$があり、持ちにくさを考慮した上で、出来るだけ荷物を均等に分配する問題を、Dwaveのアニーリングマシンを用いて解く。
– **参考**:東北大学大関先生講義  https://altema.is.tohoku.ac.jp/QA4U/
– ***Keyword*** :*Dwave基本設定*、*Pyquboの使い方*、*罰則法*

### 準備1:量子アニーリング用モジュールのインストール
まず、初めに、以下のモジュールをインストールする。
– ***dwave-ocean-sdk***: Dwaveアニーリングマシンのモジュール
– ***openjij***: アニーリングシュミレーター
– ***pyqubo***: Qubo行列作成サポートモジュール

“` Python
pip install dwave-ocean-sdk
pip install openjij
pip install pyqubo
“`
### 準備2

元記事を表示

湧き水APIをPythonでたたいてみた!

# はじめに
タイトルどおり、Pythonを使ってこちらの[湧き水API](https://springwaterapi.docs.apiary.io/#)を叩いてみました。

## 開発環境
– OS Windows 10(NVIDIA GTX 1650Ti,16GB RAM, i5-10300H CPU)
– Visual Studio Code 1.73.1
– Python 3.9

## 実際にコード書いていきます
### 初めにcurlコマンドでAPIを叩いてみる
Windowsのコマンドプロンプトだと日本語入っているとうまくできないので
一旦「https://livlog.xyz/webapi/springWater?q=愛知県」
をブラウザでURLを入力し、また再度URLをコピーします。
“`
curl -s “https://livlog.xyz/webapi/springWater?q=%E6%84%9B%E7%9F%A5%E7%9C%8C”
“`
コマンドプロンプトに戻って`curl`を使うと
![スクリーンショット (3).png](https://qii

元記事を表示

Webスクレイピングアプリケーションを作成。

最近は、Udemyの講座である「爆速で5つのPython Webアプリを開発」をやっている。

https://www.udemy.com/course/python-streamlit/

本日は最後のアプリケーションであるWebスクレイピングを用いた簡単なアプリケーションを作成した。
そのアプリケーションをHerokuと呼ばれるものにデプロイをして自動的に更新できるようにした。
実際にはクレカの情報が入力出来なかったので自動更新はまだ実装していない。

他に自分でアプリケーションを作成して自動更新したいようなら別のクレカで試そうと思う。
下のURLが今日の成果物です。お疲れ様でした。

https://udemy-streamlit-demo.herokuapp.com/

元記事を表示

【夢】スマートホーム化を始めた ~寝起き編~

# はじめに
「スマートホーム」っていいですよね。
言葉ひとつで複数の電子機器をまとめて操作したり、居住者の行動パターンを学習して自動的に家電を制御したり…。
そんなスマートな暮らしをしてみたい。ので作ってみます。
本記事は「寝起き編」ということで、続編があるかもしれないです。

※自分の調べた範囲では「スマートホーム」という用語の明確な定義が見つかりませんでした。本記事では、「自動・遠隔制御が可能な家電を導入した居住空間」の意で使用しております。

# やりたいこと
記念すべきスマートホーム化への第一歩として、**起床時にアラーム+太陽光で気分よくスッキリ目が覚める**ような仕組みを作ろうと思います。
自分はアラームさえセットしていれば起きれるタイプなのですが、それでも眠気と激闘を繰り広げHPゲージを真っ赤にしつつ起床しております。朝スッキリと目が覚め、HPゲージが緑のまま一日を始めることができたなら、最高の一日になる気がしませんか?最高に決まっています。

ちなみに後述の[ガジェット](#ガジェット)を使えば、専用のアプリから「指定の曜日、時刻にカーテンを開く」といった設定が可

元記事を表示

Databricks にて Azure Synapse Analytics Dedicated SQL (専用 SQL プール) から Spark コネクター経由でデータを取得する方法の検証

## 概要

Databricks にて Azure Synapse Analytics Dedicated SQL (専用 SQL プール) から Spark コネクター経由でデータを取得する方法の検証結果を共有します。

専用 SQL プールに対して Spark コネクター経由でデータ交換を行う場合には、下記図のようになります。Databricks(Spark) <-> Storage <-> 専用 SQL プール というようにデータのやり取りを実施するため、それぞれの認証設定が必要となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/9a2f11eb-4119-6280-036e-26e7fe022046.png)

引用元:[Azure Synapse Analytics – Azure Databricks | Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/databricks/exter

元記事を表示

n**2+1の素数判定を2次ふるいで行う

### 【例題 1】以下の問題を解け

“`math
nが2 \le n \le Nの整数の時 \ \ (N=10^7) \\
f(n) = n^2+1 が素数になる個数を求めよ  \\
“`
pythonではsympyを使えば一行で書け速度もそこそこですがわずかに1分をオーバーしました。今回はこれを2次ふるい法と呼ばれるアルゴリズムを使って解いてみたいと思います。

“`python
from sympy import isprime
N = 10**7
print(sum([isprime(n**2 + 1) for n in range(N+1)]))
# 456361
“`

### 2次ふるい法 (Quadratic sieving)

ここで紹介する「2次ふるい法」は一般に素因数分解で使われるものとは異なり、2次式で「エラトステネスのふるい」のように合成数を除いて行って素数だけが残るようにするアルゴリズムです。詳細は以下のサイトにありますが長文なので、そのさわりだけを紹介します。

> [Prime sieving for the polynomi

元記事を表示

VSCodeでPythonインタープリターが選択できない

![OS-Windows 10](https://img.shields.io/badge/OS-Windows_10-brightgreen) ![python-3.10.7](https://img.shields.io/badge/python-3.10.7-brightgreen) ![VSCode-1.73.1](https://img.shields.io/badge/VSCode-1.73.1-brightgreen)

知人がだいぶ困っていたので、解決策を書き残しておきます。

# 結論

ユーザー名やフォルダ名に **全角スペース** を使わない方が良い

# 問題
Winodows に Python と VSCode をインストールしたものの、Python 拡張機能が python.exe を認識してくれない。

右下のインタープリター表示部はこんな感じ。
![黄色く「⚠インタープリターを選択」と出ている](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470813/109fba77-577

元記事を表示

pytorchの基本的な使い方

# この記事で話す内容
– pytorchでどのようにニューラルネットの学習プログラムを書くかを示すために、「基本のプログラム」を書きます。

# 環境構築について
### installするもの
– pytorch(ニューラルネットを書くために使用)
– tensorbard(ニューラルネットの学習ログを取るために使用)
– tqdm(学習の進行度をプログレスバーとして使うのに使用)
– matplotlib(学習データのサンプル画像を表示するために使用)

# 準備
### 1. データセットの用意
– CIFAR-10(画像データセット)
http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2510180/5081d467-4c6f-f37f-9083-f8846d978b95.png)

### 2. ディレクトリ構成
“`
workspace/          ← 適当

元記事を表示

10万件以上の物件データを学習したのにクソ失礼にも家賃69万の物件に対して28万だと査定した機械学習モデルは何を考えているのか。

こちらの記事をご覧いただきありがとうございます。
ちゃんと内容が伝わるようなタイトルを考えたらラノベみたいになってしまい、かえってわかりにくい気がしてきました。

以前からいくらかSUUMO物件について機械学習を用いたデータ分析を行っています。
今回は、10万件以上の物件データを与えてなかなか高精度な家賃予測が可能となった機械学習モデルが、クソ失礼にも家賃が安いと査定した高額物件がいくらかあったので、何を考えてクソ失礼な査定となったのかを調べます。
~~もしかしたらボッタくりかもわかりませんからね。楽しみですね。~~

## モデルの学習について

基本的には[前回記事](https://qiita.com/tomyu/items/1f3cf673d809114424a5)と同じです。

### 使用した機械学習モデル

以前から引き続き __LightGBM__ を使用しています。

### 使用したデータ

SUUMOからスクレイピングした物件データ __196093__ 件を使用しています。
うち137265件を学習データ、58828件をテストデータとしています(7:3に分けてい

元記事を表示

OTHERカテゴリの最新記事