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

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

【Project Euler】Problem 5: 最小公倍数

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 3: Problem 5: 最小公倍数

原文 [Problem 5: Smallest multiple](https://projecteuler.net/problem=5)

**問題の要約:1から20までの数の最小公倍数を求めよ**

比較的簡単な問題ですが、よく調べると2022年1月3日現在Google ColabのPythonのVersionは3.7.12で、mathモジュールに**lcm()**は無いようです。

“`Python
! python -V
# Python 3.7.12
“`
従ってmath.gcd()を使って作ります。

“`Python
import math
def lcm(x, y):
return (x * y) // math.gcd(x, y)

print(

元記事を表示

tkinterでGUI作成①

##動作環境

windows 10
python

##tkinterとは
Pythonでグラフィック表示・操作(GUI)のソフトウェアを開発するためのライブラリの一つ
https://e-words.jp/w/Tkinter.html

他にもライブラリはありますが、使いやすそうだったので、tkinterを使用しました。

##簡単な計算アプリの作成

“`python:main.py
import tkinter as tk
import tkinter.ttk as ttk

app = tk.Tk()
app.geometry(“400×400”)
app.title(“calculator”)
class func(tk.Frame):
def calculation():
a = float(val_a.get())
b = float(val_b.get())
ope = str(ope_com.get())
if ope == “+”:
answer = a + b

元記事を表示

【Project Euler】Problem 55: リクレル数

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 3: Problem 55: リクレル数

原文 [Problem 55: Lychrel numbers](https://projecteuler.net/problem=55)

**問題の要約:$N<10^4$のリクレル数を求めよ** [リクレル数(Wikipedia)](https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%AF%E3%83%AC%E3%83%AB%E6%95%B0)に詳しい説明がありますが、リクレル数とは桁を逆順にしたものとの和を求める操作を繰り返して回文数にならない自然数とのこと。永久にならないかどうかは証明されていないそうですが、ここでは$N<10^4$の自然数で回文数になるものは50回以内になると仮定してよいということなので、50回のループでなら

元記事を表示

VSCodeでipynbファイルをHTML出力した時に等幅フォントにならない時の対処法

# 結論
`.CodeMirror pre` の CSS に `font-family: “Courier New”, Consolas, monospace;` を加える。

“`css:コピペ用
.CodeMirror pre {
padding: 0 var(–jp-code-padding);
font-family: “Courier New”, Consolas, monospace; /* add this line */
}
“`

# 試したこと
VSCode で ipynb ファイルを HTML 形式で Export すると、次の写真のように等幅フォントになってないことがある。
![スクリーンショット 2022-01-03 0.44.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1583044/43442989-9323-00ee-54aa-e4ba1cf2a912.png)
出力された HTML ファイルに、次の写真における11947行目に当たる部分の1行だけ

元記事を表示

FastAPI+React+DockerでQiitaみたいなサイトを作ってみたい -5日目-

# 目次
– [1日目 – 初期構成](https://qiita.com/ikeikeda/items/eeed5abb2230bf031ba5)
– [2日目 – /docsの作成](https://qiita.com/ikeikeda/items/478b9e9c45b95d8bb482)
– [3日目 – DBとModelの作成](https://qiita.com/ikeikeda/items/5a12fef0fc39d8a5e1c3)
– [4日目 – CRUDの作成](https://qiita.com/ikeikeda/items/ba73f21676d315468a07)

# 5日目 – ユーザの認証の追加
公式のリファレンスに則ってJWT認証を設定する。

– [【JWT】 入門](https://qiita.com/Naoto9282/items/8427918564400968bd2b)
– [OAuth2 with Password (and hashing), Bearer with JWT tokens](https://fastapi.tiangolo

元記事を表示

第0章 [第2版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践

#この記事は?
昔、[[第2版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践](https://www.amazon.co.jp/Python-%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E9%81%94%E4%BA%BA%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%82%B9%E3%83%88%E3%81%AB%E3%82%88%E3%82%8B%E7%90%86%E8%AB%96%E3%81%A8%E5%AE%9F%E8%B7%B5-impress-gear/dp/4295003379)という本を購入したことを最近思い出しました。

裏をみると結構いい値段したじゃん…
ということで、時間の許す限り遊んでみましょうと思いました。

せっかくなので記録して記事に残せればな

元記事を表示

『賭博破戒録カイジ 』隠れマルコフモデル編

# 1. はじめに

『 賭博破戒録カイジ 』という作品の中で、地下チンチロリンという賭け事が登場します。その賭けの中で主人公であるカイジは、大槻班長という人心掌握術に長けたタヌキにイカサマをしかけられてしまいます。そのイカサマに使用された不正なサイコロが、かの有名な「**四五六賽**」、4・5・6の面しか出ないという代物です。

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1166480/cf31fe31-5e95-a054-2318-005de2fcb4c5.png)
画像引用元:『賭博破戒録カイジ』(c)フクモトプロ/福本伸行

主人公カイジは、類い稀な洞察力を駆使して、これまでの出目の記録からイカサマサイコロの不正に暴きました。凡人の私には気づけそうもないので、数学の力をお借りして、大槻班長のイカサマを暴いていこうと思います。

# 2. 隠れマルコフモデル:Hidden Markov model

まずは、この大槻班長のイカサマ行動を隠れマルコフモデル (Hidden M

元記事を表示

【異常検知】マハラノビス距離を嚙み砕いて理解する (1)

#1. はじめに

先日、井手剛さんのTwitterで注目すべき発言がありました。**異常検知においてSOTAは、マハラノビス距離である**との報告でした。素晴らしいと思いました。
*井手剛さんは、名著[入門機械学習による異常検知](https://www.amazon.co.jp/%E5%85%A5%E9%96%80-%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AB%E3%82%88%E3%82%8B%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5%E2%80%95R%E3%81%AB%E3%82%88%E3%82%8B%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E4%BA%95%E6%89%8B-%E5%89%9B/dp/4339024910)の著者です。
![ide-san.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208980/a26934be-a44b-eab8-bbdd-9

元記事を表示

アニーリングマシンで巡回セールスマン問題を解く

本記事では,PyQUBOとnetworkxを使って「巡回セールスマン問題」を解く方法を紹介します.

## QUBOとは?
QUBOは,Quadratic Unconstrained Binary Optimization (制約なし二値変数2次最適化)の頭文字をとって名付けられた用語です.

QUBO変数は0と1の値をとるバイナリ変数で,$\ \pm1\,$の値をとるスピン変数$\ \sigma_i\,$と次のような結びつきを持ちます.

“`math
\begin{equation*}
x_i=\frac{\sigma_i+1}{2}\qquad \sigma_i\in\{+1, -1\}
\end{equation*}
“`

この$\,0,1\,$の二値をとる変数を用いて,組み合わせ最適化の問題を解くツールが「**pyqubo**」です.最適化の対象となるQUBOの目的関数は次のようになります.

“`math
\begin{align*}
&\mathcal{H}(\boldsymbol{x})=\sum_{i

元記事を表示

Pythonによる気象庁APIからの降水確率の監視と通知

気象庁の半分公式のようなAPIを使って、気象データを監視し、降水確率が50%以上のときには通知をするというサンプルコードです。
通知の部分はLINEAPIなどの通知を使ってください。

“`
import json
import requests
import time

def weatherMan():
# 気象庁データの取得
jma_url = ‘https://www.jma.go.jp/bosai/forecast/data/forecast/170000.json’
data = requests.get(jma_url).json()

# 時間帯の取得
pop_0_time = data[0][“timeSeries”][1][“timeDefines”][0]
pop_1_time = data[0][“timeSeries”][1][“timeDefines”][1]
pop_2_time = data[0][“timeSeries”][1][“timeDefines”][2]
pop_3

元記事を表示

got an unexpected keyword argumentエラーが発生したので駆逐してやる!

# はじめに
Djangoからurls.pyで引数を指定してViewをコールした時に、
発生した「got an unexpected keyword argumエラー」を駆逐したので調査報告します。

この世から、エラーを1件も残らず駆逐してやる!!

# 目次
[1.やりたいこと](#1-やりたいこと)
[2.発生したエラー](#2-発生したエラー)
[3.原因](#3-原因)
[4.解決策](#4-解決策)

#1. やりたいこと
urls.pyで引数を指定してViewをコールしたい。

#2. 発生したエラー
urls.pyのpath関数とviews.pyのviews関数に引数を指定したら
「got an unexpected keyword argum」エラーが発生した。
エラー画面

#3. 原因
urls.pyの「実引数名」

元記事を表示

Pythonクローリング&スクレイピング

C言語で副業をしようと思いましたが、言語の性質上か短期での案件がありませんでした。。。

案件を見ているとpythonでスクレイピングが多そうだったので、下記を学習することにします。
[Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド](https://www.amazon.co.jp/dp/B07VZV2QHL/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

随時更新していきます。
更新日(2022/01/02)

# 環境構築
本の記載に従って、VatiualBoXとVagrantを使用します。
記載の通りでスムーズに行えました。

# Webページの取得
サードパーティ ライブラリRequestを使用した。
importには本書記載の方法ではうまくいかず、下記の赤字部を追加する事で動作できた。
★後日調査する。★

import sys
sys.path.append(‘/usr/lib/python3/dist-packages’)

元記事を表示

Starry DataとXenonpyで意識の低いマテリアルズインフォマティクスをする② 記述子を削減する

##はじめに

###この記事で書くこと
この記事は、以下の記事の続きである。

https://qiita.com/ojiya/items/9f8f5d7ab439518c41ba

上の記事に書いたように、意識の低いマテリアルズインフォマティクスをやりたい。この記事では、前回作成した記述子を減らして、回帰や予想に必要なものを抽出していく。実のところ、これには決まったやり方があるわけではないのだが、この記事で書くようなことは、多くの場合に、やっておいて損はない。と思う。

###この記事で使うもの
・Starry Data 2
東京大学の桂ゆかり先生( https://twitter.com/nezdenmama )のStarry Dataプロジェクトからデータを持ってくる。アクセスしてみればわかるが、ものすごいデータ量である。内容の信頼性も高いので、これからデータ科学的に材料化学データを扱いたい人にはもってこいのデータベースである。
https://sites.google.com/site/yukarisearch/starrydata

・Xenonpy
統計数理研究所吉田研究

元記事を表示

外からアクセス可能な見守りタイムラプスカメラを自作する

# はじめに
実家に据え付けた[ラズパイ家族見守りサービス](https://qiita.com/mo256man/items/13084c865bfbf512a691)は順調に動いている。私以外でこれを使うに値する唯一の人物・妹にも本LINEアプリを教えた。

https://qiita.com/mo256man/items/13084c865bfbf512a691

もう一つ実家に置きたいIoTガジェットがある。ラズパイプログラミングの定番中の定番、監視カメラだ。
生活空間をのぞき見するわけではない。季節により彩りを変える庭を定点撮影し、ある程度たまったらタイムラプス動画を作りたいのだ。
メイン業務から離れてもOKのラズパイブームが職場に訪れた(半導体不足で入手困難なのに…)今、満を持してこいつに取り掛かることにした。

# 要件(←使い方あってる?)

– 当然、家庭内LAN内の外からアクセスできること。
– リアルタイムな画像取得は望まない。一定時間ごとに撮影するようにする。
– 「一定時間ごと」にこだわりたい。
15分ごとに撮影するとして、プログラムが走り始めたタイミ

元記事を表示

Speech SDKからAzure Cognitive ServicesのSpeech Serviceを使って自分の英語の発音を評価する

英語の自分の発音を客観的に評価するって難しいですよね?

自分は日本語の発音なら「この人は訛ってるなー・・」とか、「この人は綺麗だなー・・・」とかわかりますが英語だとわかりません。逆に、他人の発音が評価できるようになれば、自分の発音も改善されるのでないでしょうか?しらんけど、

そこで、2021年のigniteで発表されていたSpeech Serviceの発音評価機能を使って自分の発音がどれだけイケてないのか数値化したいと思います。

ぶっちゃけ、公式のドキュメント以上の情報はなく、Azure Cognitive ServicesからSpeech Serviceを作成して、Python+Speech SDKで発音評価機能を使ってみるという内容になっています。

結果として単語別に点数が返ってきます(音素レベルでも確認可能)。「2022年はきれいな英語で会話したい!」という方はぜひ試してください!!

# Azure PortalからSpeech Serviceを作成する

この手の文章ってどこから説明するか悩むんですが、[Azure Portal](https://portal.a

元記事を表示

オレオレ式完全版Youtube download

※これはwindows向けです。MacやLinuxは若干違います…

ちなみにこれ、ニコニコやTwitter、Instagramなどの動画もダウンロードできます。試したことはありませんが、Por〇hubも行けるのではないでしょうか(おい
gigazineの記事で、yt-dlpについて解説されていたので、技術的なことはなしに(じゃあなぜqiitaに投稿するんだ)インストール方法、使い方を説明していきます。

yt-dlpのインストール


まあ、これは簡単ですね(上から目線するな)。
とりあえず、ココ(64bitのwindows向け)から、写真の通り

元記事を表示

【画像処理】Numpyでモルフォロジー演算

Numpyでモルフォロジー演算を実装してみます。

まず、使用する画像を読み込んでグレースケール画像に変換します。

“`python
import numpy as np
import matplotlib.pyplot as plt

original_image = plt.imread(image_name)
if np.issubdtype(original_image.dtype, np.floating):
original_image = (original_image * 255).astype(np.uint8)
gray_image = (0.2116 * original_image[:,:,0] + 0.7152 * original_image[:,:,1] + 0.0722 * original_image[:,:,2]).astype(np.uint8)
plt.imshow(gray_image, cmap=’gray’)
“`

![GrayImage.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

FastAPI+React+DockerでQiitaみたいなサイトを作ってみたい -4日目-

# 目次
– [1日目 – 初期構成](https://qiita.com/ikeikeda/items/eeed5abb2230bf031ba5)
– [2日目 – /docsの作成](https://qiita.com/ikeikeda/items/478b9e9c45b95d8bb482)
– [3日目 – DBとModelの作成](https://qiita.com/ikeikeda/items/5a12fef0fc39d8a5e1c3)

# 4日目 – CRUDの作成

前回各モデルの設定が完了したのでそれぞれのエンドポイントで必要な分のCRUDを設定する

“`python:api/v1/cruds/user.py
from sqlalchemy.orm import Session

from api.v1.models.user import User
from api.v1.schemas.user as user_schema

def get_user_by_login_id(db:Session,login_id:str):
return db.que

元記事を表示

競技プログラミングでの標準入力

真面目に取り組み始めたばかりでよく忘れるので整理(Atcoder:灰色)

“`python:入力1
a = input() # <= 'abc' print(a) # abc ``` ```python:入力2 b = int(input()) # <= '10' print(b) # 10 ``` ```python:入力3 c, d = input().split() # <= 's t' print(c) # s print(d) # t ``` ```python:入力4 e, f = map(int,input().split()) # <= '10 20' print(e) # 10 print(f) # 20 ``` ```python:入力5 g = input().split() # <= '1 2 3 4 5' print(g) # ['1', '2', '3', '4', '5'] ``` ```python:入力6 h = list(map(int, input().split())) # <= '1 2 3 4 5' print(h) # [1,

元記事を表示

PyCaretで機械学習をしてみた

## 1はじめに
[PyCaret](https://pycaret.org/)は、Pythonのオープンソースの機械学習ライブラリです。
データの前処理、モデル(アルゴリズム)の比較、チューニングの自動化をしてくれます。

## 2 環境・バージョン
PyCaret 2.3.5
Google Colaboratory

## 3 PyCaretのインストール
“`
!pip install pycaret
“`
## 4 データセットの取得

“`
from pycaret.regression import *
from pycaret.datasets import get_data
“`
・Diamndのデータを取得

“`
dataset = get_data(‘diamond’)
“`
![スクリーンショット 2021-12-30 0.09.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/ebc736fa-8726-67c1-029d-34284e1b9bef.

元記事を表示

OTHERカテゴリの最新記事