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

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

地上からの高さと見渡せる海の距離

海岸に立った時、どのくらい先まで見えるのか計算してみた。
以下の計算結果より、
* 海岸に立った時(地上から1.5m前後)で4から5km
* 100mぐらいの山からであれば 30km
* そして、無茶苦茶高いところまでいけば10万km(地球の円周の1/4)ぐらいまでみわたせる

## プログラム
“` python
import math
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt

r=12756*10**3/2 #地球の半径(m)
#地上からの高さと見渡せる海の距離を求める
def get_sea_overlooking(height):
angle=math.acos(r/(r+height))
l=r*angle
return l

#指定された高さまでの「地上からの高さと見渡せる海の距離」グラフを描画する
def ploting(max_height):
print(“地上からの高さ{}mまで”.format(max_height))

元記事を表示

英語の長文がスラスラ読めるようになる「トレーニングアプリ」を作ってみた。。。

# ■まえがき
皆さんはスラッシュリーディングとサイトトランスレーションという言葉を聞いたことがありますか?
私はスラッシュリーディングは知っていたのですが、先日、サイトトランスレーションという長文読解の速読トレーニング法を知り、AWSやプログラムの勉強も兼ねてWEBアプリ化してみました。↓
[Slash Reading & Sight Translation](https://16sw92fztg.execute-api.ap-northeast-1.amazonaws.com/Prod/input/)

しかし、出来上がった画面を見るとデザイン力がなさすぎることに気づかされる。。。
(´;ω;`)

## 用語説明
・サイトトランスレーション(Sight Translation)
 英文を「チャンク」と呼ばれる意味のかたまりごとに区切り、前から訳していくトレーニングの方法([引用元](https://englishhub.jp/method-2/sight-translation#:~:text=%E3%82%B5%E3%82%A4%E3%83%88%E3%83%88%E3%

元記事を表示

WIP, エロ動画のシーンを音声から分析するプログラミングノート

# はじめに

エロ動画を見るとき、セックス中の会話が好きなので、喘いでるだけのシーンは飛ばしてしまう。
その手間を省きたいなと思ったので、色々やってみる

# 人工知能でなんとかなりませんか?

GPU そんなに良いの持ってないし、 Cloud で train したいが、めんどくさいので
まずは tensorflow hub にある学習済みの YAMNet で試してみよう

https://www.tensorflow.org/hub/tutorials/yamnet

これ使う

# 雑にコードをコピペしてくる

https://github.com/tensorflow/docs-l10n/blob/master/site/ja/hub/tutorials/yamnet.ipynb

“`python
import tensorflow as tf
import tensorflow_hub as hub
import numpy as np
import csv
import scipy.signal

import matplotlib.pyplot as plt
from

元記事を表示

【Jupyter・Python】セルの実行時間に制限を設定するマジックコマンド

# はじめに
競プロ用のプログラムなど制限時間を実際に設けて実行してみたいときに便利なマジックコマンドを作ってみました。

# 使い方
制限時間を設定したいセルの先頭に`%%timelimit (制限時間[s])`と付けるだけです。
“`python
%%timelimit 2

hogehoge
fugafuga
piyopiyo
“`

# マジックコマンドを登録する
マジックコマンドを使用したいノートブックで都度以下のコードを実行する
or
`~\.ipython\profile_default\startup\setup.py`に以下のコードを書き込む
ことでマジックコマンドが使用可能になります。

“`python
from IPython.core.magic import register_cell_magic
from IPython.core.getipython import get_ipython

@register_cell_magic
def timelimit(t, cell):
import threading, _thread
a

元記事を表示

雑魚のためのPyTorchでM1 MacのGPU使う環境構築

# はじめに
[この記事](https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/)によると,PyTorch(pytorch==1.12.0)でM1 MacでGPUが使えるようになったらしい.
ということで環境構築して使ってみた記事です.
※2022年5月19日現在の内容です.

誰かが同じ轍を踏んでなければいいな,と思い書くことにしました.
環境構築をするたびに無力感を感じるので,タイトルに『雑魚のための』とつけました.

# 気をつけること

このあたりに気をつけて進めていきましょう.

1. miniforgeでpython環境を構築←超大事
2. python3.8の環境構築する
3. pip3でtorchとtorchvisionのNightlyを入れる←まぁ大事(というかこれができればおk)
4. 動かすときはtorch.device(“mps”)を使う

# やったこと

最終的に環境構築がうまくいったのはこの手順でした.

1. anacondaを消してminifor

元記事を表示

Pythonで複数の処理や関数の処理速度を計り自動でまとめる

今回のプログラムの出力
3秒かかる処理、1.5秒かかる処理、10秒かかる処理をそれぞれ計測し時間を記録、json形式でtxtファイルに保存しています。
プログラム全体の処理速度のボトルネックの可視化に便利ではないでしょうか。
“`
{“3 seconds”: 3.0122451782226562, “1.5 seconds?”: 1.5078651905059814, “10 seconds?”: 10.014142513275146}
“`

Pythonプログラムの関数毎に処理速度を計りたい。でもプログラム自体はなるべく改変したくない。普通ならprintで出力して確認すれば済みますが中規模や大規模なプログラムになるとprintは情報の掃きだめになっていたりprintしても出力されなかったり、もしかするとprint禁止というのもありえるかと思います。ログも流れが速すぎて追えない。リモート接続でCUI操作しているときはログの検索も面倒?かもしれません。
誰かの助けになるかはわかりませんが、数行程度挿入するだけでその行間の処理速度を計ってログを取ってくれるプログラムを作りました。
`

元記事を表示

Pythonスクリプトのメモリリークを探す

どんなプログラミング言語でもメモリリークの追跡は難しいものです。特に、他人の作ったライブラリでメモリリークがある場合、原因を切り分けるのは非常に面倒な仕事になります。

Pythonにはtracemallocという組み込みモジュールがあり、これがメモリリークの調査に便利だったのでまとめてみます。

## メモリ消費量トップ10を出す

tracemallocのマニュアルにも書いてあるのですが、下記のようにするとメモリ消費量のトップ10が出せます。

“`python
import tracemalloc

tracemalloc.start()

# … メモリリークしてるっぽい処理 …

snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics(‘lineno’)

print(“[ Top 10 ]”)
for stat in top_stats[:10]:
print(stat)
“`

これを実行すると、下記のような結果が得られます。

“`
[ Top 10 ]
/usr

元記事を表示

Random Decrement (RD法) によるシステム同定の理論と実装

# 概要
構造ヘルスモニタリングにおけるシステム同定の手法として用いられる、Random Decrement (RD法) の理論と実装例について整理する。

# Random Decrement (RD法) とは
**常時微動や風応答などランダムな外力を受ける構造物の振動データから、減衰自由振動波形を得るために利用される手法である。** 得られた減衰自由振動波形は、**自由振動解とのカーブフィッティング**や [**Eigensystem Realization Algorithm (ERA)**](https://qiita.com/nujust/items/288a38f40b75da8f9f4d) によってモード特性を同定するために用いられる。
RD法はランダム応答の期待値がゼロであることを利用した手法で、アルゴリズムも直感的に理解しやすく、使い勝手の良い手法である。

# RD法の理論

1質点系の運動方程式は、固有角振動数 $\omega_0$ と減衰比 $\zeta$ を用いて次のように表される。ここでは、期待値をゼロとするランダムな外力 $F(t)$ が作用するものとする

元記事を表示

変分オートエンコーダとオートエンコーダについて(Pytorch)

# オートエンコーダー
## 概要
オートエンコーダーは、入力画像を圧縮し復元するモデルです。
入力層、隠れ層、出力層の三層構造となっています。
入力層から隠れ層はエンコーダーといい入力画像を低次元データに圧縮します
隠れ層から出力層はデコーダーといい低次元データを入力画像と同じになるように拡張します。
つまりエンコーダーによってデータの要約を行い、デコーダーによって要約されたデータをもとに復元を行います。
この要約されたデータのことを潜在変数といいます。
![オートエンコーダー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670347/af141ea9-7943-b5e5-7ef2-62a764f734a1.png)

## 使用場面
* 異常検知
* ノイズ除去
* ニューラルネットワーク学習時に使用(※現時点で使用されることはほぼない)

## モデル構造

“` python
class Autoencoder(nn.Module):
def __init__(self):
su

元記事を表示

【Python】話題の音声認識ツールキット Vosk を試してみた

# はじめに

こちらの記事は[Zenn](https://zenn.dev/kama_meshi/articles/517acebcdd1d61)にも投稿しています。

たまたまTLで見かけたので試してみました。結果から言うとすごく簡単、触っていておもしろかったです。

# What is Vosk?

20言語以上に対応した音声認識ツールキット。言語モデルが50MBと軽く、組み込みがしやすいです。[^1]
PythonはもちろんのことNode.jsやJava, C#でも実装可能。ラズパイ/iOS/Android用のビルド、Websocketサーバまで用意されているという準備の良さです。
**なおM1 Macには非対応です。**
詳しくは [Vosk](https://alphacephei.com/vosk/) のリファレンスで。

# サンプル音声の準備

まずは音源の準備をします。フリーの素材がないかと探していたところ [こえやさん](https://www.

元記事を表示

【コピペでOK】Vue3×FastAPI×MySQL×DockerでWebアプリを作ってみた

# 目次
[1.はじめに](#1-はじめに)
[2.ゴール](#2-ゴール)
[3.DB構築](#3-db構築)
[4.Backend構築](#4-backend構築)
[5.Frontend構築](#5-frontend構築)
[6.動作確認](#6-動作確認)

# 1. はじめに

よくあるWebアプリケーションの超簡略版を作ってみた。
「ちゃちゃっと作って遊びたい」「コピペで作ってみてから学びたい」人向けの簡単な内容を掲載する。

|対象|使うもの
|—|—
|Front-end| Vue3/Element Plus
|Back-end| FastAPI(python)
|Database| MySQL

frontendはVue3を使うことにした。Composition APIなどが優秀等々話は聞くが、もともとVuejsが好きという個人的な理由により採用。
わざわざVueを使うまでもない内容かもしれないが、***とりあえず触れてみる事***は非常に大事だと思うため使う。

CSSフレームワークをElement Plusを使用。Vue3に対応しているCSSフレームワー

元記事を表示

Pythonの環境の構築までの手順

まず下準備としてAnacondaの環境構築から始めます。Anacondaには以下のライブラリが初めから入ってます。
NumPy(ナムパイ)・・ベクトルや行列の科学技術計算、統計に不可欠なライブラリ。
SciPy(サイパイ)・・科学的・工学的ツールのオープンソース・ライブラリ。
Pandas(パンダス)・・データ解析を支援する機能を提供するライブラリ。
scikit-learn(サイキットラーン)・・オープンソース機械学習ライブラリ。分類や回帰、クラスタリングアルゴリズムを備え機械学習をサポート。
Jupyter(ジュピター)・・ブラウザ上でインタラクティブにプログラムを作成・実行するツール(エディター)。
matplotlib(マットプロットリブ)・・Pythonでのグラフ描画やイメージ表示する標準ライブラリ

では実際にAnacondaをインストールしてみましょう。
1.PC環境の確認
Windows10には、32ビット版と高性能な64ビット版の2つのシステムの種類があります。Pythonにも32ビット版と64ビット版がありますので、最初にPC環境を確認します。
①スタートメニューを

元記事を表示

【忘備録】python  f-strings

Python 3.6よりformatではなく、f-stringsが以下のように使えるようになった。
こちらのほうが処理速度が速いらしい。

“`python
a = ‘a’
print(f’a is {a}’)
# 結果 a is a

x, y, z = 1, 2, 3
print(f’a is {x}, {y}, {z}’)
print(f’a is {z}, {y}, {x}’)

# 結果 a is 1, 2, 3
# 結果 a is 3, 2, 1

name = ‘Jun’
family = ‘Sakai’
print(f’My name is {name} {family}. Watashi ha {family} {name}’)

#結果 My name is Jun Sakai. Watashi ha Sakai Jun

“`

元記事を表示

【忘備録】python datetime

参考動画 https://www.udemy.com/course/python-beginner/learn/lecture/8459154?start=15#overview

“`python
import datetime

#現在時刻の出し方
now = datetime.datetime.now()
print(now)
#結果 2022-05-19 19:16:21.838450

#iso国際規格の時刻の出し方
print(now.isoformat())
#結果 2022-05-19T19:16:21

#オリジナルの時刻の出し方
print(now.strftime(‘%d/%m/%y’))
#結果 19/05/22

#年月日だけあつかう場合
today = datetime.date.today()
print(today)
#結果 2022-05-19

#自分で設定した時刻をマイクロセカンドまで表示する場合
t = datetime.time(hour=1,minute=10,second=5,microsecond=100 )
print(t)
#結果

元記事を表示

ラズベリーパイとセサミ3とUSBカメラボタンで鍵を開ける

# ラズベリーパイとセサミ3とUSBカメラボタンで鍵を開ける

100円ショップで買ったBluetoothボタンで、近くでボタンを押したときに、セサミの鍵を開ける方法を記述しています。
子供に家の鍵として渡していましたが、テレワークのため、私が家にいるので使わなくなりましたが、、、

## 利用環境

* Raspberry Pi 2 Model B (古く使わないものを今回使用)
* ubuntu(ラズパイOsだとうまくWifi、Bluetoothがつながらずubuntuにしました。)
* Wifiモジュール
* Bluetoothモジュール
* 100円ショップで売られていた、300円のカメラシャッターボタン
* セサミ3 & Wifiモジュール

## 手順

1. Bluetoothでペアリング
2. セサミのAPI使用
3. Pythonの設定
4. 自動起動

## Bluetoothでペアリング

シャッターボタンとラズパイとの接続設定を行います。

* “`bluetoothctl“` でペアリングを行います。
* インストールしていない場合

元記事を表示

NeRF検討用データセットをBlender Pythonスクリプトで作成する方法

# はじめに
はじめまして、Live2D社AIチームリーダーの澤田です。
この度、Live2D社ではQiitaでの技術情報の発信を始めることにいたしました。
QiitaではLive2Dという枠組みに囚われずに様々な技術トピックを扱っていこうと思っています。

今回はDeepLearningのCG応用として現在盛んに研究されているNeRFと呼ばれる技術の検討用データセットを、BlenderのPythonスクリプトで作成する方法について紹介いたします。
NeRFに限らず、様々なデータセットの作成に応用可能なので、画像系の機械学習に興味のある方全般にとって役に立つ情報だと思います。

# NeRFとは
NeRF(Neural Radiance Fields)とは、[NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis](https://arxiv.org/abs/2003.08934)で提案された技術であり、被写体を複数の視点から撮影した画像を学習することで、その被写体を任意の視点から撮影した画像の生成を

元記事を表示

TavernでStageごとにテスト対象を使い分ける方法

## 初めに
以前、[TavernでStageごとの設定を使い分ける方法](https://qiita.com/atakig/items/08b34ba3d13b4e7c8377)のような記事を書きましたが、今はより使い勝手が良さそうな方法で行っていますので、紹介します

## 結論
[run](https://tavern.readthedocs.io/en/latest/basics.html#using-the-run-function)を使っています
以前検討しましたが、パス区切りを/ではなく.で行っていたため、エラーになっていました

## ディレクトリ構成
現在のところ下のような構造で運用しています
(まだ開発段階ですのでdev関連のみとなります)

“`
tests
├── __init__.py
├── helper
│   ├── dev_data.py
│   ├── utility.py
│   └── validation.py
├── test_XXXX_api.tavern.yaml
└── test_XXXX_api_dev.py
“`

## 実行方

元記事を表示

Pythonの勉強方法(初心者)

Pythonの勉強方法を紹介したいと思います。
Pythonといっても、コーディングのレベルはさまざまです。ここでは、データ分析を行なったり機械学習を実装する上で必要なレベルになるための勉強法を紹介します。

余談ですが、、、
ちなみに私自身も学部1, 2年の時にPythonのプログラミングの授業がありましたが、その時は全くできませんでした、、
(今もたいして書けませんが、、😂)

長期休暇にプログラミングの勉強しようと決意してもなかなか続かず、、
いざコードを書いてみても、実行時エラーの意味がわからない、、

などなど、苦労しました。

そんな自分が、企業の長期インターンで全く問題なくプログラムを書くレベルまでになった勉強方法を紹介したいと思います。

### ○ 意識したこと
・無理にメソッドを使おうとしなくてOK
・実行時間とか気にせず、自分が書けるコードを書く(無駄が多くてもOK)
・細かいことはとりあえず無視(必要になった時に勉強する)

### ○ 実際に行ったこと
・とても簡単な本でいいので、一冊とりあえず頑張ってやってみる。
・YouTubeの動画で勉強する。(←一番

元記事を表示

【全Blenderユーザに薦めたい】レンダリングを失敗させないアドオン:FinalCheck

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784893/bd3b602c-d974-5655-9243-a94a5554cfa8.png)

## はじめに
Blenderをはじめ、プリレンダーCGのレンダリングは、時間がかかるが故に非常に気を使う工程です。
寝る前にレンダリングを実行し、起きて見てみたら失敗していた…という経験がある人もいると思います。

失敗の原因には、
* 非表示にしていたオブジェクトがレンダーでは表示されていた
* 処理が重くなるため作業中にオフにしていた機能を、レンダー時にオンにし忘れていた
* テスト用の低クオリティ設定のまま最終的なレンダリングをした
* テクスチャ画像のパスが壊れていた

など、ケアレスミスと呼べるものも多くあります。これらのミスはシーンが複雑になるほど増えていくものです。人の目での確認は限界がありますが、自動化し簡単にチェックできるようになれば、制作が効率化するに違いありません。
そこで、ボタン一つでシーンの問題を一覧で確認で

元記事を表示

Django makemigrationsでエラー 「No installed app with label ‘xxxx’」

## エラーで出たxxxxを書き換える

“`seting.py
INSTALLED_APPS = [
# 下の自分で作成したアプリの名称を使う
# 今回のアプリ名 ⇨ mysuperapp
‘mysuperapp.apps.AppConfig’,
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
]

“`

## ターミナル
“`
python manage.py makemigrations mysuperapp
“`

でOK!

元記事を表示

OTHERカテゴリの最新記事