Python3関連のことを調べてみた2022年09月30日

Python3関連のことを調べてみた2022年09月30日

Python & ビット演算でドドスコしてみた

# 今更ドドスコ

こちらが話題になっていた2022年の夏、コロナに罹ってダウンしていたところ完全に乗り遅れてしまったので今更ながらやってみました。
リプで配列を使った例はよく見かけたので今回はPythonのビット演算で実装してみることにします。

# やってみた

コードはこんな感じ。

“`python:ddsk.py
import random

buffer = 0

while True:
buffer = buffer << 1 & 4095 if random.getrandbits(1): buffer |= 1 print("ドド", end="") else: print("スコ", end="") if buffer == 2184: print("ラブ注入♡") bre

元記事を表示

【Pytorch】MNISTのGAN(敵対的生成ネットワーク)を実装する

# はじめに
本記事のコードは以下のnotebookに記載されています。
外部データなど不要ですので、とりあえずGANを動かしてみたいという方は是非触ってみてください。
https://colab.research.google.com/drive/1TQWMTNDbqLQ0dWo4-rFz1mbY80hLIQNo?usp=sharing

# GANとは
GANはGenerative Adversarial Networkの略であり、敵対的生成ネットワークの邦訳が与えられています。
GANはディープラーニングを利用した生成モデルの一種であり、生成器と識別器という2つのネットワークを持ちます。
これら2つのネットワークが互いに競い合うように学習することが、Adversarial(敵対的)の由来となります。

GANは近年、実在しない高精度の画像を生成することに成功しており、非常に注目されている技術です。
加えてGANの本質は2つのネットワークが競い合うように学習する点にあるため、画像生成以外にも多様なタスクに応用が可能です
そこで今回はGANに対する理解を深める為、Pytorchを用い

元記事を表示

pythonで対数グラフ(それと聴覚閾値)

# 初めに
 この数式って本当にこのグラフになるのかな?って不安になることってありますよね。
 今回はそんな自分の不安にpythonで解決しようとした際に出た問題を記事にしています。

# 問題
 最小可聴値あるいは聴覚閾値と呼ばれるグラフを探した際に次のようなグラフが見つかりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2647158/5c7c1b6b-6c03-9e75-eee6-5bb4e398bcdb.png)
↑wikipediaより

 これをpythonで再現したい。
 xが10の累乗のグラフなので、それが再現できるpythonのコードにしなくてはいけない。

# コード

“`python
import matplotlib.pyplot as plt
import numpy as np
f = np.logspace(1,4,500000,base=10)
ath = 3.64*(f/1000)**-0.8-6.5*np.exp(-0.6*(f/1000

元記事を表示

マイク入力音声をリアルタイムでFFTしてグラフ化する

# 初めに
 この記事はガチでコードだけを置いておこうというやつです。
 なので解説は行っていませんが悪しからず。

# コード

“`python
import pyaudio
import matplotlib.pyplot as plot
import numpy as np

def audiostart():
audio = pyaudio.PyAudio()
stream = audio.open( format = pyaudio.paInt16,
rate = 44100,
channels = 1,
input_device_index = 1,
input = True,
frames_per_buffer = 1024)
return audio, stream

def audiostop(audio, stream):
stream.stop_stream()
stream.close()
audio.terminate()

de

元記事を表示

Flaskアプリケーションのセッション問題

Flaskでアプリケーションを作っていて、ちょっとはまったのでメモ。

## 複数のFlaskアプリケーション

Flask でセッションを使うには、
“`Python
app = Flask(__name__)
app.config[‘SECRET_KEY’] = b’適当なキー文字列’
“`
と設定するのは周知の通り。

たとえば、Flask のアプリケーションを2つ稼働しているとして、
どちらもセッション情報を使う(たとえばログイン情報を保持しておくとか)場合。
同じブラウザの別タグで、それぞれのアプリケーションを開いて、タブを切り替えたりしていると、片方のセッションが消えてしまう現象が発生する。
FlaskはCookie にセッション情報を保存するが、デフォルトだと、”session” という名前になる。
![cookie1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882462/d690a5c8-0f80-d15f-42df-e2de92226281.png)

アプリケーション1つ

元記事を表示

[Python][Tips] 処理時間の計測

https://camp.trainocate.co.jp/magazine/python-time/

上記によると、Python処理の実行時間を測定する方法は以下の3つ。
> (1) time.time() : 最も簡単な実行時間を測定する方法
> (2) time.perf_counter() : 正確に実行時間を測定する方法
> (3) time.process_time() : CPU実行時間のみを測定する方法(sleep時間を除く)

(2)が実用的に使えるので、実際の業務で利用しています。
“`python
import time

start = time.perf_counter() #計測開始
##################################
##### #####
##### 計測したい処理を実行 #####
##### #####
#################################
end = time.perf_cou

元記事を表示

Tello SDK を自分なりに最適化してみた(Tello-Console)

# Tello SDK を自分なりに最適化してみた(Tello-Console)
 Tello を python でプログラミングするときに辿り着く SDK、それは Tello-Python だろう。この記事ではそんな Tello-Python にある tello.py を僕なりに改良した **Tello-Console tello.py** を紹介しようと思う。
 今回初めてこのような記事を書くので、分かりづらい点もあるかもしれないが、そこは随時指摘等があり次第修正する。

## そもそも Tello って?
![tello画像.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2729782/8d13042e-4f4d-f627-becc-fcd30bb9910d.jpeg)
 そもそも Tello って何なのか。知らない方に簡単に説明すると、**小さなプログラミングで飛ばすことができるドローン**である。とても小型なので室内で飛ばして遊ぶことができ、しかもホバリング性能やカメラの性能が類似する大きさ

元記事を表示

[Python][Tips] さくっと現在日時を取得したい場合

さくっと現在日時を取得したい時に便利なTips。
大量のデータを扱う場合、現在日時をファイル名先頭に付与することで新旧でソーティングできるのでよく利用しています。
“`Python
import datetime

now = datetime.datetime.now() # 現在日時を取得
dt = now.strftime(‘%Y%m%d%H%M%S’) # YYYYMMDDhhmmssの書式に整形
print(dt) #20220927221536
“`

元記事を表示

YDITS for Twitter/Discordの制作

# YDITS for Twitter/Discordの制作

Qiita初投稿
これは[noteで投稿した記事](https://note.com/yone1130/n/n8bf36ae85da4)の再掲です。

## 使用技術

– [Python3](https://www.python.org/)
– [discord.py v1.7.3](https://discordpy.readthedocs.io/ja/latest/index.html)
– [Git/GitHub](https://github.com/about)
– [防災科学研究所 強震モニタ JSONデータ](http://www.kmoni.bosai.go.jp/)
– [P2P地震情報 API](https://www.p2pquake.net/json_api_v2/)
– [Visual Studio Code](https://code.visualstudio.com/)
– [Twitter API](https://developer.twitter.com/en/products/tw

元記事を表示

openpyxlでiter_rows()を使ったワークシート行のイテレーションを中断するとファイル削除できなくなる

openpyxlでエクセルファイルを開いたのちに削除しようとしてもプロセスがファイルをブロックしていて削除できなかった。

Windows環境
* Windows8.1
* Python 3.10.7
* openpyxl 3.0.10

“`python
import os
from openpyxl import load_workbook

FNAME = ‘sample.xlsx’
# EXCELファイルをオープン
wb = load_workbook ( FNAME, read_only=True )
sheet = wb.active
# 行をイテレーション
for row in sheet.iter_rows() :
# なにか処理
# イテレーションを中断
break
# Workbookオブジェクトを閉じる
wb.close()
# EXCELファイルを削除 –> Win32エラー
os.remove ( FNAME )
“`

根本的な対策はみつからなかった。
イテレーションを中断しないように変更する。

“`python
impo

元記事を表示

【プログラミングにおける高速化】AtCoderで実行時間超過(TLE)を減らす方法

# はじめに

筆者「さあ~周りの友達や同僚もAtCoderやってるし、腕試しでAtCoder始めてみるかあ~」
AtCoder100点問題「うわあああああ(撃墜)」
筆者「よし!クリア!」
AtCoder200点問題「やられたああああ(討伐)」
筆者「よし!いける!」
AtCoder300点, 400点問題「フンッ『”TLE(実行時間オーバー)”』」
筆者「!?!?!?!?」

AtCoderをやっていく中で、以下のようなTLEの結果に出くわすこと多いのではないでしょうか??
TLE(Time Limit Exceeded:実行時間超過)とは、**アルゴリズムが正しくても、規定の実行時間を過ぎてしまうエラー**のことを表します。特に、300点問題(C問題)以上になってくると、TLEに悩まされることが多いと思います。
![001_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2866918/da6525f6-b66b-296a-be7b-51f6f7cd46d1.png)

そこで、今回はAtCod

元記事を表示

【M1 Mac版】Python3のインストール手順まとめ

# 手順
:::note warn
Homebrewがインストールされていること
:::

## 1. pyenvのインストール
“`terminal
$ brew install pyenv
$ pyenv -v
“`

“`terminal:実行結果
pyenv 2.3.0
“`

## 2. pyenvのPathの設定
– 下記コマンドを1行ずつ実行
“`terminal
$ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.zshrc
$ echo ‘export PATH=”$PYENV_ROOT/shims:$PATH”‘ >> ~/.zshrc
$ echo ‘eval “$(pyenv init -)”‘ >> ~/.zshrc
$ source ~/.zshrc
“`

## 3. pyenvでインストールできるPythonのバージョンを確認
“`terminal
$ pyenv install –list
“`

## 4. Pythonのインストール
“`terminal
$ arch -arch x8

元記事を表示

python – inputがある限りループする

# 例

無限ループさせておいて入力が空であればループを抜ける。

“`py
while True:
x = input()
if x == “”:
break
else:
print(x)
“`

`while line = input():` みたいな簡潔な書き方は出来ない気がした。

# チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

# Twitter

元記事を表示

python で指定回数ループする例: for i in range(10)

# 例

“`py
for i in range(10):
print(i+1) # 1から10までを出力
“`

# チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

# Twitter

元記事を表示

(PyMuPDF) M1 Mac で “import fitz”できなかったがキャッシュ削除で解決した(備忘録)

### “import fitz”で問題が発生しました (PyMuPDF)

https://python-work.com/pdf-get-text/

の”import fitz”を実行できませんでしたが、キャッシュ削除で解決しました。
解決作業の備忘録です。

### 手順(以下の作業は、arm64上で行なっています)

##
“`
name -m

#arm64
“`
arm64と返ってきたなら、以下を実行

そうでない場合は、Rosettaをoffにしてやる必要があります。

### 以下を実行
“`
pip3 install fitz
brew install mupdf swig freetype
pip3 install PyMuPDF
pip3 install frontend
“`

下記サイトの方法をpip3に変えるだけでは、

https://cdmana.com/2022/03/202203221858329522.html

“`
pip3 install fitz
brew install mupdf swig freetype
pip3 in

元記事を表示

matplotlibでtickparamsを使ってもticklabelが消えないときの対処法

おそらく対数スケールかつ目盛りが細かすぎる場合にTickが消えないことがあります.

“`python
import matplotlib.pyplot as plt

_, ax = plt.subplots()
ax.tick_params(left=False, labelleft=False)
ax.set_yscale(‘log’)
ax.grid(which=’minor’, color=’gray’, linestyle=’:’)
ax.grid(which=’major’, color=’black’)
“`

このときにAd-hocに対応するためにFontsizeを最小にするほうほうがあります.

“`python
ax.tick_params(axis=’y’, which=’major’, labelsize=1)
ax.tick_params(axis=’y’, which=’minor’, labelsize=1)
“`

元記事を表示

人口の予測

# 概要

統計関係の定番ネタ、将来人口推計です。
百年先までの日本の人口の推移を予測します。

# 準備

まず、ライブラリパッケージを読み込んで、データを用意します。
そして必要な数値の計算も行います。

“`python
# — ライブラリ読み込み —
import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
plt.rcParams[‘font.family’] = ‘Yu Mincho’

# — データ —
# 年齢5歳階級別女性人口・有配偶女性人口:2015年(出典:統計局・国勢調査)、
# 年齢5歳階級別母の年齢別出生数:2016年(出典:統計局・人口動態調査)
dfBorn = pd.DataFrame({
‘年齢区分’:[’15~19歳’, ’20~24歳’, ’25~29歳’, ’30~34歳’, ’35~39歳’, ’40~44歳’, ’45~49歳’

元記事を表示

[ABC270] A,B,CをPythonで解いてみる

## はじめに

初投稿になるが、コンテスト中に今までできなかったことができたことからその記念(?)も兼ねて投稿する。

## [A – 1-2-4 Test](https://atcoder.jp/contests/abc270/tasks/abc270_a)

配点が1,2,4点とあるので2進数で考える。
少なくとも一方が解けた問題は解け、2人とも解けなかった問題は解けないとあるので論理和をとればよい

“`Python:a.py
A,B = map(int,input().split())
print(A|B)
“`

## [B – Hammer](https://atcoder.jp/contests/abc270/tasks/abc270_b)

XとYの位置関係から先に考えて、経路に壁がある場合にZが壁より原点寄りにあるか考える。

ゴールに到達可能なのは以下のパターンである。
– X,Yが異符号 (1)
– X,Yが同符号
– XがYより壁寄り (2)
– ZがYより壁寄り (3)

(3)に関しては、Xへの最短経路にZがない場合(X,YとZ

元記事を表示

Windowsのファイルの保存場所を開く(Open File Location)コマンドをPythonで実行する

# 実現目標
:::note
・スタートメニューから `More > Open File Location`
・ショートカットから `右クリック > Open File Location`

「対象のファイルが存在するフォルダが開き(または、移動して)、対象のファイルがアクティブになる」操作をPythonで実行する
:::

# 用途
:::note warn
たとえば、Imageビューアなどで右クリックして画像の保存場所を開けます。
:::

# コード
“`python
import os
import subprocess

def open_file_location(absolute_path):
# windows用のパスへ変換
path = os.path.realpath(absolute_path)
# subprocessでコマンドシェルを実行
subprocess.Popen(f’explorer.exe /select, {path}’)

open_file_location(“C:/Images/image1.jpg”)

元記事を表示

mutableとimmutable

# mutableとは?
変更できるオブジェクト
* リスト
* 辞書
# immutableとは?
変更できないオブジェクト
* タプル
* str
* int
* float
* bool
* None

元記事を表示

OTHERカテゴリの最新記事