Python3関連のことを調べてみた2020年07月25日

Python3関連のことを調べてみた2020年07月25日

python3でGTFS Realtimeを読み込む

# python3 GTFS Realtime を読み込む

Googleのpython用の[サンプルコード](https://developers.google.cn/transit/gtfs-realtime/examples/python-sample?hl=ja)が手元のpython3の環境で動かなかったので、urllibの部分をアップデートしたものです。

## 環境構築
GTFS Realtimeはプロトコルバッファ形式でデシリアライズされたバイナリデータです。
プロトコルバッファを何も知らずにデータを展開できるライブラリがあります。
コマンドプロンプトでご自身の環境に合わせて導入してください。
(anacondaにcondaコマンドで入れる方法があれば知りたいです。)

“`shell
# Using easy_install
easy_install –upgrade gtfs-realtime-bindings

# Using pip
pip install –upgrade gtfs-realtime-bindings
“`

## ソースコード

“`

元記事を表示

Pythonのunittest.Mockでスタブを作って単体テストする

# 概要
– 自作クラスに対して、`unittest.mock.MagicMock`を使ってモックを作成してテストする。

# サンプルコード(挨拶を返すプログラムとテストコード)

## (テストしたいファイル。ランダムで挨拶の語を選んで、挨拶文を返す)

“`
# greeting.py
import random

class Greeting():
def greeting_phrase(self, name):
grt = self.greeting_word()
result = f'{grt}! {name}.’
print(result)
return result

def greeting_word(self):
grt = [‘Hello’, ‘Bonjour’, ‘Konnichiwa’]
i = random.randint(0, len(grt) – 1)
return grt[i]

if __name__ == ‘__mai

元記事を表示

【高等学校学習指導要領 情報Ⅱ】教員研修用教材:重回帰分析とモデルの決定(python)

# はじめに
今回は文部科学省のページで公開されている情報Ⅰの教員研修用教材の「第3章 情報とデータサイエンス 前半」内の「重回帰分析とモデルの決定」についてみていきたいと思います。
「重回帰分析とモデルの決定」の前章ではExcelとPythonを使用して、データの整形・前処理・操作・欠損値と異常値の取扱いなどについて扱っていますが、この章からは「重回帰分析とモデルの決定」を行っていきます。
しかしRでの実装例しか書いていないので、pythonでの実装について考えていきたいと思います。

# 教材
[高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00742.html “高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省”)
[第3章 情報とデータサイエンス 前半 (PDF:8.9MB) PDF](https://www.mext.go.jp/content/20200702-mxt_jogai01-000007843_004.pdf “第3章 情報と

元記事を表示

OpenCV を使ってお絵かきアプリを作る方法

#0.最初に
今回作るものがどういう感じで動くのか見てみたい方は、[こちら](https://youtu.be/RH7_kFyjqTM)(youtubeの動画)からどうぞ。
#1.実装
“`opencv.py
import cv2
import numpy as np

drawing = False
color = (255,255,255)
ix,iy = 0,0

def nothing(x):
pass

def draw_circle(event,x,y,flags,param):
global ix,iy,drawing,color

b = cv2.getTrackbarPos(‘B’,’image’)
g = cv2.getTrackbarPos(‘G’,’image’)
r = cv2.getTrackbarPos(‘R’,’image’)
s = cv2.getTrackbarPos(‘Size’,’image’)
i = cv2.getTrackbarPos(switch,’image’)

if

元記事を表示

Python:クラスで多重継承

#Pythonで多重継承
多重継承するサンプルコードは以下の通り。

“`Python:samplePython.py
#
#   2020.07.25 ProOJI
#

# 人は話す
class Person(object):
def talk(self):
print(‘talk.’)

# 車は走る
class Car(object):
def run(self):
print(‘run.’)

# ロボットは飛ぶ
class PersonCarRobot(Person, Car):
def fly(self):
print(‘fly.’)

# インスタンス生成
person_car_robot = PersonCarRobot()
person_car_robot.talk()
person_car_robot.run()
person_car_robot.fly()

# 出力結果
# talk.
# run.
# fly.
“`
`class Person`と`class Car`を継承すると
`class PersonCarRobot`になります

元記事を表示

PulumiでAWSにWEBアプリの最小構成を構築する

# はじめに
Pulumiはプログラミング言語(現在サポートされているのは、JavaScript、TypeScript、python、go、C#)によりインフラをコード管理するためのツールです。

Pulumiを使ってpythonでAWSにWEBアプリを動かすための基本的な構成を構築してみて気づいたことなどを書いてみます。

pulumi環境構築事などについては下記のチュートリアルを参考にしてください
https://www.pulumi.com/docs/get-started/aws/

# 実行環境
python: 3.7.7
pulumi: 2.7.1
aws-cli: 1.18.102

# 構成について
### 構成図
スクリーンショット 2020-07-24 19.32.59.png

### 今回作

元記事を表示

Python でクラス作成してダックタイピングしてみた

#人間クラスと継承、車のクラスで判定

ダックテストというものがあるらしい。Wikipedia様の情報によりますと
“If it walks like a duck and quacks like a duck, it must be a duck”
「もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルに違いない」
という考え方のようです。ここから来たのがダックタイピング。

ダックタイピングは例えばRubyだとこんな感じとなります。
##Ruby でのダックタイピング

“`Ruby:sampleRuby.rb
# テスト
def test(foo)
puts foo.sound
end

# アヒルの鳴き声
class Duck
def sound
‘quack’
end
end
# 猫の鳴き声
class Cat
def sound
‘myaa’
end
end
# 実行
test(Duck.new)
test(Cat.new)
“`
出力は

“`Ruby:
# 出力結果
quack

元記事を表示

はじめてのPython3 ~はじめての変数編~

# はじめに
注意点などは[前回](https://qiita.com/kashun0410/items/4113051964d5a1cd0bb5)を参照してください。

## 変数に文字列を入れる
“`
# 3つの文章

print(“勇者は、荒野を歩いていた”)
print(“勇者は、モンスターと戦った”)
print(“勇者は、モンスターをたおした”)

“`
↓実行結果
—–
勇者は、荒野を歩いていた
勇者は、モンスターと戦った
勇者は、モンスターをたおした
—–

もし、「勇者」を「賢者」に修正する時にprint内の「勇者」を1つ1つ変えるのは手間がかかることがある。
そこで使うのが変数
変数を使うと変更する箇所が1つに纏められるといったメリットがある。

※変数にデータを入れることを代入という。

“`
player = “賢者” # 文字データを登録する場合はダブルクォーテーションで囲む

# 文字データが入った変数を表示、連結させるには以下のように記述する

print(player + “は、荒野を歩いていた”)
print(pl

元記事を表示

【python】空気抵抗を考慮した運動方程式の数値解析

Pythonを使って自由落下及びのシュミレーションをしてみようということでまとめました。
#運動方程式の差分化
運動方程式の差分化
$$
F=ma
$$
高校物理でもおなじみの運動方程式である.
大学においては,運動方程式は微分を使った式で書かれることが多く,
$$
F=m\frac{d^2x}{dx^2}
$$
となる.上式より,以下の式が導き出される.
$$
\begin{eqnarray}
\frac{dv(t)}{dt} &=& a(t) \\\
\frac{dx(t)}{dt} &=& v(t)
\end{eqnarray}
$$
よって,この連立微分方程式をプログラムに落とし込めばシュミレーションが可能となる.
ここで微分の定義を思い出してほしい
$$
\frac{df(x)}{dx}=\frac{f(x+\Delta x)-f(x)}{\Delta x}
$$
但し,$\Delta x → 0$なる極限を取る.この関係より
$$
\begin{eqnarray}
a(t) &=& \frac{v(t+\Delta t)-v(t)}{\Delta t} \\\
v(t) &

元記事を表示

PythonでNavier-Stokes方程式を解いてカルマン渦をシミュレーションする

# 概要
非圧縮性のナビエストークス方程式を解き、流体シミュレーションでカルマン渦を作成します。目標は、以下のようなカルマン渦の作成。ここに折りたたんでいるpythonコードを実行すると、2、 3分ほどで以下のようなカルマン渦シミュレーションができます。

pythonコード

“`python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import scipy.sparse
from sksparse.cholmod import cholesky

def ConvectionTerm(u, v, flag_v, u_old, v_old):
for i in range(1, num_vy-1):
for j in range(1, num_vx-1):
if flag_v[i, j] >= 1: continue

元記事を表示

Pythonでのスプレッドシート操作方法(gspreadの使い方)

Pythonでスプレッドシートを操作する時のライブラリ`gspread`でもよく使う操作をまとめました。
基本的には[公式サイト](https://gspread.readthedocs.io/ja/latest/)で記載されている内容です。

フォーマットを変更するメソッドもありますが、一旦データを扱う関連で記載しています。

## スプレッドシートを扱うための事前準備

“`python
# スプレッドシート連携するのに必要なライブラリをダウンロード
!pip install gspread
from google.colab import auth
from oauth2client.client import GoogleCredentials
import gspread

# 認証処理
auth.authenticate_user()
gc = gspread.authorize(GoogleCredentials.get_application_default())
“`

認証なしで実行したい場合は下記の記事を参考にしてください。
https://qiita.com

元記事を表示

Pygameを使ってフラクタルツリー(FractalTree)を作る方法

#0.はじめに
今回作るものがどういう感じで動くのか見てみたい、この記事を読むのが面倒くさい方は[こちら](https://youtu.be/hDjlbHu7V40)(Youtubeの動画)をご覧ください。
#1.実装
“`fractal_tree.py
import pygame
import math
import random

pygame.init()
win = pygame.display.set_mode((750, 650))

def drawTree(a, b, pos, deepness):
if deepness:
branch1 = random.randint(1,10)
branch2 = random.randint(1,10)
c = a + int(math.cos(math.radians(pos)) * deepness * branch1)
d = b + int(math.sin(math.radians(pos)) * deepness * branch2)
pygame

元記事を表示

【Windows10でDocker環境構築】python3 + nginx + Django + PostgreSQL

**Windows10でDockerを使用してDjango環境を構築**

##PCのスペック

| 項目 | スペック |
|:———–|:————|
| CPU | COREi7 |
| Memory | 8G |
| Storage | SSD |

今のところ、普通に動作し開発できています。

#Editor
VSCodeを使用
フォルダやファイル作成からTerminalとしてコマンド入力も行っています。

##準備
#####1.Dockerを使用するにはHpyer-Vを有効化する必要があるため、下記の対応が必要です。

– BIOSの設定変更:
 Intel VTをEnabledにする。
– OS:
 Windows10 Pro 64bit(Hpyer-Vを有効化できるのはWindows10 Proのみのため)

#####2.Python3.8.2(64bit版)のインストール
Pipenvを使用しますので、PCにPythonをインストールします。
***意図的に64bit版をダウンロードしないと、34bit版がダウンロードされま

元記事を表示

半導体デザイナ向け電卓スクリプトの紹介

# はじめに
みなさん、半導体設計時の計算機には何を使用しているでしょうか? Windows付属の電卓? まあまあ使いやすいのですが、筆者にとっては致命的な欠陥があります。それは64bitまでしかサポートしていないこと。
アプリケーションにもよりますが、ASICの設計では128bit越えの演算なども使用することもありますのでこれはいただけません。
そこで自分のニーズにあった電卓プログラムを作成してみましたので、その紹介をしたいと思います。

# 特徴
* Python3で書いたよ
* 結果は常に10進、16進、2進の3種類で表示するよ
* 桁数に制限はないよ。100桁でも1000桁でもコンピュータのリソースが許す限り対応するよ
* 入力は2進、10進、16進を受け付けるよ。任意の場所で’_’で区切っていいよ
* 結果が負の場合は16進、2進表示は2の補数として表示するよ
* Python 3がint型に対して持っている全ての演算をサポートするよ (演算部分はPythonに丸投げしているよ)
* 結果が小数を含む場合は、16進、2進表示は切り捨てて表示するよ
* カーソルキーやCtrl-

元記事を表示

[Python] Django の勉強してみました(Form 作成編)

# はじめに

先日、「*connpass – エンジニアをつなぐIT勉強会支援プラットフォーム*」で Django の*勉強会イベント*に参加してきました!!

そこから Django の面白さ・楽しさに気付いたので(昔から若干の興味も持ってました)独学で勉強してようやく Form の作成ができました。。。(これだけで一苦労です)

![Form 完成画像](https://raw.githubusercontent.com/taiseiyo/taiseiyo/master/figure/form.png)

![User 登録画面](https://raw.githubusercontent.com/taiseiyo/taiseiyo/master/figure/register.png)

コードの全ては[github](https://github.com/taiseiyo/heroku/)にありますので是非ご覧下さい

# Django について

DjangoとはPythonでWebアプリを開発する際に使うWebフレームワークです。勉強には[Python3 Django 超

元記事を表示

【高等学校学習指導要領 情報Ⅰ】教員研修用教材:MeCabによる形態素解析とWordCloudの作り方(python)

# はじめに
今回は文部科学省のページで公開されている情報Ⅰの教員研修用教材の「質的データの分析」についてみていきたいと思います。
ここでは、MeCabによる形態素解析とWordCloudをRで実装する例が書かれています。
今回はその内容をpythonに置き換えていきたいと思います。

# 教材
[高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1416756.htm “高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省”)
[第4章情報通信ネットワークとデータの活用・巻末 (PDF:10284KB) PDF](https://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2019/09/24/1416758_006_1.pdf “第4章情報通信ネットワークとデータの活用・巻末 (PDF:10284KB) “)

#環境
– ipython
– [Col

元記事を表示

Python dir関数でmoduleが定義している名前を列挙する

Pythonのドキュメントを眺めていたら開発時に使えそうなdir関数を見つけたのでログとして残しておきます。
[6. Modules — Python 3.8.5 documentation](https://docs.python.org/3.8/tutorial/modules.html#the-dir-function)

## 引数あり

下記のコマンドでsys moduleが定義している名前の一覧を列挙できます。

“`python
import sys
dir(sys)
[‘__displayhook__’, ‘__doc__’, ‘__excepthook__’, ‘__loader__’, ‘__name__’,
‘__package__’, ‘__stderr__’, ‘__stdin__’, ‘__stdout__’,
‘_clear_type_cache’, ‘_current_frames’, ‘_debugmallocstats’, ‘_getframe’,
‘_home’, ‘_mercurial’, ‘_xoptions’, ‘abiflags’,

元記事を表示

Selenium でテキストボックスに入力する vba python

#Selenium or seleniumbasicテキストボックスに文字列を入力する
##前提
・vbaの場合は seleniumbasic pythonの場合はselenium がインストールされている
・環境はWIndows

##ポイント
1, inputタグに入力する前に消す Clear ※これがないと追記されてしまう。
2, valueの値でSendKeysができてるか確認
3, 早すぎると入力できてるか不安と言われるので sleep や waitを使う(これは状況に応じて)

以上を考慮し、
inputタグ(テキストボックス)にidのある場合で関数を作成してみました。

##VBAの場合
引渡値 = ①クロームドライバー ②inputタグのid ③inputタグに入力する値
戻り値 = 5秒以内に 成功=true 失敗=false

“`vba:inputタグ(テキストボックス)に入力する
Public Function MoveTextBox(driver As ChromeDriver, id As String, atai As String) As Boole

元記事を表示

【時系列】時系列データ予測 予測手法マップ

##1.本記事作成の背景
業務都合により、生産量予測や売上予測を担当しており、”時系列”と名のつく専門書を読んでいるが、予測技術を俯瞰的に整理した資料がなかったため、自分なりに整理をしてみた。

##2.技術マップ
整理するにあたり、予測の難易度を設定するにあたり
・定常・非定常
・線形・非線形
の2つの軸があるため、それぞれに対して適用に適している技術をまとめた。
なお、難易度は以下のように高くなっている。
・定常 < 非定常
・線形 < 非線形

上記を踏まえ、表の形でまとめた。

|定常性/線形性|線形|非線形|
|:—|:—|:–|
|定常|-自己回帰(ARMA, ARIMA, SARIMA,ARCH,GARCH,ECM)
-状態空間(カルマンフィルタ)
-深層学習
-ベイジアン動的線形
| -カオス解析(ロジスティック写像など)
-状態空間
-深層学習
-確率的ボラティリティ |
|非定常| -自己回帰(ARIMA)
-状態空間(拡張カルマンフィルタ、非ガウス型フィルタ、粒子フィルタ)

元記事を表示

pygameでn秒おきに音が鳴るタイマーを実装する

# はじめに
pygameというライブラリを使って、
指定時間おきに音楽が再生されるコンソールアプリを開発します。

# 背景

適性試験CABの対策を目的に作成しました。
これは大量の問題を高速で処理していかなければならないものなので、
1問あたりに何秒の時間をかけるか?という、時間の管理は非常に大切です。

この試験の対策をするにあたって、
例えば、30秒経ったよ!1分経ったよ!いま1分30秒!…のように、
経過時間を音で知らせてくれるアプリがあれば、『効率的に試験を解く』練習がしやすいと考えました。

というわけで

**n秒おきにアラームが鳴るコンソールアプリケーションを開発します。**

# 開発環境

– Python 3.8.3
– pygame 1.9.6

# ソースコード

とりあえず動いたら(使えたら)いいやという観点から作っているので、
指摘されるべき点はたくさんあると思います。

例:While Trueが終わらない

再生する音楽(音)はこちらでお借りしました。
[魔王魂](https://maoudamashii.jokersounds.com/ar

元記事を表示

OTHERカテゴリの最新記事