Python3関連のことを調べてみた2019年12月03日

Python3関連のことを調べてみた2019年12月03日

statsmodelsによる誤差修正モデル入門

自学ノートとしてメモ書きしてみました。

GrangerとNewbold(1974)とYule(1936)により導入された誤差修正モデル(error correction model: ECM)は多変量の時系列モデルで、分析対象となるデータは長期的な確率的トレンドをもつとする。経済時系列が単位根を含んでいれば非定常な時系列となる。2つの非定常で無関係な時系列が回帰分析において有意な関係を示すことがあが、このような場合、最小二乗法は適した分析方法ではない。一方で誤差修正モデルは長期的と短期的な時系列データ間の影響を分析するのに適している。誤差修正は長期的な均衡からの乖離または誤差としての短期的な動学を表現している。ベクトル誤差修正モデル(VECM)はこれらのモデルの欠点を補うために誤差修正モデルにベクトル自己回帰モデル(VAR)として知られるマルチファクターモデルの概念を加えたものである。

また、経済理論の観点から変数間の因果関係についてGrangerの因果関係、インパルス応答関数、予測誤差分散分解などの概念がある。ECMは因果関係の分析にも用いられる。

### ベクトル誤差修正モデ

元記事を表示

D – Lucky PIN/三井住友信託銀行プログラミングコンテスト2019

#Problem
AtCoder 社は、オフィスの入り口に 3桁の暗証番号を設定することにしました。
AtCoder 社には N桁のラッキーナンバー Sがあります。
社長の高橋君は、SからN−3桁を消して残りの3桁を左から読んだものを暗証番号として設定することにしました。
このとき、設定されうる暗証番号は何種類あるでしょうか?
ただし、ラッキーナンバーや暗証番号はいずれも0から始まっても良いものとします。
4 <= N <= 30,000 #Submission ```python def solve(): ans = 1 N = int(input()) s = input() ans = 0 for i in range(1000): t = str(i).zfill(3) t_index = 0 for s_index in range(N): if s[s_index] == t[t_index]: t_index += 1 if t_index == 3:

元記事を表示

C – 100 to 105/三井住友信託銀行プログラミングコンテスト2019

#Problem

100, 101, 102, 103, 104, 105を組み合わせてXが作れるか否か判定する。

1 <= X <= 100,000 #Submission ```python def solve(): X = int(input()) quotient = X // 100 remainder = X % 100 if 0 <= remainder and remainder <= 5 * quotient: print(1) exit() print(0) solve() ``` 0 <= (Xを100で割った余り) <= 5× (Xを100で割って切り捨てた値) が成立するかどうか調べる。

元記事を表示

E資格講座 レポート1

# 応用数学(講義講座)
## 全般を通して
講師の方の説明がすごくわかりやすく、周りの技術者に進めたいコンテンツである。
行列式に関しては、個人的には復習的要素が強かったが、理解を深めることができる。
以下順を追って、まとめを行う。
## 線形代数学
「行列」、「固有値・固有ベクトルの求め方」、「固有値分解」、「特異値分解」に関する説明が行われた。

「行列」について、「行列」基本的説明に加えてポイントとなる箇所で、「逆行列」、「行列式の証明」、「行列式の求め方」に関して、問題が用意され具体的な解説が行われた。 「逆行列」の計算では、掃き出し法で行う説明がなされた。「行列式の証明」では、”行を入れ替えると行列式の符号は入れ替わる。”といういわゆる”入れ替えの性質”を使った説明がなされた。「行列式の求め方」の計算では、3×3の行列に関する行列式の求め方が、説明されました。

「固有値・固有ベクトルの求め方」では、まず「固有値」と「固有ベクトル」について説明があり、次に具体例が説明され、最後に求め方が紹介され、わかりやすく感じました。講義中で省略された2次方程式の解法については、個人的

元記事を表示

Pythonで最新のMACアドレスベンダーDBをoui.txtから生成する

## はじめに
– MACアドレスは機器固有のものであり、識別するのに便利
– MACアドレスの最初の6桁はベンダーコードといい製造メーカーのIDになっている
– IEEEが管理していて、IEEEのサイトで調べることができる

## やりかた
以下のIEEEのページからベンダー一覧をダウンロード

http://standards.ieee.org/develop/regauth/oui/oui.txt

あとは以下の動けばいいコードを実行するとMACアドレス6桁がキーの辞書型が出来上がります。

“`python
data = {}
with open(‘oui.txt’) as f:
i = 0
for s_line in f:
i = i + 1
if i < 5: continue p = i % 6 if p == 0: mac = s_line.split(" (base 16)\t\t")[0].strip("\n")

元記事を表示

Python初心者がマイクロフレームワークFlaskを使って30秒でHello Worldしてみた

## Flaskとは
– PythonのマイクロWebフレームワーク
– 標準で提供されている機能は最小限
– フルスタックフレームワークなら[Django](https://docs.djangoproject.com/ja/2.2/)とか
– 参考
– [PythonのWebフレームワーク4種比較](https://qiita.com/Morio/items/8db3c9b3ba7f2c71ef27)

## about me
### Python歴
3日

### やった理由
楽しそう

## やったこと
**①Flaskインストール**

“`sh
pip install Flask
“`

**②好きなフォルダに“`hello.py“`を作る**
**③以下を貼り付ける**

“`py
from flask import Flask
app = Flask(__name__)

@app.route(‘/’)
def hello_world():
return “Hello World!”

if __name__ == ‘__main__’:

元記事を表示

手順メモ:AWS Lambdaでzipファイルをアップロードするまでに必要なこと

# やりたいこと
– lambdaでapiを叩きたい。
– python3でやるためには必要なライブラリをlambdaにzipでアップロードする

# 前提
– lambdaのランタイムはpython 3.7
– awsのlambdaの画面で関数の基本情報(関数名、ランタイム、アクセス権限)を作成しておく

# やり方
– [ ] アップロードするzipファイルを作成する
python3なので、仮想環境を作成する

“`shell:実行コマンド

$ python3 -m venv dev
$ . dev/bin/activate
$ mkdir upload
$ cd upload/
$ pip install –upgrade pip
$ pip install requests -t ./
$ ls -la
total 8
drwxr-xr-x 14 ~ 省略 ~ .
drwxr-xr-x 6 ~ 省略 ~ ..
drwxr-xr-x 3 ~ 省略 ~ bin
drwxr-xr-x 7 ~ 省略 ~ certifi
drwxr-xr-x 10 ~

元記事を表示

Flaskで自然言語処理を使ったWebアプリを作りherokuでデプロイした

# 説明
Flaskで英文を入れると時制を解析するWebアプリを作りました。

– 今回作ったもの: https://english-tense-analyzer.herokuapp.com/
– GitHub: https://github.com/mk668a/flask_nlp_app

# 環境
Python3がインストールされていることとGitHubで作成していることを前提に進めます。

# Flaskアプリケーションの作成
## ディレクトリ構成
“`
.
├── static
│ ├── js
│ │ └── main.js
│ └── css
│ └── style.css
├── templates
│ └── index.html
├── main.py
└── analyzer.py
“`

## htmlを作成
“` html:templates/index.html



元記事を表示

KerasのModel()クラス(functional API)でMNIST学習モデルを構築してみる

 ここまで`Sequential()`でDLモデルを構築してきましたが、この方法では学習スピードが辛くなってきましたし、軽量高速なモデルも作ってみたいと感じます。ですが、`Sequential()`ではモデルの複雑さと学習スピードの遅さがほぼイコール関係なので、扱うデータが大きく多量になるにつれて試行錯誤も時間がかかるようになります。そこで気になってくるのが主流となっている`Model()`クラスを使ったモデル構築です。
 これまで`Sequential()`でもそこそこいろいろなことを試してきましたし、そろそろ太刀打ちできるかな?ということで`Model()`クラスを使ったDLモデル構築に挑戦してみようと思います。

#そもそもModel()クラスって何?
 Kerasには機械学習モデル構築の方法として、2種類のクラスが用意されています。今まで使ってきた`Sequential()`クラスと、より高度なモデル構築が可能な`Model()`クラス(functional API)です。
 `Sequential()`クラスでは、ノード同士の入出力は上から順番に勝手にやってくれていました。と

元記事を表示

Pythonのクラス(Python学習メモ⑦)

# スコープと名前空間について
## 名前空間
ポイント

* 名前空間とは、名前とオブジェクトの対応付けの事
* 名前空間に紐づく属性は`obj.attribute`のようにドットでつなぐ

## スコープ
ポイント

* スコープとは、スコープある名前空間から直接アクセスできるプログラムテキスト上の範囲の事
* スコープの参照順は以下
* ローカル名の入ったスコープ
* ↑を取り囲む関数がある場合、その関数のスコープ
* 今いるモジュールのグローバルなスコープ
* 最も外側のスコープはビルトイン名の入ったスコープ
* global文が使用されていない限り、代入や削除は常に最も内側のスコープにおいて行われる
* global文を使うと、その変数がグローバルスコープにあることを示す
* nonlocal分は、その変数が現在のスコープを取り囲むスコープにあることを示す

“`Python:スコープと名前空間の例
def scope_test():
def do_local():
spam = “local spam”
de

元記事を表示

[TouchDesigner]pythonによるfor文のコツ

## はじめまして
趣味で映像や音楽を作ってるibuibu69と申します!
これまでmaxやprocessingを使って、VJとインストバンドなんかをやってました。。

・・・バンドも解散したし、TouchDesignerで新しいことをやりたい今日この頃。東京在住なので、だれか友達になってください。。

では、初アドベントカレンダー投稿、さっそくいきます。

## 本題
TouchDesignerで難しいことをやろうとするとき、pythonによる制御が必要不可欠になってきます。

がしかし、、、TouchDesignerユーザーでpythonに精通しまくりな方は、(私も含め)割と少ないのではないでしょうか。。。たぶん。。

そこで、よく使うであろう、for文によるオペレータの一括操作の際のコツを紹介します。

## たくさんのオペレーターを操作

例えば、「constant1,2…9のvalue0に1を代入する」はこうです。

“`python
for i in range(1,10):

元記事を表示

Slackbotでファイルの読み書きをしよう〜PythonでのBot開発〜

本記事では、Pythonで作成したSlackbotでファイルの読み書きにする処理について説明します。

Pythonでファイルの読み書きを制御する」にて実装した論理をSlackbotから呼び出せるようにしていきます。

ファイルを読み書きする基本論理は「Pythonでファイルの読み書きを制御する」で作成した以下のモジュールを使用します。

“`python
import codecs

class FileReadWrite:

# ファイルを読み込むメソッド
def file_read(self, path):
try:
# ファイルを開く
target_file = codecs.open(path, “r”, “utf_8”)
# ファイルを読み込む

元記事を表示

Pycairoでプラネタリウムの原盤をpdf形式で出力した話

 この記事は、2020年度卒のDMMグループ内定者が寄ってたかって記事を書くアドベントカレンダーに合わせて書いたものです。

[DMMグループ ’20卒内定者 Advent Calendar 2019](https://adventar.org/calendars/4156)

 もうちょっと、自己紹介とか書いたらよかったかなとか、下の内容を書いた後になって後悔しているのですが、プラネタリウム開発は自分の学生生活の中でかなり中核的な活動だったので、この記事に代えて自己紹介とさせていただきます。

# 0. 概要
 腐れ縁で所属いている某サークルが例年通り、高専祭でプラネタリウムを展示することなり、僕がその光源装置の製作に必要な恒星原盤を製作することになりました。(恒星原盤に出力する恒星の座標変換等一切は、弊学の超超超優秀な後輩くんがやってくれました。僕&本記事は、それを点描するだけです。)
 以前にも同様の原盤をJavaと[Gnuplot](http://www.gnuplot.info)で出力したことがあったのですが、なんだかビミョーな仕上がりになってしまいました。Gnuplotはグ

元記事を表示

初心者がUE4でルービックキューブ風なものを作って強化学習用のライブラリにしたい #6

前回に引き続き初心者がUE4を絡めたPythonライブラリを作れないか色々進めていく記事です(ほぼ自分のための備忘録としての面が強い・・)。

最初 : [#1](https://qiita.com/simonritchie/items/e8d84c2941b5bd2862f5)
前回 : [#5](https://qiita.com/simonritchie/items/f276a207da295e4ca581)

## Observation 回りの実装をしていく

観測値回りの制御の処理を書いていきます。
基本的にアクションの後に保存などの処理が必要になるのと、用意したSQLiteのテーブルにアクションのIDのカラムを用意してあるので、BPと繋げるところはアクションのモジュールに追加していきます(別途Observation用のPyActorを使ったモジュールを追加しようとも思いましたが、アクション関係との連携が無駄に煩雑になるのでアクションの方に追加していきます)。
ただし、BPが絡まないところの処理は別途汎用モジュールを用意してそちらに記載していきます。

BP_Actionに

元記事を表示

意外とややこしい Python のスコープを理解するためのクイズ14問

# イントロダクション

Python の変数のスコープ、参照のメカニズムは意外に直感的でない部分があり、初心者が罠にはまる可能性がある。しかし、一旦ルールを覚えればさほど複雑ではない。ここではその理解を助けるための問題を紹介する。

問題ごとに**何が出力されるか、もしくはエラーが出力されるかどうか**を答えよう。実行環境は Python 3 とする。難しい(というかマニアックな)問題は見出しが赤色になっている。

# 問題1

“`python
x = 1

if True:
x = 2

print(x)
“`

## 解答

“`
2
“`

Python では `if` 文はスコープを形成しない。そのため `if` 文内の `x` は外の `x` と同一の変数となる。

# 問題2

“`python
for i in range(10):
x = i * 2

print(i, x)
“`

## 解答

“`
9 18
“`

`if` と同様に `for` 文もスコープを形成しないので、

元記事を表示

素因数分解

wikiによると2から順に割っていき√numまで調べればよいらしいです。
Python3.6.8

“`Python3
#Python3
import math

def calc(num):
L =[1]
for i in range(2, int(math.sqrt(num))+1):
while num % i==0:
L.append(i)
num = num//i
if num !=1:
L.append(num)
print(L)

calc(100)
“`
“`
[1, 2, 2, 5, 5]
“`

C17++

“`C++
//C17++
#include
using namespace std;

void calc(int num){
vectorL(1, 1);
int n = sqrt(num);

for(int i=2;

元記事を表示

Progate Pythonやってみた

Pythonコードを業務で使い始めて早1年。

同僚にPythonを教える機会があるので、
一通り基礎を復習する気持ちで取り組んでみた。

Progateでクラスの定義、継承を学ぶことができた。
リストの内包、lambda関数とか便利な書き方があるのに、
それを教えてくれないのはちょっと不親切な気もしました。

ただPythonを一から学ぶ人にはよいと思います!
操作性もよく、間違ってる部分を見つけやすい。

ざっくりとした概要は下記のとおりです。

Python Ⅰ
和差積商、変数、論理和、論理積、条件分岐

Python Ⅱ
繰り返し分(for,while)、リスト、辞書型

Python Ⅲ
関数

Python Ⅳ
クラス
クラスの定義、インスタンス、クラスの中で関数を定義(インスタンスメソッド)

Python V
クラスの継承

元記事を表示

AtCoder 三井住友信託銀行プログラミングコンテスト2019 参戦記

# AtCoder 三井住友信託銀行プログラミングコンテスト2019 参戦記

## A – November 30

2分で突破. 書くだけ.

“`python
M1, D1 = map(int, input().split())
M2, D2 = map(int, input().split())

if D2 == 1:
print(1)
else:
print(0)
“`

## B – Tax Rate

4分半で突破. 整数にならなかった場合をどうすればいいかわからんなあと適当に出したのに AC だった. ふう.

“`python
N = int(input())

X = N / 1.08
if int(X) * 108 // 100 == N:
print(int(X))
elif int(X + 1) * 108 // 100 == N:
print(int(X + 1))
else:
print(‘:(‘)
“`

## C – 100 to 105

7分半で突破. WA1. 最近の ABC のC問題より難しいな

元記事を表示

初心者)備忘録)スクレイピングとCSVへの出力

###準備
[こちらの記事](https://qiita.com/hoger/items/89131f5e0bef7cd21fa6)を参考にスレイピング用のコードを完成させる

###ソースコード
“`Python
import urllib.request
import urllib.error
from bs4 import BeautifulSoup
import csv
import numpy

l_cap_name = []

url = “https://scrapethissite.com/pages/simple/”
headers = {“User-Agent”: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36’
}
request = urllib.request.Request(url=url, headers=headers)

try:
resp

元記事を表示

gmusicapiの認証サンプル

完全に自分用の技術メモ(´・ω・`)

[gmusicapi](https://unofficial-google-music-api.readthedocs.io/en/latest/)はPythonからGoogle Play Musicを操作するGoogle非公認のライブラリです。Google Play Musicを操作するにあたっては認証が不可欠なのですが、その認証APIがやや複雑というか、少なくとも自分は時間を溶かしたので、サンプルを供養がてらQiitaに残しておきたいと思います。__ちなみに稼働を確認した環境については、Pythonのバージョンは3.7、gmusicapiのバージョンは12.1.1になります。__

“`python
import gmusicapi

# 前提: このファイルは初回起動時には存在しない。
CREDENTIAL_FILE = ‘/path/to/mobileclient.cred’

api = gmusicapi.Mobileclient()
if not os.path.exists(CREDENTIAL_FILE):
api.

元記事を表示

OTHERカテゴリの最新記事