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

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

pythonで「異常検知と変化検知」を読む2 単純ベイズ法による異常検知

「異常検知と変化検知」は異常検知の本です。アルゴリズム部分をpythonで実装していきたいと思います。たくさんの方が同じ内容をより良い記事でとして投稿しています。

個人的な勉強のメモ書きとなります。
まとめることが目的ではないので本文について参考書とほぼ同じ表現となっています。問題があればお教えください。
興味を持ったり、導出や詳細などを知りたい方は「異常検知と変化検知」を読んでいただければと思います。

## 参考

https://www.amazon.co.jp/%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5%E3%81%A8%E5%A4%89%E5%8C%96%E6%A4%9C%E7%9F%A5-%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%97%E3%83%AD%E3%83%95%E3%82%A7%E3%83%83%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%BA%95%E6%89%8B-%E5%89%

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較

# Python

https://qiita.com/G-Rape/items/cd3f2f284ba990164564

# Ruby

https://qiita.com/SUZUKI_Masaya/items/eeea6cd36cc265d2dbf0

# PHP

https://qiita.com/mzmz__02/items/8bfbcf2cd48d9e9f2806

# Java

https://qiita.com/morioheisei/items/63088c61e8234dc1f7f5

# JavaScript

https://qiita.com/uhyo/items/cc92a553059274d85403

# Perl

https://perlzemi.com/blog/2

元記事を表示

AWS ChaliceでS3に画像をアップロードしてみた

## はじめに
「自分のAWSアカウント作成してlambdaの勉強してみよう!」と思っていたところ、lambdaやAPI Gatewayなどの設定やら何やらでかなり苦労し挫折しかけていました。。。そんな時に「AWS Chalice」というかなり便利なフレームワークがあることを知り、希望が見えてきました!!!
もし、私と同じような状況の方がの記事を読んでいただけると嬉しいです!!!
## AWS Chaliceとは
Amazon API Gateway と AWS Lambda による API 環境を実現してくれる、 AWS 製のサーバーレスアプリケーションのフレームワークのこと。
一応以下に、LambdaとAPI Gatewayについても記載します。
#### AWS Lambda
– クラウド上にプログラムを定義し、インターネットを通じて実行できるサービス
– サーバーやミドルウェアの管理はAWSが行ってくれるので、プログラムのことだけを考えれば良いというサービス
#### AWS API Gateway
– あらゆる規模の REST、HTTP、および WebSocket API を

元記事を表示

functoolsのlru_cache, cacheデコレータはメソッドには使用してはいけない

Pythonの標準ライブラリ[functools](https://docs.python.org/3/library/functools.html)にある、`cache`と`lru_cache`デコレータですが、メソッドにも使えそうですが、使ってはいけないということが下記のビデオで詳しく解説されています。

使ってはいけない理由は、キャッシュ付きメソッドがコールされたインスタンスは、一生ガーベージコレクションされないで残ってしまうからということです。メソッドの第一引数に`self`が渡されるので、キャッシュが`self`をキーとして保存してしまうためです。

この問題は回避可能で、その方法も上記のビデオで紹介されています。
例えば、下記の`double`をキャッシュしたいとします。

“`python
from functools import cache

class Foo:

def __init__():
pass

def double(self,

元記事を表示

Pythonで jsonファイル読み書き(UTF-8)

Unicodeエスケープなし そして
jsonファイルが読みやすいように改行やスペースをいれてファイルに書き込む
“`python
import json

# 読み込み
def read(path):
with open(path, ‘r’, encoding=”utf-8″) as file:
return json.load(file)

# 書き込み
def save(path, data):
with open(path, ‘w’, encoding=’utf-8′) as file:
json.dump(data, file, indent=4, ensure_ascii=False)
“`
## jsonファイルを読み込む時
“`python
json_data = read(“ファイルの場所”)
“`
で json_dataという変数に代入されます
## jsonファイルを書き込む時
“`python
save(“ファイルの場所”,”保存したい内容”)
“`
で 指定したファイルに保存できます

元記事を表示

【色変記事】AtCoder水色になるまでにやって良かったこと

# はじめに
**ABC272**で**入水**することができました!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1719666/62b57d76-934f-6f21-3b2a-1d6d8a967762.png)

本記事では、水色になるために**個人的にやって良かったこと**を中心に書きます。

# やってよかったこと一覧
* [使用言語をPythonに変更](https://qiita.com/rapirapi/items/17e161268b67349fa629#%E4%BD%BF%E7%94%A8%E8%A8%80%E8%AA%9E%E3%82%92python%E3%81%AB%E5%A4%89%E6%9B%B4)
* [典型90問](https://qiita.com/rapirapi/items/17e161268b67349fa629#典型90問)
* [解けなかった問題の復習](https://qiita.com/rapirapi/items/17e161268b6

元記事を表示

英語の動画を爆速で日本語テキストにする話(しかも無料で)

# 動機

教育系YouTubeチャンネル面白そうだけど長尺で見るのだり~~~~~~~~

だるくね?

# 手順

大まかな手順としては、

1. 文字起こししたい動画または音声ファイルを用意する
2. Whisperを使って文字起こしをする
3. 日本語でない場合はDeepL APIを使って和訳する

となる。

タイトルに「英語の動画を~」とつけたが、日本語音声を日本語に文字起こししたい場合は手順2でまでで済む。

# 1. 音源を準備する(動画サイトからDLしたい場合は後述)

文字起こししたい動画または音声を用意する。

なぜかあまり触れられていないが、様々なファイル形式に対応している。

– MP3
– MP4
– M4A
– WAVE

のファイル形式に対応していることは確認できた。

# 2. whisperで文字起こし

whisperとは、簡単に言えば**OpenAIがフリーで提供しているものすごく高精度な音声認識モデル**である。

YouTubeだと話者がきちんとした文法の言語を話している場合は自動翻訳でも何とかなるが、雑談配信などにおいて自動翻訳はあまり役

元記事を表示

typescriptのtypeと同じような動きをpythonで実装したい。

以下のようにObjectに型をtypescriptでつけることがある。これをpythonでも同じようにやりたい。

“`typescript
type ProfileInterface = {
name: string
title: string
email: string
}

const profile_objects: ProfileInterface = {
name: “test”,
title: “mamushi”,
email: “test@hoge.com”
}
“`

## 【解決策】TypedDictを使用する。

“`python
from typing import TypedDict

class ProfileInterface(TypedDict):
name: str
title: str
email: str

profile_objects: ProfileInterface = {
“name”: “mamushi”,
“title”: “types

元記事を表示

【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment その6:音声認識結果と正解歌詞の対応付け

# 概要
歌を入力したときのWhisperの認識結果の各segmentが、正解歌詞のどの部分に対応するか紐付ける方法を説明します。

前回記事:
[【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment その5:正解データづくり](https://qiita.com/shimajiroxyz/items/e1a1ba595c77688606d7)

# 背景
これまでWhisperの認識結果をそのまま使ってforced-alignmentをしていましたが、Whisperの性能が高いとは認識ミスもあるため、本来は、正解歌詞を使ってalignmentをするべきです。
一方で、正解歌詞を入力とするためには、検出結果の各segmentが正解歌詞のどの部分と対応するかを決定する必要があります。
この方法については、ある程度一般性がある内容のため、別記事で解説しました。

[音声認識結果にもとづく発話区間と正解文字列の対応付け【Python】](https://qiita.com/shimajiroxyz/items/68561dfa1153c33d96f6

元記事を表示

スタバでmacOSで何やってるんですか。

音声認識結果にもとづく発話区間と正解文字列の対応付け【Python】

# 概要
正解文字列がわかっている場合において、音声認識結果から抽出した発話区間と正解文字列の対応付けを行う方法を実装しました。
以下、長めに続くので、先にコードだけおいておきます。

“`
pip install editdistance
“`

“`Python
# 編集距離と対応のリストを返す
import editdistance as ed

# 入力: correct_textはタプル、test_segmentsはcorrect_textより1つ次元の多いタプル。correct_textはstrでも可能
# 出力は分割のindexとその分割をした場合の編集距離
def find_correspondance(correct_text, test_segments):
memo = {}
def inner_func(correct_text, test_segments):
memo_key = (correct_text, tuple(test_segments))
if memo_key in memo:
return memo

元記事を表示

python chromedriverのpathを通せなくて困った話し

python3でselenium chromedriverをmacでインストールするのにターミナル
`brew install chromedriver`

で、インストールまでは良かったけど
“`
driver = webdriver.Chrome() 〜省略〜
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH
“`
のエラーメッセージ
パスが通ってないのはすぐに分かったけど、
homebrewでインストールしたchromedriverがどこにあるのか見当たらず。
下記のコマンドでHomebrewにインストールされたパッケージの場所の確認ができるとのことなので実行
“`
brew –prefix chromedriver
Error: No available formula with the name “chromedriver”. Did you mean chrome-cli?
“`
なんでー!
再インストールしたり

元記事を表示

エスペラント語を漢字変換するpythonコードを書いてみた

https://drive.google.com/drive/folders/10SNTm0RX1tlwpeEUsSqeprT5yaxSS1A3?usp=sharing
先に述べておくこととして、pythonプラグラミング的になにか面白いことをしているわけではありません。
ただ、人工言語のエスペラントを漢字化するという話に少しでも興味の有る方に以下を読んでいただければと思います。一番最後の”如何にして実現するか3”のところで言及しています。
https://docs.google.com/document/d/1YJnKK-CQbz8lmGjRTDjKL6s_isetVXIeLDOTc_SBFgM/edit?usp=sharing

元記事を表示

pythonでテキストデータをローカル保存する方法 約40選

# はじめに

「pythonプログラムの設定データをjsonとかiniとかどんな形式で保存しよう」と悩むこと、あるよね?
そういうテキスト永続化の方法が一つの記事にまとまってると調べるときに助かるんじゃないかと思って、文字データをローカル環境で保存する手段を思いつく限り集めてみたよ。

頑張って集めたらxmlとかtomlとか暗号化とかOCRとかモールス符号とかIoTとか**データダンプとロード手段の展覧会**みたいになったから、データ形式に詳しくない人の読み物としても楽しめるかも。
実務には**8割方使い物にならない**から、笑いながら流し読みしていってね!

限りなくシンプルなコードでエラー処理とかしてないから割り切って読んでね。
検証環境はWindows 11(またはUbuntu Desktop 22.04.1 LTS)の`Python 3.10.4`環境だよ。
新しい構文をけっこう使ってるから、pythonの古いバージョンだと動かないコードがあるよ。

# オススメ編

数が多すぎるので、ざっくり分類しておくよ。
オススメ編は標準機能で王道の手段として知られる**数少ないまっと

元記事を表示

サーバ上のpythonとブラウザ上のjavascriptとデータ通信を行う

# やりたいこと
– pythonで簡単なゲームのプログラムを書いた。
– HTMLを駆使しながら、ブラウザ上の「GUI」でこのゲームができるようにしたい。
→ javascriptとpythonでデータのやり取りができれば大体OK

# この記事で説明すること
ここでは **WebSocket** の基本的な使い方をまとめておきます。
– javascript ↔ pythonのデータ通信が簡単に実装できる。
– ゲームユーザ(クライアント)がゲームから途中離脱した場合などの接続管理が簡単になるっぽい。複数人が個別でバラバラに接続してもOK。

# さっそくサンプル
### 使い方
1. webscoketsをpython環境にインストール
“conda install -c conda-forge websockets“を実行すればOK。簡単。

1. 下の“server.py“を保存して実行。
“`python:server.py
”’Echoサーバの実装”’
import asyncio
import websockets

# この関数に通信しているとき

元記事を表示

Pythonでネットワークアドレス同士の差を求める

# はじめに
 以前、Pythonでネットワークを集約する[スーパネット化の記事](https://qiita.com/aikamanami11/items/4e8348d7369d9dadb1c4
)や[ネットワークを分割する記事](https://qiita.com/aikamanami11/items/6ecb4fe19ea94cd1b5e3)を書きましたが、今回はPythonでネットワークアドレス同士の差を算出する方法について書こうと思います。
 この方法で、あるネットワークアドレスから別のより小さいネットワークを切り出した後に残るネットワークアドレスを求めることができます。

 手っ取り早くそれを実現したい方は[こちら](http://ossan.jp/ipaddr/diff/)をご利用ください。

http://ossan.jp/ipaddr/diff/

# ネットワークアドレス同士の差を求める

 ここでは192.168.32.0/24のネットワークと192.168.0.128/26の差を求めて、前者のネットワークから

元記事を表示

Excel業務(無駄)を自動化したい part4 表作り

# はじめに
このサイトでは、社会人なりたての私が無駄を省くための戦いをまとめています。
今回のテーマは、pythonのライブラリを用いて、Excelをいじっていきます。
ライブラリ名は、openpyxlです。

# 実行環境
Windows10
Python 3.10.5

# openpyxlとは?
openpyxlはExcelファイル(`.xlsx`)を読み書きできるツールです。
公式ドキュメント [openpyxl/openpyxl-Bitbucket](https://bitbucket.org/openpyxl/openpyxl/src/master/)
詳しくは[こちら!](https://note.nkmk.me/python-openpyxl-usage/)
**今回はExcelファイル内のデータを読み込んで、分析するのではなく、
代入したいだけなので、pandasではなくopenpyxlを使用しています!**

# 指定の表をExcelで作成
今回は、openpyxlを使用して表を作っていきます。
表を作る上で、セルの操作が必要です。
openpyxlを用いて、以下

元記事を表示

ABC274をPythonとC++で

# 0 はじめに
## 0-1 記事について
AtCoder Beginner Contest 274の解説です。
実装はPythonとC++で書きます。
公式解説と違いがあるかも知れませんがご了承。
ミス等発見されましたらコメント欄にお願いします。

# 1 ABC274 解説
## 1-1 個人的な感想
また情けない回です。Eを通せませんでした
Diffは、A,Bが灰前半、Cが灰と茶の中間、Dが緑前半、Eが水後半といった感じです。
Eで複雑に考えすぎました…

## 1-2 A問題 Batting Average

### 問題
整数$A,B$が与えられるので、$\tfrac{B}{A}$の値を小数第4位で四捨五入した値を出力して下さい。
出力は「整数部分一桁」「小数点」「小数点以下3桁」の順に、末尾の$0$を省略せずに行って下さい。

#### 制約
・$1 \leq A \leq 10$
・$0 \leq B \leq A$

### 解説

計算は簡単ですが、出力の際の指定が面倒ですね。

プログラムを愚直に書いてもACできますが、各言語には出力の際に桁数を制限する便利

元記事を表示

matplotlibの色覚異常向け設定

matplotlibには色覚異常向けのスタイル `tableau-colorblind10` が存在する。名前の通り[Tableau由来のカラーパレット](https://github.com/matplotlib/matplotlib/pull/9255)である。

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

x = np.arange(-5, 15, 0.01)
ys = [1 / (np.exp(-x + i) + 1) for i in range(10)]

plt.style.use(‘tableau-colorblind10’)
for y in ys:
plt.plot(x, y);
“`
![tableau-colorbling10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100698/d6b2a724-30a5-5c18-c4b0-efc87a96744b.png)

比較のため、デフォルトの

元記事を表示

OTHERカテゴリの最新記事