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

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

apache log を python で csv にする

## apache_log_parser を install

“`bash
pip install apache_log_parser
“`

## 下記コードを作成

ほぼ下記なんですが、一部バグフィクス
https://github.com/isonet/apache-log-to-csv

“`python:alog2csv.py
#!/usr/bin/env python
# coding: utf-8

import csv
import apache_log_parser
import argparse

class bcolors:
HEADER = ‘\033[95m’
OKBLUE = ‘\033[94m’
OKGREEN = ‘\033[92m’
WARNING = ‘\033[93m’
FAIL = ‘\033[91m’
ENDC = ‘\033[0m’

def main(**kwargs):

print(‘Converting, please wait…’)

line_pars

元記事を表示

Excel×Pythonで作業フローを効率化する方法を調べてみた⑤

#今回の目的
PythonでExcelファイルをPDFに変換して出力する。
※例のごとく、説明はプログラムのコメントで記載しています。

###事前準備
Win32comパッケージのインストール(PythonでのCOMを通じたExcel操作のため)
https://github.com/mhammond/pywin32/releases
ここから、自分の環境に合わせてダウンロードインストール(pythonのバージョン、64ビットか32ビット)
※pipでもいいのかな?(やっていないですが)

###プログラムの流れ
①sample_pdf.xlsxファイルを取り込む
②PDFファイル名を作成(pdf_[title]_[createdate].pdf ※[]はエクセルから取得)
③PDFファイルを出力する

#プログラム実行結果確認
※プログラムは一番下

###取り込むエクセル(sample_pdf.xlsx)
![キャプチャ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350277/076d4a46

元記事を表示

EconMLケーススタディ – 顧客セグメンテーション — インセンティブに対する個別の反応を推定する

この投稿は[このノートブック](https://github.com/microsoft/EconML/blob/master/notebooks/CustomerScenarios/Case%20Study%20-%20Customer%20Segmentation%20at%20An%20Online%20Media%20Company.ipynb)の和訳です。

# 顧客セグメンテーション — インセンティブに対する個別の反応を推定する

現在、ビジネスの意思決定者は、特定の製品を割引で宣伝する、ウェブサイトに新機能を追加する、営業チームからの投資を増やすなど、戦略のシフトに関するWhat-ifの質問(もし〜したらどうなるか?)に答えるために、介入の因果関係を推定することに頼っています。しかし、すべてのユーザーに関して特定の介入に対して行動を起こすかどうかを

元記事を表示

ゼロから始めるLeetCode Day17「169. Majority Element」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day16 「344. Reverse String」](https://qiita.com/KueharX/items/27554500d3c7b2347b4c)

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

元記事を表示

pandas.DataFrameを結合するときの使い分け方のメモ

pandasでデータを結合するとき、いつもどのメソッドを使うべきかわからなくなるので、「join, merge, concatのざっくりとした比較」と「個人的な使い分け方」をまとめた。

## APIの比較

* [pandas.concat](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html)
* mergeやjoinとは異なり、結合軸を指定できる
* axisで結合軸を指定(0:index(default), 1:column)
* joinで結合方法を指定(inner, outer(default))
* [pandas.merge](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.merge.html)
* joinと比べて、オプションは多い
* onで結合キーとする列を指定する
* howで結合方法を指定する(left, right, outer, inner(de

元記事を表示

SQLAlchemyを簡単にまとめてみた(TIPSもあるよ)

# 目標

python の SQL ツールキットである SQLAlchemy のまとめ
質問や指摘・編集リクエストは大歓迎です。よろしくお願いします。

## SQLAlchemy とは??

– [SQLAlchemy – The Database Toolkit for Python](https://www.sqlalchemy.org/)

Python で DB を操作するときに使用する ORM(Object Relational Mapper)ツール

## 環境準備

### Docker で環境を構築

手軽に Docker で構築する

“`yml:docker-compose.yml
version: “3”

services:
db:
image: postgres:11.7
container_name: sqlalchemy-db
ports:
– 5432:5432
environment:
– POSTGRES_USER=postgres
– POSTGRES_PASSWORD=

元記事を表示

【Python】PandasのDataFrameに合計行を追加する

下記2つのいずれかがおすすめ。

“`py
def append_sum_row(df):
return df.append(df.sum(numeric_only=True), ignore_index=True)
“`
“`py
def append_sum_row_label(df):
df.loc[‘Total’] = df.sum(numeric_only=True)
return df
“`

##サンプル

それぞれを使ってみると下記のようになります。
行ラベル(index)の使用の有無によって使い分けると良いと思います。

“`py:sample
import pandas as pd

def append_sum_row(df):
return df.append(df.sum(numeric_only=True), ignore_index=True)

def append_sum_row_label(df):
df.loc[‘Total’] = df.sum(numeric_only=True)
re

元記事を表示

Ruby と Perl と Java と Python で解く AtCoder ABC 107 B 文字列操作

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Beginner Contest 107 B – Grid Compression](https://atcoder.jp/contests/abc107/tasks/abc107_b)*
Difficulty: 434

今回のテーマ、文字列操作
# Ruby
“`ruby.rb
h, w = gets.split.map(&:to_i)
a = []
h.times do |i|
s = gets.chomp
a.push(s) if s.count(‘.’) != w
end
1.upto(w) do |i|
f = true
a.each do |x|
f = false if x[w

元記事を表示

[現代数理統計学の基礎 with python] 2章:確率分布と期待値

# はじめに
 このシリーズは久保川達也氏著「現代数理統計学の基礎」を簡潔に説明し、その内容をpythonで実装してみよう、というものです。実装にはGoogle Colaboratory(以下:Colab)を使いました。ご指摘があればコメント欄に書いて下さるとありがたいです。
 説明が必要だと思ったところにだけ触れて、アウトプットできればいいよねくらいのスタンスで書くので本の内容をちゃんと全部理解したい方にとっては向いていないかもしれないです。
 式番号や命題・定義のインデックスは本に合わせて書いた場合、この記事では番号がとびとびになることがありますので予めご了承ください。

# 2章の概観
 まず、普段何気なく使っている確率変数を厳密に表現し、離散型・連続型における確率分布の説明をしています。似た言葉が出てきてややこしいかもしれませんが、内容を理解したら迷うことは少ないと思います。続いて期待値を定義して分散、標準偏差などの説明をしています。確率生成関数、積率生成関数、特性関数は初めてきくという方もいるかもしれませんが、統計学に関する造詣をより深められる重要な関数です。最後の変数変換は

元記事を表示

VSCodeでpythonの実行環境を構築する

VSCodeを使用して、Pythonの実行環境をプロジェクトごとに依存関係を管理したい。

## することリスト
* pyenvをインストールする
* Pythonのインストールする
* venvで仮想環境を設備する
* 仮想環境下にてライブラリをインストールする

##環境
* macOS Catalina 10.15.4
* Visual Studio Code 1.44.2
* Python version 3.6.6

## pyenvをインストールする
pyenv をホームディレクトリの .pyenv にcloneする。
homebrewを使用してもいいが、Pythonのバージョンを複数切り替えて使いたい場合は、githubからcloneする方がいいみたい。

“`
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
“`

### パスを通す
.bash_profileや.zshrcに以下を記載する。

“`
export PYENV_ROOT=”$HOME/.pyenv”
export PATH=”$PYE

元記事を表示

YOLOFaceで顔検出やーる(Windows10、Python3.6)

# はじめに
リアルタイムの物体検出アルゴリズムであるYOLOv3の顔検出版であるYOLOFaceをやってみました。CPUでも動くよ。

# システム環境
– Windows10(RTX2080 Max-Q、i7-8750H、RAM16GB)
– Anaconda 2020.02
– Python 3.6

# 導入
[yoloface](https://github.com/sthanhng/yoloface)をクローンします。

yoloface環境を作ります。

~~~
$ cd yoloface-master
$ conda create -n yoloface python=3.6
$ conda activate yoloface
$ pip install -r requirements.txt
~~~

[yolov3-wider_16000.weights](https://drive.google.com/file/d/1xYasjU52whXMLT5MtF7RCPQkV66993oR/view?usp=sharing)をダウンロードし、model-weights

元記事を表示

statsmodelsによるベクトル誤差修正モデル(VECM)入門

GrangerとNewbold(1974)とYule(1936)により導入された誤差修正モデル(error correction model: ECM)では、分析対象となるデータは共和分として知られる長期的な確率的トレンドをもつ。誤差修正は長期的な均衡からの乖離または誤差が短期的な動学へ影響することを表現している。経済時系列が単位根を含んでいれば時系列は非定常である。2つの非定常で無関係な時系列が回帰分析において最小二乗法を用いると有意な関係を示すことがある。誤差修正モデルでは長期的・短期的な時系列データ間の影響を分析し、従属変数が平衡状態に戻るまでの時間を予測するが、Engel-Grangerの方法では問題点も多い。 Johansenはベクトル誤差修正モデル(VECM)を発表し、問題点を解決した。VECMは、誤差修正モデルに双方向の因果を想定した多重時系列モデル(Multiple Time Series Models)の1つであるベクトル自己回帰モデル(VAR)の概念を加えたものである。したがって、多変量誤差修正モデルも多重時系列モデルの1つである。

# [ECM (wiki簡易

元記事を表示

初心者向けAtcoder用標準入力セット(python)

#はじめに
もう何番煎じかわかりませんが、Atcoder用の標準入力セットのまとめです。

Atcoderをだらだらとやっているのですが、精進を全然していないためいつまで経っても標準入力を覚えることが出来ていません。
ということで、いったん標準入力を整理しつつ、より高速な標準入力を体系的にまとめたいと思います。

本記事では基本中の基本となるABC-ABC問題を解くための最低限の標準入力をまとめます。
リスト内包表記やsys,numpyを使った標準入力は別の記事で触れます。

#1行1列データ
**入力**

>N(文字列または数)

**コード**

“`sample.py
#str型で受け取るとき
s = input()
#int型で受け取るとき
s = int(input())
#float型 (小数)で受け取るとき
s = float(input())
“`

注意事項として、文字列ではなく数字の場合でも、input()では全てstr型になることに注意。

#(1,N)行列データ

**入力**

>A B

###入力が文字列の場合
**入力例**
>Alice B

元記事を表示

グリーンスクリーンを設置するのも大変だから顔だけ切り出して背景画像に重ねてみた

Webカメラから自分の顔を検出して、顔だけを背景画像に重ねてみました。 Web会議アプリにWebカメラとして映像を渡せば、お手軽にWeb会議に顔を出せます。
treeman_example.png
小さい頃なりたかった(?)木の賢者にもなれます。

注)目伏せ追加機能はありません。 目伏せはこの記事のためにスクショに後から手加工で追加しました。

# 課題
3月上旬から在宅でWeb会議ざんまいの日々になってます。
あまりに部屋が汚いのでビデオはなしで、音声と画面共有だけでなんとかやってきました。でもやはりWeb会議だけでは今までの信頼貯金を取り崩している気がします。たまに顔を映してくれる人がいると、とても嬉しく思ってる自分がいます。自分も顔出したい。 でも部屋が狭いし汚すぎる!

普通は諦めて部屋を片付けたてきれ

元記事を表示

[Tensorflow Lite] Various Neural Network Model quantization methods for Tensorflow Lite (Weight Quantization, Integer Quantization, Full Integer Quantization, Float16 Quantization, EdgeTPU). As of May 05, 2020.



元記事を表示

【Python】pickle モジュールを使用すると、オブジェクトをファイルに保存することができる

# pickle モジュールを使用すると、オブジェクトを保存することができる

Python にて、辞書型のデータをローカル上に保存する処理を作成する際に、
「あれ?どうやって保存するんだ?」と疑問に思い、調べた結果、
`pickle`モジュールの存在を初めて知ったので、学習ノートとして残しておきます。(最終的に JSON に保存しました)

## 要約
– pickle モジュールを使用すると、オブジェクトを別ファイルにバイナリ形式として保存することができる。
– しかし、pickle モジュールはセキュリティ的観点より、使用はあまり推奨されていない。
– また、保存したファイルは Python 固有のものである。

## pickle モジュールについて

pickle モジュールを利用するとオブジェクトをバイナリ形式でファイルに保存することができます。

> pickle モジュールは Python オブジェクトの直列化および直列化されたオブジェクトの復元のためのバイナリプロトコルを実装しています。
[Python公式ドキュメント:pickle](https://docs.pyt

元記事を表示

Parametric Neural Network

## 使用しているライブラリ
– sklearn (scikit-learn、サイキットラーン)
– pythonの機械学習ライブラリ
– keras
– TensorFlow上で動作する、ニューラルネットワークのライブラリ

## ロジック
### ROOTファイルを読み込む
– uproot
– CERNライブラリROOTフォーマットのデータを読み込む

“`
Btag EventFlavour EventNumber FourBodyMass Jet0CorrTLV … mass mass_scaled sT sTNoMet signal weight weight_scaled
entry …

元記事を表示

[ns3-30]Pythonスクリプトのビジュアライズを有効にする

原因が分からず、かなりハマったので備忘録です。

## 環境

OS: Ubuntu 18.04
ns3: 3.30

## 状況

ここでは例として`example/tutoral/third.py`を用います。
https://www.nsnam.org/doxygen/third_8py_source.html

なお、同じ内容の`third.cc`はvisフラグ付きで実行しても正常にビジュアライズされるものとします。

“`
$ ./waf –run scratch/mythird –vis
Waf: Entering directory `/usr/ns/ns-3.30/build’
Waf: Leaving directory `/usr/ns/ns-3.30/build’
Build commands will be stored in build/compile_commands.json
‘build’ finished successfully (0.652s)
Could not load plugin ‘show_last_packets.py’: No

元記事を表示

初心者によるpython 環境作成メモ

##環境
– OS
windows10 home

– IDE
とりあえず無し
Atomにてコーディング、実行を行う。
(ステップ実行環境はまだ構築しない)

#python 環境作成メモ
##インストール
公式からpython3系を落とす(2はサポート終了が近いため)
anaconda を入れる
入れる際、環境変数への設定が行われるようにする

##入れたプラグイン
– autocomplete-python
python補完機能

– atom-runner
Alt+R で実行できる

– highlight-selected
直接pythonとは関係ない。選択したワードを強調する

– atom-beauty
コード整形機能
CTRL+ALT+B で実行

##Atom設定
– プラグインの追加
メニュー File->Settings.. を開く
\+ Install タブを開く

– atom runner の日本語が文字化け対策
メニュー File->Init Script… を開き
process.env.PYTHONIOENCODING = “utf-8”
と1行追

元記事を表示

[Django]migrateをやり直す

#[Django]migrateをやり直す

Django初学者のメモになります。
DB構築をする際にModelを書き直し、migrateをやり直りたい時があったのですが、いろいろとエラーしたりと苦労したので解決策を備忘録します。

[環境]
Django 2.01
python 3.7.2

##想定

– app名「recipe」を作成
– userモデルをカスタマイズしたuserモデルへ変更※
– migrateをやり直したい

※1.いろいろとtipsを覗いたが、カスタマイズUserにする際には、一度migrateをやり直した方が早いと思った。
なので、アプリケーションを作成する際には、最初にカスタマイズUserを作成するべき。

※2.ちなみにカスタマイズuserモデルの作成方法は以下の記事参照
[ジャンゴ(django)のカスタムユーザーモデル(Custom User Model)](https://dev-yakuza.github.io/django/custom-user-model/)

##やり直し手順

「migrateをやり直したい」ここの手順を下記に

元記事を表示

OTHERカテゴリの最新記事