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

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

DefaultQuantization, AccuracyAwareQuantization by OpenVINO’s post training optimization toolkit, INT8 (Integer Quantization)

# 1. Introduction
Organize the procedure for INT8 Quantification of EfficientNet by “post training optimization toolkit” of OpenVINO.

# 2. Environment
– Ubuntu 18.04 x86_64
– Corei7-8750H (No AVX-512 instruction set)
– Tensorflow-gpu v1.15.2
– PyTorch
– Python 3.6
– OpenVINO 2020 R1
– EfficientNet D0 (Pytorch)

# 3. Procedure
## 3−1.Install AccuracyChecker and post_training_optimization_toolkit

**https://docs.openvinotoolkit.org/latest/_README.html**

“`console:Install_AccuracyChecker_and_pos

元記事を表示

wikipediaから表を抽出する

“`python:easy_read_html.py
import pandas as pd
url = ‘http://www.example.com’
df = pd.read_html(url)
“`
が上手くいかなったので。
#初めは上手く行っていた
“`python:first.py
import pandas as pd
url = ‘https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_Italy’
df=pd.read_html(url)
“`
これで表が抽出できたので、`pandas`すげーと思って、明日やろうとパソコンを閉じました
#次の日
“`
ValueError: invalid literal for int() with base 10: ‘2;’
“`
となり、エラーしかでない。ここでanacondaの再インストールやっても状況が変わらないので、OSの再インストールを実施。
結果は変わらない:cry:
#requestsとbeautiful soup
“`python:requ

元記事を表示

lambdaの活用(関数を別の関数の引数として渡すとき)

個数の異なる引数を持つ関数をそれぞれ同一関数の引数として渡す場合、lambdaを用いて利用できます。

以下のソースがあるとします。

“`python

# 引数なし関数
def print_type1():
print(‘print_type1を処理中・・・’)
return ‘[print_type1]’

def print_com(func):
print(‘=== print_comを処理中・・・ ===’)
rtn = func() # 利用する際、渡す関数には引数なし
print(‘{}を処理しました。’.format(rtn))
print()

print_com(print_type1) # 問題なく動作します
“`
後から引数のある関数をprint_comに代入したいときがあると思います。
例:

“`python
# 引数あり関数
def print_type2(day):
print(‘print_type2を処理中・・・’)
print(‘day: {}’.format(str(da

元記事を表示

Qiitaの記事をGitHubに移行する

# はじめに
一つのサービスに依存するのは、リスクだと思うのでQiitaの記事をGitHubに移行するスクリプトを書いてみます。

なお、私の記事は以下のようになりました。
https://github.com/mima3/note

# 動作環境
Python 3.7.4
Windows10

# 事前準備
Qiitaのアクセストークンを取得します。

(1)設定画面のアプリケーションタブから「新しいトークンを発行する」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/1027591c-3943-b695-c493-615457408997.png)

(2)読み取り権限を付けて「発行」を押下します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/cc957b75-91f7-9f5e-7fd8-2be56c38061f.png)

(3)アクセストー

元記事を表示

KerasRegressorをpickleやjoblibで保存できるようにする方法

## 概要

KerasRegressorをpickleやjoblibで保存しようとするとエラーになりますが、
保存できるようにする方法です。

## ソリューション

以下でKerasRegressorをモンキーパッチ

“`python
def KerasRegressor__getstate__(self):
result = { ‘sk_params’: self.sk_params }
with tempfile.TemporaryDirectory() as dir:
if hasattr(self, ‘model’): # 親Estimatorによるcloneなどで存在しないケースがある
self.model.save(dir + ‘/output.h5’, include_optimizer=False)
with open(dir + ‘/output.h5’, ‘rb’) as f:
result[‘model’] = f.read()
retu

元記事を表示

新型コロナウイルスの日本と他国との広がり方の違いをクラスター対策モデルで説明してみる

# はじめに
 新型コロナウイルス感染症(COVID-19)は、感染の場を中国から欧州、米州へと広げ猛威を振るっています。日本においても、3月27日現在、国内での感染者は1254名で、東京都においても週末の外出自粛規制を都知事が要請する事態となっています。しかしながら、医療が比較的整っていると思われるG7各国と比較しても、アメリカ85594名、イタリア80589名、ドイツ43938名、フランス9155名、イギリス11658名、カナダ4043名と、日本の少なさが際立っています。
 本記事では、この理由を説明する一つの仮説として、**クラスター対策に注目した数理モデル**で説明できないかを検討しました。検討の流れとして、従来モデルの問題点、新しいモデルの検討、シミュレーション、考察、となっています。

# 結論
まず、結論から述べますと、

1. クラスターの発生を放置すると爆発的に総感染者数は増加し、**初期再生産数10のクラスターが113人、初期再生産数20のクラスターが3493人、初期再生産数30のクラスターが58437人、の感染者を生み出す**。
2. クラスター対策の効果は、早け

元記事を表示

単回帰と重回帰分析

#単回帰分析とは
y = 5x + 3という式があったとしてxの値がわかればyの値はわかりますよね。一つの値に対して一つの値を予測するのが単回帰分析です。
例えるなら身長が170センチぐらいだと体重は70キロくらいかな。という感じです。
#重回帰分析とは
体重 = 身長 - 100
のように現実世界はそう甘くありません。
身長は190センチあるのに体重が70kgのようなモデルみたいな人もいれば身長が150センチしかないのに100kgくらいあるひともいるでしょう。ではあとなんのデータがあれば体重を予測できるでしょう。例えば体脂肪率やウエストや服のサイズなどです。
体重 = 身長 ? 体脂肪率 ? 服のサイズ ? ウエスト
のように複数の種類の値から一つの値を予測することが重回帰分析です。

元記事を表示

selenium

#selenium + firefoxによるUIテストの自動化

“`py
import time
import unittest

#pip install selenium
#brew install geckodriver
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

class PythonOrgTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()

def tearDown(self):
se

元記事を表示

【Python】カレンダー形式のヒートマップ(祝日表示つき)

# この記事の目的

以下のような, 祝日表示付きのカレンダー形式のヒートマップを作成する.

![calendar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540956/d03c5a05-d680-00a9-4f70-b7e0fc77ea05.png)

ちなみにデータには, Qiita APIを使って取得した @yaotti さんの記事投稿日を1投稿=1イベントとして使わせていただいています.

# 似た可視化の方法

– Contributions Calendar
– Contribution Graph
– 草
– 芝生

など, いろいろな名前で呼ばれていますが, GitHubの以下の図もシンプルで良いですね.

![contributions_graph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540956/7c36eee2-e2bd-7967-ed61-8da5c34a0887.png)

元記事を表示

新型コロナウイルス対策サイト(石川県版)を開発した学生の話

# 自己紹介
こんにちは、東洋大学 情報連携学部 新4年になるものです。
![iniad.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201115/4c10bb2b-5021-38c0-e24d-5ce8da6a410e.jpeg)

まだまだひよっこ中のひよっこなので暖かい目で見ていただけると幸いです。(どMなので厳しいのでもOK!)
最近は、何かと大変ですね。僕も春休みに入りインターンも一時休業となりました。
給料がなくて悲しいのです、、、
もし、お仕事あれば連絡ください!!

# 開発の経緯
避難も兼ねて地元に石川県に帰ったわけですが、あらびっくりやることがございません。
なのでずっとゴロゴロ。。。
そんな日々を2週間続けてたある日、なにやら面白い活動が、、、
### 東京都 新型コロナウイルス対策サイトの話ですねー。
スクリーンショット 2020-03-28 4.44.15.pngPython 文字列 特定文字を置換による削除

## 背景
備忘録です。
文字列を扱うときに、いらない文字が含まれいると削除する必要がある。
調べても、あんまりしっくりいくものがなかったので。
そこで、特定文字を無くなるように文字列置換をしてあげることで楽に処理できる。

“`python:change_and_remove_string.py
#邪魔な文字@,%を””に置換
#:を.(コンマ)に置換
str_ = “@14@:@30@@%%%”
str_ = str_.replace(‘@’, ”)
str_ = str_.replace(‘%’, ”)
str_ = str_.replace(‘:’, ‘.’)
print(“str_”, str_)
#str_ 14.30

STR_ = “@14@:@30@@%%%”
STR_ = STR_.replace(‘@’, ”).replace(‘%’, ”).replace(‘:’, ‘.’)
print(“STR_”, STR_)
#STR_ 14.30
“`

元記事を表示

tkinterで作ったLabelの右端の座標

tkinterで作ったLabelの右端の座標が知りたい。

Frame,Labelの配置方法など基礎的な部分は[【tkinter】Labelを使ってみる](https://www.pytry3g.com/entry/2018/02/25/231420)などを参照してください。

(本記事は[tkinterでLabelを動かす【Python】](https://qiita.com/teahat/items/a1e70621a62ab3a42ad8)の一部です。検索しやすいように別記事に分けてみました。)

#問題
“`python

txt=Labeltext
label=ttk.Label(master=root,text=txt,font=(“メイリオ”,fontsize))
“`
としたとき、`label`の左端はもちもんxxである。
では、そのLabelの表示の上での右端の座標は?

#答え
“`python
label.winfo_reqwidth()+xx
“`

#解説(無駄話)
私ははじめ`len(txt)*fontsize`でいけると思った。しかし、fontsi

元記事を表示

tkinterでLabelを動かす【Python】

tkinterでLabelを動かす。
Frame,Labelの配置方法など基礎的な部分は[【tkinter】Labelを使ってみる](https://www.pytry3g.com/entry/2018/02/25/231420)などを参照してください。

#サンプルコード
`label`の両端がFrameの両端から出そうになったら逆向きに動き出すプログラム。

“`python
from tkinter import ttk
import tkinter

def move(flag,i):
if(flag==True):
i-=1
else:
i+=1
if(i==0):
flag=False
elif(i+label.winfo_reqwidth()==400):
flag=True
label.place(x=i,y=150)
label.after(4,lambda: move(flag,i))

w,h=”400″,”300″
root=tkinter.Tk()

元記事を表示

Pythonでシャープレイ値の計算

# はじめに
こんにちは、leisurelyこと悠長です。(Twitterでleisurelyが呼びにくいと言われた。)
協力ゲーム理論の勉強をしたので復習がてらPythonでシャープレイ値の計算を実装しました。別に手計算でできることをプログラミングで実装しただけですし、手計算で求めるのがつらいようなシャープレイ値の計算を実際にすることはないでしょう。なんならシャープレイ値を計算するパッケージがRにはあるらしいのでRを使えばいいじゃんってね(パッケージ名はmatchingRだったかな)。ということで実装するのは完全に趣味です。

シャープレイ値の説明を少しだけしてからコーディングに入ります。

・参考文献
[武藤滋夫 ゲーム理論入門](https://www.amazon.co.jp/%E3%82%B2%E3%83%BC%E3%83%A0%E7%90%86%E8%AB%96%E5%85%A5%E9%96%80-%E6%97%A5%E7%B5%8C%E6%96%87%E5%BA%AB%E2%80%95%E7%B5%8C%E6%B8%88%E5%AD%A6%E5%85%A5%E9%96%8

元記事を表示

Python CSVファイル 読み込みと書き込み

## 背景
CSVファイルの読み込みと書き込みの方法はネットにたくさんあるんですが、
毎回自分がググるのがつらいので、備忘録を作成します。
pandasライブラリを使ってもいいんですが、
csvファイルのフォーマット自体が整っていないときに使用できるかなと思います。
フォーマットが整っていたら、pandasを使うと楽です。

###CSVファイルの読み込み

“`python:read_csv_file.py
import csv
#csvファイル
csv_file = “demo.csv”
with open(csv_file) as f:
reader = csv.reader(f)
#内包表記 1行ごとのデータをlist_に入れる
list_ = [num for num in reader]
#出力
print(“list_ “, list_ )
“`

###CSVファイルの書き込み

“`python:read_csv_file.py
import csv
#csvファイル
csv_file = “demo.csv”
#newline=””で

元記事を表示

素因数分解を O(n^(1/4)) でする

# 素因数分解を O(N^(1/4)) でする

自然数 $n$ を $O(n^{\frac{1}{4}})$ で素因数分解します。

## ナイーブな実装

自然数 $n$ を素因数分解するとき、ナイーブな実装としては、 $n$ の平方根まで順次割っていく方法があります。この方法では $O(\sqrt{n})$ の計算量が必要となり、大きい $n$ に対しては非効率です。

# 素数判定
まず、自然数の素数判定を高速に行うことを考えます。ここではミラー・ラビン法と呼ばれるものを使います。まず、フェルマーの小定理を復習しましょう。

## フェルマーの小定理による判定
フェルマーの小定理により、素数 $p$ と、 $p$ と互いに素な自然数 $a$ に対して下記が成立します。
$$ a^{p-1} \equiv 1\ ({\rm mod}\ p) \tag{1}$$

対偶を取ると、ある $a$ について
$$ a^{n-1} \equiv 1\ ({\rm mod}\ n) \tag{2}$$

が成立しなければ $p$ は素数でないことが分かります。逆に、たくさんの $a$ につ

元記事を表示

pandasのDataFrameの”どこか”に任意の値がないかを調べる方法

#概要(TL;DR)
50列x300万行のcsvの中に、いずれの列でも良いので、ある文字が含まれている行を抽出して欲しいという依頼を受けて、まさかExcelでは開けないので、Pandasで試してみた。

#注意
***grep***使えば・・・とか絶対に言わないこと。あくまでもpandasの練習なんです。

#サンプルデータ
流石に50列x300万行のcsvで書くと面倒なので、下記をサンプルデータとする。(実際のデータはNaNとかもあるので、もう少し複雑だった。)

“`python
df = pd.DataFrame({“NAME”:[“Alice”,”Bob”,”Charly”,”Eve”,”Frank”],
“AGE”:[10,20,30,20,10],
“ADDRESS”:[“TOKYO”,”OSAKA”,”TOKYO”,”OSAKA”,”AICHI”],
“COMPANY_PLACE”:[“TOKYO”,”TOKYO”,”AICHI”,”OSAKA”,”OSAKA”

元記事を表示

100日連続実装生活 5日目

#GoogleAnalyticsのrawデータをBigQueryにcloud functionsを使って定時エクスポート

[2日目の記事](https://qiita.com/AoHina/items/4eb2b469705382c8519b)と内容がほぼ同じなのですが、しばらくして、2日目の記事がcloud functionsからだと使えないことがわかったので、詰まったところと、その対処方法までお伝えしていきたいと思います。

##やること
1. GoogleAnalytics APIを使ってpythonにrawデータをはき出す
2. pandasを使って、GoogleCloudStarageにアップロード
3. GCSからBig Queryにエクスポート

##つまったところ
###1.ローカルにファイル作成ができない
2日目のものはローカルで実行する分には問題ありませんでした。
しかし、cloud functionではread onlyであり、csvファイルを作成することができません。
なので、直接BigQueryにエクスポートするか、GCSにcsvファイルを作成することなくア

元記事を表示

Rasa NLU で自然言語理解のおためし

NLU (Natural Language Understanding=自然言語理解) をやってみたくて、

https://tech.mof-mof.co.jp/blog/rasa-nlu-japanese.html

を参考にしながら、dockerで環境を作って、実際に動くところまでやってみる。

## Docker環境構築

ホストマシン上でrasa用のディレクトリを作る。

“`sh
$ mkdir rasa
$ cd rasa
$ vi Dockerfile
“`

Dockerfile に、まずは python が動くimageのみを記述してみる。

“`Dockerfile
FROM python:3.7-slim-stretch
“`

docker-composeで動かしたいので docker-compose.yml を作成

“`sh
$ vi docker-compose.yml
“`

“`docker-compose.yml
version: ‘2’
services:
rasa:
container_name: rasa

元記事を表示

1次元移流方程式を有限要素法で解いてみる.py

1次元移流方程式をSUPG(Streamline Upwind/Petrov-Galerkin)法に基づく安定化有限要素法によって解いてみます.
言語はPythonを用います.使用したバージョンは Python 3.6.1です.

参考文献:
計算力学(第2版)-有限要素法の基礎(森北出版)
第3版 有限要素法による流れのシミュレーション OpenMPに基づくFortranソースコード付(丸善出版)

# 1次元移流方程式
1次元移流方程式は以下のような1階の偏微分方程式で表されます.

“`math
\cfrac{\partial f}{\partial t} + u\ \cfrac{\partial f}{\partial x} = 0
“`

ここで,$f$ は移流される物理量(例えば濃度),$u$ は移流速度です.

# 安定化有限要素法による離散化
解析領域 $\Omega$ を$M$ 個の1次要素の要素領域 $\Omega_e$に分割すると以下の離散化方程式が得られます.

“`math
\int_\Omega \omega\ \cfrac{\partial f}{\

元記事を表示

OTHERカテゴリの最新記事