Python関連のことを調べてみた2020年11月26日

Python関連のことを調べてみた2020年11月26日
目次

異常検知関連の本5冊読んだので書評書く。

#本記事のモチベーション

– 製造業では異常検知が結構案件として出てくる
– 異常検知は時系列系にも役立つ、というか見方を変えると異常検知のタスクだったとかある

といことで異常検知を学んでいきましたので備忘録

# 読んだ本

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/8e81382d-2ead-c6fa-47c1-4abf90d77e76.png)

#1冊目:統計的工程管理―製造のばらつきへの新たなる挑戦

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/ce5af1e6-1892-453a-0f9d-641ddedb2038.png)

“`
著者:仁科 健
出版社: 朝倉書店
発売日: 2009/12/1
“`

#感想

– 製造業向け、QC工程表とか腐らせずに管理できている会社ならこのレベルまで実現できているのか?
– やはり管理

元記事を表示

Pythonで依存型と篩型の型クラスを宣言できるコードをGitHubからDLしたら、うまく動いた!

##問題意識の所在

自作クラスを宣言するときに、定義するクラスが用いるデータ型に制約を与えるだけでなく、そのクラスのインスタンスが__持ちうる値の範囲や、長さの範囲についても制約を与える__ことができる言語は、__依存型や篩型の型クラスを宣言できる言語__として、知られています。篩型は、「ふるい」型と読みます。

__*Idris*__や__v6.11以降の*Racket*言語__が、これらの型を宣言し、静的な型検査を行うことができる言語です。

・[Dependent Types と Refinement Types の違い](https://7colou.red/blog/2018/07-07-difference/index.html)
・[Refinement Types For Haskell](https://goto.ucsd.edu/~nvazou/refinement_types_for_haskell.pdf)
・[型をさらに拡張するーーRefinement Typesについて](http://bugrammer.hateblo.jp/entry/2016/07

元記事を表示

Pytorch_geometric の前処理にて、複数の自作transformクラスを渡す方法

# 概要
グラフ関連のDeep Learningの研究をしているためPytorch_geometricにはお世話になっています。が、最近geometricのデータセットにアクセスするたびに複数の種類の前処理(transform)を行いたいと思って調べましたが意外と時間がかかったためメモ

##実装方法

論文の引用関係データセットの’Cora’をインストールし、複数の前処理(transform)を行う場合、

“`
from torch_geometric.datasets import Planetoid
import torchvision.transforms as transforms

transforms = transforms.Compose([TransA(), TransB(), …])
dataset = Planetoid(root=’./data’, name=’Cora’,
transform=transforms)

“`

上記のように渡したい複数の自作transform(TransA, TransB,

元記事を表示

Pythonで、配列要素のデータ型と、配列の長さを型検査する依存型ライクなメソッドを作ってみた

###定義したメソッド

自作クラスを宣言するときに、定義するクラスが用いるデータ型に制約を与えるのと同時に、そのクラスのインスタンスが持ちうる値の範囲や、長さの範囲にまで、制約を与えることができる言語は、依存型や篩型の型クラスを宣言できる言語として、知られています。

*Idris*やv6.11以降の*Racket*言語が、これらの型を宣言し、静的な型検査を行うことができる言語です。

・[Dependent Types と Refinement Types の違い](https://7colou.red/blog/2018/07-07-difference/index.html)
・[Refinement Types For Haskell](https://goto.ucsd.edu/~nvazou/refinement_types_for_haskell.pdf)
・[型をさらに拡張するーーRefinement Typesについて](http://bugrammer.hateblo.jp/entry/2016/07/21/152813)
・[LiquidHaskell のインス

元記事を表示

Python:文字列を画像にしてtwitterでseleniumで自動投稿

他の記事を参考にしながら書きました。
一度image.pngで保存してから投稿しています。
pywinautoについては、Python3.9にして動作しました。

“`Python:strtoimage_tweet.py
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import chromedriver_binary
import pywinauto
import PIL.Image
import PIL.ImageDraw
import PIL.ImageFont
import time

account=””
password=””
#ログイン用

def strtoimage(text):
ttfontname = “C:\\Windows\\Fonts\\meiryob.ttc”
fontsize = 12

# 画像サイズ,背景色,フォントの

元記事を表示

LeetCodeに毎日挑戦してみた 27. Remove Element(Python、Go)

## はじめに

無料英単語サイト[E-tan](https://your-e-tan.com/)を運営中の@ishishowです。

プログラマとしての能力を上げるために毎日leetcodeに取り組み、自分なりの解き方を挙げていきたいと思います。

#### Leetcodeとは

[leetcode.com](https://leetcode.com/)
ソフトウェア開発職のコーディング面接の練習といえばこれらしいです。
合計1500問以上のコーデイング問題が投稿されていて、実際の面接でも同じ問題が出されることは多いらしいとのことです。

golang入門+アルゴリズム脳の強化のためにgoとPythonで解いていこうと思います。(Pythonは弱弱だが経験あり)

#### 9問目(問題27)

#### 27. Remove Element

– 問題内容(日本語訳)

> 配列*nums*と値*valを指定して*、その値のすべてのインスタンスを[**インプレース**](https://en.wikipedia.org/wiki/In-place_algorithm)

元記事を表示

【保存版】Flaskで画像を操作したいと思ったときの6パターンについて書き分ける

Flask上で画像を操作する場合、__ソースコードのパターンとして画像の生成元をどうするか__というもので3パターン、__画像の最終的な処理方法をどうするか__というもので2パターンで組み合わせで合計6パターンがあると思います。__この6パターンについてソースコードを書き分ける必要がありますのでそれについて記載します。__

__画像の生成元の3つとは__

* HTMLからFlaskで立てたURLへ直接画像がアップロードされる場合、
* Flaskの関数の中でmatplotlibなどで生成する場合、
* クラウドないしはローカルフォルダなどに保存されている画像を読み込んでくる場合

の3つです。

__最終的な処理方法として2つあるというのは、__

* 画像をクラウドないしはローカルフォルダなどに保存する場合と
* クライアント側へ画像をreturnする場合

の2つです。画像から例えばOCRで情報を抽出して文字列で返す場合もあると思いますが、これはJSONなどでリターンすればOKなので6パターンに中で対応できると思います。

したがって、__Flaskで画像を操作したいと思う

元記事を表示

DPさん、お手柔らかに

こんばんは(;´・ω・)

前回、[ここ](https://qiita.com/AKpirion/items/f28661dccc21c2270189) で最後に DP に触れてみましたが、
今一 ピンと来なかったので、もうちょっとカジってみます(*´з`)9

初心者なので、早速ググってみると
“分からない”、
“壁”、
“登竜門” 
とか色々、一緒に出てきました。
やっぱり皆、一度はハマるんですね。

取りあえず、やってみましょう。
初級問題:与えられた要素を任意に組み合わせて最大値を求めてみます。

“`Combination_DP.py
N = 3 # 要素数
A = [7,-6,9] #要素

memo = [0]*(N+1) # 要素数 + 1 のメモを 1 行(all 0)を用意

for i in range(N):
memo[i+1]=max(memo[i],memo[i]+A[i])

print(memo[N])#回答の表示
“`

for 文は何をしているのでしょうか?
一個ずつ追って見ましょう。

**i = 0 のとき**
memo[0] には

元記事を表示

pythonエンジニア認定基礎試験に合格した

#python認定エンジニア試験を受験しようと思ったきっかけ
面接でpythonを使ってアンケートを分析したことがあると言った際に、面接官の方から「python認定エンジニア試験を受験してみたら?」と勧められたので。

##勉強を始める前のレベル
PyQと言うpythonを学べるサイトでpythonの文法やデータ分析について一通り学んでおり、基礎的な知識は身に付いている程度。ただ、文法は自信がないものの、pythonを使っての分析は実際に使えるレベル。

#勉強方法
pythonチュートリアルを読みながら、理解できないコードを実際に動かしながらやってました。テキストにあるコードを頭の中でどのような処理がされるのか、を自分で理解するまで動かしました。デバック機能を使いまくり、とにかく納得するまでやるのが良いかなと思います。
一通りテキストを読んで、コードを動かしたあとは公式ホームページにある模擬テストを一日一回やってました。間違えた問題をどこが間違っているのか、なんで正解したのかを徹底的に分析したのが重要だと思います。あと、問題は必ずテキストを基に作られているので、間違えた問題を参考にテ

元記事を表示

Window環境でなるべく汚さずPython環境を乱立させる。

# 0. はじめに
## 0-1. やること
Windowsで出来る限り環境を汚さず、Python環境を乱立させます。

## 0-2. 動作検証環境
Window 10 Pro Ver 1909 (Build 18363.1198)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210304/c40dc008-1ed6-ebb8-7230-a7d5df9f1688.png)

# 1. 手順
## 1-1. 作業フォルダの作成
お好みでフォルダを作成する。

“`
C:\Python
├ env ←Python格納フォルダ
└ project ←スクリプトファイル(*.py)格納フォルダ
“`

## 1-2. Pythonのダウンロード
以下のURLより、使用したいバージョンの「embeddable zip file」をダウンロードする。
例:python-3.8.6-embed-amd64.zip
https://www.python.org/downloads/window

元記事を表示

Flaskで作るSNS Flask(Template)編

#初めに
Udemyの下記講座の受講記録

Python+FlaskでのWebアプリケーション開発講座!!~0からFlaskをマスターしてSNSを作成する~
https://www.udemy.com/course/flaskpythonweb/

この記事ではFlaskのView側(Template側)について記載する。

##Flaskとは
– PythonのWebフレームワーク
– MVT(モデル・ビュー・テンプレート)

– Model:データ挿入、更新、削除など、データベースにアクセスする処理を実行する。
– View:ユーザーの入力を受け付け、処理に必要なモデルを呼び出し、その結果をTemplateに渡す。
– Template:Viewから渡されたデータをもとに動的にページを作成してユーザーに結果を表示する。

##Tutorial
“`python
from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def index():
return ‘

Hello World!

元記事を表示

Pandas DataFrameのすべてのメソッドとそれぞれに渡せる引数を調べた

Pandas DataFrameのすべてのメソッドとそれぞれに渡せる引数について調べました。
知っているメソッドしか使わないので、他のメソッドも調べて積極的に使っていきたいと思います。

以下、方法と結果です。

## 方法

下記ファイルを実行するとinspectモジュールを使って自動で調べてくれます。

“`main.py
# coding: utf-8
import inspect
import pandas as pd

def main():
print(123)
df = pd.DataFrame({
“col1”:[i for i in range(10)],
“col2”:[i*2 for i in range(10)],
})
print(df)
print(dir(df))
df_methods = dir(df)
print(len(dir(df)),dir(df))
n = 1
for i,method in enumerate(df_methods):

元記事を表示

gdstkでPython最速のGDSII layout制作環境を作る

#はじめに
この記事は、過去記事”[PythonでGDSII formatを扱う](https://qiita.com/isourou/items/5ae84a020da65338d19b)”および”[gdspyを使って、PythonではじめてのGDSIIファイルを作る](https://qiita.com/isourou/items/9d8d9220063e839f3e56)”の続きである。これらの記事では、Python上でGDSII layoutを扱うためのライブラリ”[gdspy](https://github.com/heitzmann/gdspy)”について説明してきたが、これはPythonネイティブで動作するため遅すぎた。そのため作者である[@heitzmann](https://github.com/heitzmann/)はver.1.6系を最後にgdspyの継続をあきらめ、新規プロジェクト”[gdstk](https://github.com/heitzmann/gdstk)”(GDSII Tool Kit)に現在注力している。gdstkは、C++で書かれたGDSIIフ

元記事を表示

【VSCode tips】VSCode の Python Extension のエラーを修正する 【#3】

## 現象

Windows 10 にて Visual Studio CodeのPython拡張機能をインストール・有効化すると、`C:\Users\ユーザー名\AppData\Local\Microsoft\WindowsApps\python3.exe` というログが出力される。

## 原因

Windows 10 の機能である `アプリ実行エイリアス` にて、上記パスを参照しているが、`python3.exe` は存在しない(実行ファイルでない)ため、エラーが出力されている。

## 対処

1. `アプリ実行エイリアス` から python を参照している、該当すエントリーを削除する
2. Visual Studio Codeを再起動する

元記事を表示

Flaskのrequestsモジュールについて、すべてのメソッドを実行してしっかり理解する

PythonのFlaskでweb APIを作成することがあるのですが、クエリパラメータの読み込みなどちゃんと理解せずに使ってしまっているので、ここでは、http://127.0.0.1:5000 というURLをFlaskで立てて、そこにPOST通信とGET通信を試みた際の挙動について、requetstsモジュールのすべてのメソッドを実行して調べます。

## 方法

検証用のflaskの関数とcurlコマンドについて説明します。

### Flaskの関数

URLが叩かれたときのrequestモジュールをすべて実行するためのFlaskの関数はこちらです。

“`main.py
# coding: utf-8
from flask import Flask, request

app = Flask(__name__)

@app.route(“/”, methods=[“GET”, “POST”])
def hello():
request_methods = dir(request)
print(len(dir(request)),dir(request))

元記事を表示

Huggingface Transformersを使って10行で桃太郎の続きを生成する

## 動作環境
* Google Colaboratory
* Huggingface Transformers 2.5.1
* Pytorch 1.5.0

## 実装内容
* 「桃太郎」でおばあさんが桃を割ったところまでの文章を入力し、その続きを日本語版BERTに予測させる。

## ソースコード

“`python:generate_ja_sentence.ipynb
!pip install torch torchvision -f https://download.pytorch.org/whl/torch_stable.html
!pip install transformers
!pip install fugashi
!pip install ipadic
import torch
from transformers import AutoModelWithLMHead, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(“cl-tohoku/bert-base-japanese-whole-word-

元記事を表示

MatplotlibをFlaskで拡張して、誰でもPythonで作成したグラフを見られるようにする

製造業やWeb制作会社だとPythonをインストールしているのが自分のPCだけだったりします。そんな時、PythonをインストールしていないPCでもMatplotlibでグラフを生成し、ブラウザを介して画像としてダウンロードする方法をメモします。

これにより、

* 誰にでもMatplotlibで生成したグラフにアクセスしてもらえる環境を構築する
* 自分のPCが非力な時、性能の良いサーバで画像を生成して効率化を図る
* めちゃめちゃ重いデータをあらかじめグラフ作成しておいてすぐ提供できるようにする

ことができるようになります。

## 方法と項目

方法は下記のとおりです。

* WebAPIを作成し、あるURLを叩いたらPythonの関数が走るようにする
* その関数の中でMatplotlibで画像を生成し、returnする

この記事ではそれぞれについて説明した後、さらに

* 本番環境でも耐えられるようにクラウドサービスの一つであるGCFにデプロイする方法と、
* そのAPIを叩いてcanvas要素に描写するHTMLのサンプル作成

までまとめます。
実際のところ、グラフの

元記事を表示

gunicornで起動するworkerに連番を割り振る

複数の Worker を起動するアプリケーションにおいて、各 Worker に一意な連番を割り振りたい場面があったのでメモ。

設定ファイルの`Server Hooks`を使えばワーカーの起動時に呼ばれる処理を定義できるため、ここでワーカープロセス毎に環境変数を設定する。

# 実装

FastAPI + gunicorn の例

`pre_fork`イベントを利用する

“`python:gunicorn.config.py
import os

workers = 4

def pre_fork(server, worker):
print(‘## called pre_fork’)
os.environ[‘WORKER_ID’] = str(server.worker_age – 1)
“`

“`python:main.py
import os
from fastapi import FastAPI

app = FastAPI()

worker_id = os.getenv(‘WORKER_ID’)
print(‘## WORKER_ID:’, wor

元記事を表示

【AI】LobeからExportしたモデルの使い方

# ➊はじめに
前回は『[**`【AI】LobeでMNISTをやってみた`**](https://qiita.com/PoodleMaster/items/8829cfa9036b6c14ee27)』にて、AI側については一切プログラミングすることなく、推論エンジンをローカルPCにデプロイしました。また、[**Local API**](https://docs.lobe.ai/docs/export/export)を介してアプリと推論エンジンの通信を行いました。
![system](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405376/c4b2d953-7530-2e36-7e9d-46b2dbac0d23.png)

# ➋今回やること
Lobeから`TensorFlow(saved_model)形式`でエクスポートし、そのモデルを利用できるか確認してみたいと思います。今回はLobeが用意した[`➎Lobe-API`](https://qiita.com/PoodleMaster/items/af5630

元記事を表示

Azure Functions上のpythonプログラムから、毎朝6時にその日の1時間ごとの天気予報をslackに通知する

#はじめに
朝起きた時の晴れ空で、洗濯しようと決意する人は多いはず。ただ、急な雨で後悔をした人も同じくらい多いはず。
かといっていちいち天気予報をググるのも面倒だし、テレビでは時間が合わずちょうどいまって時に教えてくれない。毎朝、いい感じのタイミングに天気予報をスマホに通知してくれないかなぁ、、
そんな希望に応えるために、表題のようなコードを書いてみました。
「「そういうアプリあるでしょう??」」それを言ったらおしまいです。忘れましょう。

#やってみたこと
1.TimerTriggerを持つAzure Funcitionsを準備する
2.OpenWeatherMapのAPIをたたき、東京都の1時間ごとの天気予報データをslackに投稿するpythonコードを書く

#環境・使用ツール
・windows10
・python3.7.2
・[OpenWeatherMap](https://openweathermap.org/api)
・[Azure Functions](https://docs.microsoft.com/ja-jp/azure/azure-functions/func

元記事を表示

OTHERカテゴリの最新記事