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

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

Plotlyのquiver plotで遊んでみた

##はじめに
plotlyを使ってみたいなと思って検索したら、quiver plotなるものを発見。
面白そうなのとあまり日本語訳で書かれた資料がなさそうだったので、遊び半分でトライしました。

#環境
Colab環境下で実施

##内容
渦っぽいグラフを描いてみました。

“`python
import plotly.figure_factory as ff
import numpy as np
import math

x,y = np.meshgrid(np.arange(-1, 1, 0.25), np.arange(-1, 1, 0.25))

r = np.sqrt(x**2+y**2)
u = -y*np.exp(r)
v = x*np.exp(r)

fig = ff.create_quiver(x, y, u, v)
fig.update_layout(width=500, height=500,xaxis_range=[-1,1],yaxis_range=[-1,1])

fig.show()
“`
![image.png](https://qiita-ima

元記事を表示

【python】psycopg2のcpyコマンドで詰まった

# 概要

“` python
sio.seek(0)
cur.copy_from(sio , table=’hoge.hogehoge’, sep=’,’, null=”)

# Raise Exception: relation “hoge.hogehoge” does not exist
“`

search_pathにもスキーマあるやろ!
selectできるのになんでや!

# 解決(してないけど)

“` python
sio.seek(0)
cur.copy_from(sio , table=’hogehoge’, sep=’,’, null=”)

# Raise Exception: value too long for type character(12)
“`

スキーマ名抜かしたらあっさり動いた。
そういうもんなんですか???
エラー出てるけどこれはテーブル直すのでヨシ。

tmpテーブルでやりくりするほうがいいのかしらん。
本日もデータベースと仲良くなれない。

元記事を表示

拡張ユークリッドの互除法のシンプルな実装

# はじめに
拡張ユークリッドの互除法による逆元の計算はしばしば必要になりますが,そのコードは再帰を使ったり変数が増えたり複雑になりがちだと思います.
ここでは拡張ユークリッドの互除法の変形を用いたシンプルな逆元の計算アルゴリズム紹介したいと思います.

この記事は拡張ユークリッドの互除法が何かを知っていることを前提とします.

# 概要
通常の拡張ユークリッドの互除法では入力 $a, N$ が与えられたとき $as + Nt=u$ と $ax+Ny=z$ を互除法にかけ変数 $(s,t,u),\ (x, y, z)$ の更新を交互に繰り返します.
今回紹介する変形のポイントは,一つ目の式を $s = 0,\ t = 1,\ u = N$ と固定してしまい二つ目の式のみを更新するようにすることです.
逆元の計算には $t,\ y$ が必要ないとしてもよいことに注意すると実装は以下のようになります.

“`python
def inv(a, N):
x = 1
z = a
while z > 1:
q = N // z
z = N

元記事を表示

foliumを使ってコロプレスマップを作成する

## はじめに
僕は地図を描画することが結構好きで、今まで愛知県のデータを使ってコロプレスマップを作ったりしていました。今回はPythonで`leaflet.js`が使うことができる`folium`というライブラリを使って、コロプレスマップを作成してみたいと思います。

## foliumを使ってコロプレスマップを作成する
### `folium`とは

`leaflet.js`はインタラクティブなマップを扱えるJavaScriptのライブラリで、それをPythonでも扱えるようにしたのが`folium`です。Pythonで扱えるため、簡単にインタラクティブなマップを扱えるようになります。

https://python-visualization.github.io/folium

### 実際に描画してみる
今回は都道府県ごとに区切ったコロプレスマップを作成してみたいと思います。都道府県の県境のデータは、以下のリポジトリに上がっている`japan.geojson`を使用させていただきました。

https://github.com/dataofjapan/land

スクリプトは以

元記事を表示

競プロ初心者がPythonでAtCoderを始めるのに役立った記事まとめ

#はじめに
競技プログラミングに関して知識ゼロの状態から勉強をしていて、実際に参考にしているものや見返す頻度の高いものをまとめました。これからPythonで競技プログラミングを始める方におすすめの記事のまとめになっています。

#入茶を目指して
https://qiita.com/drken/items/fd4e5e3630d0f5859067

https://qiita.com/e869120/items/f1c6f98364d1443148b3

https://qiita.com/uniTM/items/a4ad3f0bb67e12380e75

https://qiita.com/shirumono/items/0d6a3abb747d6b144cca

https://qiita.com/ryusuke920/items/4a3bf6cd07d4df39c06e

https://kenkoooo.com/atcoder/#/table/

https://atcoder-tags.herokuapp.com/

#Pythonの基本的なこと

https://qiita.

元記事を表示

Python Webアプリケーションフレームワークについて簡単に紹介(学習まとめ)

#初めに(前書き)

今回は、PythonのWebアプリケーションフレームワークについて簡単に紹介していきたいと思います。

#本題(本文)

「Django」
 Pythonにおける最も人気のあるフルスタックフレームワーク。

「Flask」
 Pythonで書かれたマイクロフレームワーク。

「Masoniite」
 モダンで開発者中心のフレームワーク。

「Pyramid」
 「小さく、速く、堅実な」オープンソースのフレームワーク。

「Sanic」
 とにかく速く動くように書かれたフレームワーク。

「Vibora」
 Flaskにインスパイアされたフレームワーク。

「Tornado」
 非同期ネットワークライブラリとセットにされたフレームワーク。

※調べてみると、1番人気は「Django」で、2番人気が「Flask」といったところでしょうね。

ここからは、「Django」と「Flask」の違いについて解説・紹介しておきます。

「Django」は、2005年に開発されたもので、Webアプリケーションに必要な機能が一通り揃っているフルスタックフレームワークです。フルス

元記事を表示

collections.abcから見るPythonデータ型の分類

## まえがき

最近いろんなPython本を読み漁っているのですが、
コンテナ(container)やシーケンス(sequence)などの定義が混乱してしまうのは私だけでしょうか?
備忘がてら整理してみようというのが今回のテーマです。

## TL;DR

| 型 | mutable? | container? | iterable? | iterator? | collection? | sequence? |
| — | — | — | — | — | — | — |
| bool | × | × | × | × | × | × |
| int | × | × | × | × | × | × |
| float | × | × | × | × | × | × |
| complex | × | × | × | × | × | × |
| str | × | ○ | ○ | × | ○ | ○ |
| tuple | × | ○ | ○ | × | ○ | ○ |
| bytes | × | × | ○ | × | × | ○ |
| frozenset | × |

元記事を表示

AtCoder Beginners Selection 11問をpythonで解いてみた

AtCoderの初心者向け問題集である [AtCoder Beginners Selection](https://atcoder.jp/contests/abs/tasks) の11問をPythonで解説します。

# [Welcome to AtCoder](https://atcoder.jp/contests/abs/tasks/practice_1)
“`python:PracticeA
a = int(input())
b, c = map(int, input().split())
s = input()
print(a+b+c, s)
“`
詳しい解説は[こちら](https://tysonblog-whitelabel.com/atcoder-beginners-selection_practice1)

# [Product](https://atcoder.jp/contests/abs/tasks/abc086_a)
“`python:ABC086A
a, b = map(int, input().split())
ans = a * b
if ans %

元記事を表示

Blenderでフラクタル

## シェルピンスキーのギャスケット

Blenderで[シェルピンスキーのギャスケット](https://ja.wikipedia.org/wiki/シェルピンスキーのギャスケット)を作ってみました。

※ 色は別途つけています。

## 作り方

Scriptingワークスペースで、下記をコピペして実行します。

“`py
import bpy
import numpy as np

def sier(pos, size):
s3 = size * 1.73205
if size <= 0.2: opt = {"radius1": size, "depth": s3, "vertices": 3, "calc_uvs": False} bpy.ops.mesh.prim

元記事を表示

代理店長私のPythonでRPA作ってみた。

今アルバイトをやっている飲食店で、店長が社員からアルバイトになって、私がお昼を中心に店長の代理的なポジションをやることになった。それに伴い、シフト作成と給料計算の一部を担当することになった。
なんだけど、給料計算の一部というのが、手動でやっていて意外と手間なことに気づいたのである。
というのも、お店でのシフトや打刻の管理は、2つのサイトで行っていて、連携もされていない。。。
手間がかかるなぁ困った代理店長私は、あることを思いついた。ちょうどPythonの勉強をし始めたところだったから、RPAを作って自動化しようじゃないか!と

## やりたいこと
はい、ということで実現したいことを説明するとこんな感じだ。

#### 実際の打刻が記録されている、データを引っ張りたいページ(以降、甲と呼びます)
![スクリーンショット 2022-01-17 19.55.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2292175/85f8127b-2c6e-ac0f-bc9a-9240036054b1.png)

元記事を表示

poetry installが動いているか確認したい

# この記事について
Poetryで、python仮想環境を作ろうとしたときに、下記の表示で止まっていてインストールが動いているか分からない。
もうチョット詳細なログを出して、インストールが動いていることを確認したい。

“`bash
$ poetry install
Using virtualenv: /hoge/foo/bar/.venv
Updating dependencies
Resolving dependencies…
“`

# 確認方法
### verboseすればよい
https://python-poetry.org/docs/cli/#:~:text=verbose

#### ざっくりverbose(for normal output)
“`bash
$ poetry install -v
“`

#### 細かくverbose(for more verbose output)
“`bash
$ poetry install -vv
“`

#### もっと細かくverbose(for debug)
“`bash
$ poetry inst

元記事を表示

OpenCVでRGB画像と2値化画像を連結させて表示したい

OpenCVでの画像連結方法

OpenCVでは複数の画像を連結させたい時は、cv2.hconcat/vconcat関数を用います。例として、以下のコードのように記述します。

“`main.py
import cv2

img1 = cv2.imread(“img1.jpg”)
img2 = cv2.imread(“img2.jpg”)

# サイズをそろえる
window_size = (400,400)
img1 = cv2.resize(img1, window_size)
img2 = cv2.resize(img2, window_size)

# 画像を横に連結
img = cv2.hconcat([img1,img2])
# img = cv2.vconcat([img1,img2]) # 画像を縦に連結する場合

# 画像を表示
while True:
cv2.imshow(“img”,img)
if cv2.waitKey(1) == ord(‘q’):
break
cv2.destroyAllWindows()

元記事を表示

MacのPythonで音声データを扱う:PyAudio環境構築メモ

PythonでAudioデータを扱いたくなったのでプログラミングを始めようと思いました。
環境構築に思ったより時間がかかったので、メモとして残します。

##開発環境
・Mac(Mac Book Air 2013)
・MacOS Big Sur(11.5)
・Python 3.9.1
・pip 21.3.1

##目的
Audioファイル入力、外部入力音声を利用して、加工後の音声データを音声出力、ファイル出力したいと考えています。

##わかったこと
・Audioデータの録音と再生にはPyAudioモジュールが使える
・PyAudioモジュールは、PortAudioというソフトのPython用インターフェース
・要するに、PortAudioを入れて、その後PyAudioを入れると良さそう

##参考にしたページ
https://qiita.com/mayfair/items/abb59ebf503cc294a581

“`%brew install portaudio
“`
実行するとエラーでした。ログを残せていないのですが、HomeBrewの更新が必要と判断。
“`%brew

元記事を表示

bottleでresponseを返すとき日本語を含めたい場合

# bottleでresponseを返すとき日本語を含めたい場合
## 問題の背景

pythonのフレームワークにbottleというのがある。
これは非常に軽量なフレームワークであるのだが、
これを使っているときにちょっと日本語まわりの取り扱いで問題が生じたので解決方法を備忘録としてメモ。

余談だがこれはpython3系にバージョンアップするときに発生した問題。
python2系なら問題なく動いたのだが、
3系にあげるときに読み込むライブラリ等も諸々アップデートしたところ発生した。
そのため正直直接的に何が関係してこれが発生したのかは断言できない、悪しからず。

## 環境

ubuntu 16.04(諸事情でちょっと古い)
python3.9.9
bottle=0.12.9
gunicorn=20.1.0

## 発生した事象

set_cookieを用いて日本語文字列をcookieに登録しページを表示しようとしたところ、

“`
from bottle import response
user_name = ‘管理者’
response.set_cookie(‘user_na

元記事を表示

超音波センサーで距離を測ってみた

秋月から超音波センサーが届いたので、下記の記事を参考に作成してみた。

https://zenn.dev/kotaproj/books/raspberrypi-tips/viewer/200_kiso_hcsr04

ブレッドボードより基板使った方がかっこいいかなと思い、久ぶりに電子工作工作してみた。
完成したのがこちら。半田に手こずったし、機材そろえるのに少しお金かかったけど、手を動かすと楽しい。。
![IMG_3974.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176158/15f3f2c1-9b13-0b24-e693-1f5827099464.jpeg)

#回路図
HC-SR04のECHOから出力は、5Vが出てくる。ラズパイのGPIOは、3.3Vまでしか許容しないため、抵抗を使って3.3Vにしている。

![HC-SR04_回路図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176158/b5d8c49b

元記事を表示

Qiitaとはてなブログの記事のソース(Markdown)を取得するキーボードショートカット

## 背景

QiitaやはてなブログではMarkdownで記事がかけます。Markdownエディタ(Obsidian)をつかっているので、エディタの保管庫(Vault)に記事のソース(Markdown)を貼り付けておけると便利だろうなとおもうのです。

Markdownは軽量なので、エディタの保管庫にデータを持っていても軽快に動きます。エディタの検索機能で過去に書いた記事が検索できると、自分用ナレッジデータベースとしてはとても便利になりそうです。

なのですが、ソースMarkdownを取得するのに、手を動かさなければならなくて、面倒臭いなあとおもっていました。面倒くさいことはやらなくなります。抜け漏れが出てくると、データベースとしてはイマイチになってしまいます。

そこで、キーボードショートカットで、さっくりとソースMarkdownを取得できるようなスクリプトを書きました。

### 環境

ここで書いていることは、下記のバージョンで実施しました。

– Alfred 4.6.1
– VS Code 1.63.2
– macOS Monterey 12.1
– MacBook Pro

元記事を表示

【Project Euler】Problem 34: 各桁の階乗の和

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

### 問題 34:各桁の階乗の和

原文 [Problem 34: Digit factorials](https://projecteuler.net/problem=34)

**問題の要約:各桁の階乗の和が元の数と同じになる数の合計を求めよ**

これも上限が問題になりますが、7桁を超えると全桁が9でも階乗の和は7桁にならないので$9! \times 7$まで調べればOKです。

“`python
import math
fct = [math.factorial(d) for d in range(10)]
def digFactSum(n):
return sum(fct[int(d)] for d in str(n))

print(f”Answer = {sum([n for n in range(11,fct

元記事を表示

【Project Euler】Problem 33: 桁を消して約分

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

### 問題 33:桁を消して約分

原文 [Problem 33: Digit cancelling fractions](https://projecteuler.net/problem=33)

**問題の要約:以下の例のように1より小さい分子・分母ともに2桁の分数の共通の1つの数字を消したときに約分になっているような分数(4つある)の積を約分したときの分母を求めよ**

“`math
\frac{4 \underline{9}}{\underline{9}8}=\frac{4}{8}
“`

条件を満たす分数は以下のような形をしているので、$n,d,i$を$n

元記事を表示

【Python printデバック】bound method Request.body of の展開方法

“`sample.py
import pprint

pprint.pprint(vars(request))
“`

ダンプの意味は[こちら](https://e-words.jp/w/%E3%83%80%E3%83%B3%E3%83%97.html)

https://minus9d.hatenablog.com/entry/2015/08/02/204226

元記事を表示

MLflowチュートリアル

# はじめに

MLflow という実験管理用ツールを試す。まずはどのような操作で何ができるのか、概要をつかみたいので [MLflow チュートリアル](https://mlflow.org/docs/latest/tutorials-and-examples/tutorial.html)を一通り行ってみる。

# Training the Model

[Training the Model](https://mlflow.org/docs/latest/tutorials-and-examples/tutorial.html#training-the-model) にあるソースコードを順に読み解いていく。前半は一般的な処理であるので、簡潔な説明のみとする。

まず必要なパッケージのインポートとロガーの設定、メトリクス計算のための関数を定義。

“`python
import os
import warnings
import sys

import pandas as pd
import numpy as np
from sklearn.metrics import mean_s

元記事を表示

OTHERカテゴリの最新記事