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

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

DialogflowをPythonから使ってみた

# 注意事項
– 本記事は2019/11時点の情報です
– もしかすると抜けている部分があるかもしれません

# やりたいこと
Python3.7からDialogflowにアクセスし、渡した文字列の解析をさせたい。

# なぜ本記事を書いたか
– 日本語での情報が少ない
– 公式ドキュメントがわかりにくい
– 今後のために備忘録

# 手順
## 1.事前準備
必要なパッケージをpipでインストール

“`python
pip install dialogflow
“`
## 2.基本となるプログラム

“`python
import os
import dialogflow
from google.api_core.exceptions import InvalidArgument

os.environ[“GOOGLE_APPLICATION_CREDENTIALS”] = ‘private_key.json’

DIALOGFLOW_PROJECT_ID = ‘プロジェクトID’
DIALOGFLOW_LANGUAGE_CODE = ‘ja’
SESSION_ID = ‘m

元記事を表示

[Python3] 関数のコードオブジェクトを書き換える

# はじめに

Pythonでは、メソッドやモジュール内の関数を上書きするのは比較的簡単です。Qiitaにもいくつか記事があります。

– [Python でライブラリ関数のオーバーライド](https://qiita.com/macinjoke/items/797da46d51a17ae8d89e)
– [Pythonでライブラリの処理を上書きする](https://qiita.com/Asayu123/items/8d8da9911dd0c3296a81)

これらの手法は、以下のように属性アクセスをいじっているだけです。
オブジェクトとしての関数を弄っているわけではありません。

“`python
class SomeClass:
def original_method(self):
print(‘call original_method’)

def new_method(self):
print(‘call new_method’)

some_instance1 = SomeClass()
some_instance2 = SomeClas

元記事を表示

【PyQt】QtChartで複数軸のグラフを表示

# はじめに
今までPythonでのグラフ表示・作成には[pyqtgraph](https://github.com/pyqtgraph/pyqtgraph)を使用していました。しかし、ここ3年くらいアップデートもされていないようなので、どうせならQtがサポートしているものに乗り換えたい、、、ということで、[QtChart](https://doc.qt.io/qt-5/qtcharts-index.html)を使ってみました。

# 環境
+ Windows 10
+ Python 3.7.3
+ PyQt5 5.13.1
+ PyQtChart 5.13.1

# インストール
`$ pip install PyQt5`

`$ pip install PyQtChart`

# 作成したサンプル
![qchart_sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404447/2cb9f42d-4d44-b16b-5e44-41aa649d4bcd.png)

X軸が時間、Y軸が電流・

元記事を表示

Pythonの例外処理(Python学習メモ⑥)

## 例外の処理
ポイント

* まずtryを実行し、例外が発生されなければそのまま終了
* 例外が発生した時点でtry節の残りがスキップされ、exceptで該当の型が定義されていればそのexcept節が実行される
* 例外の型がexceptで定義した名前と一致しない場合、例外はさらに外側にあるtry文に渡される
* ハンドラが見つからない場合は例外のメッセージを表示し、実行終了する
* except節は例外名を省略するとき、全部の例外を対象にすることができる(あまり良い方法ではない)

“`python
import sys

try:
f = open(‘myfile.txt’)
s = f.readline()
except OSError as err:
print(“OS error: {0}”.format(err))
except ValueError:
print(“データが整数に変換できません。”)
except:
print(“予期せぬエラー: “, sys.exc_info()[0])
raise # 呼び出し元で

元記事を表示

python個人メモ

# はじめに
Pythonはほとんど覚えていない!
しかし、度々使用する必要があり、同じ事を何度も調べている気がするので、今後は備忘録を残そうと思います。
調べるごとに追加していこうと思います。

個人メモなため役に立たないかもしれませんが、よかったら使ってみてください。

# 型変換

“`python
test_str = ‘100’
int(test_str)
“`

# print()で改行なし

“`python
print(‘text’, end=”)
“`

# PATHの生成
“`python
# add path
path = ‘./’
path = os.path.join(path, ‘dir’)
# generate path
path = [‘./’, ‘dir’]
path = os.path.join(*path_list)
“`

# math
## インポート
“`python
import math
from math import * ## math.をつける必要がなくなる
“`

## 数式
“`python
math.sin

元記事を表示

Pythonで辞書リストの指定インデックスまでの特定キーの値を取得する

わかりやすいタイトルが書けなかったのですが…

“`
li = [
{‘name’: ‘col_a’, ‘length’: 10},
{‘name’: ‘col_b’, ‘length’: 8},
{‘name’: ‘col_c’, ‘length’: 6},
{‘name’: ‘col_d’, ‘length’: 4},
{‘name’: ‘col_e’, ‘length’: 2}
]
“`
とかで3番目の項目までの長さの合計が欲しい!

ってときは

“`
sum([d[‘length’] for d in li[:3]])
“`

で取れる。

“`
for idx in range(len(li)):
print(sum(d.get(‘length’, 0) for d in li[:i]]))
“`

みたいな。

開始要素が必要な場合はrange内で調整可能です。

みんな大好き(?)固定長ファイルの対応などに…

元記事を表示

OpenCVでリアルタイム顔検知を試してみる

 OpenCVは画像処理用のライブラリですが、機械学習の機能も持っています。特に有名なのがHaar-cascadeを使った顔検知で、学習機と検出器、両方の機能が用意されています。
 検出器は自作することも可能とのことですが、デフォルトでもいくつか用意されているので今回はそれを使って顔検知を試みてみます。

#まずは静止画
 今回の目標は、リアルタイムでの顔検知ですが、まずは公式のチュートリアルに沿って静止画の顔検知を試みてみます。

> [Haar Cascadesを使った顔検出](http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html#)

 顔の写真ですが、公式に載っているもののオリジナルが見つからなかったので、今回もレナさんに登場していただきます。Lenna.pngという名前で保存してください。

![Lenna.png](https://qiita-image-store.s3

元記事を表示

Pythonで入出力(Python学習メモ⑤)

## 出力フォーマット
ポイント

* 値を書きだす方法(代表的なもの)
* 対話モードで式だけ入力
* print()
* write() ※標準出力はsys.stdoutとして参照できる
* 出力のフォーマット方法
* 文字列スライシングや連結操作を利用
* str.formatメソッドを利用
* stringのTemplateクラスを利用
* 値を文字列に変換する方法
* repr()関数
* str()関数
* str()は人間に読みやすい表現で返す
* repr()はインタープリタが読める表現を生成

“`python
s = ‘Hello, world.’
print(str(s))
# Hello, world.
print(repr(s))
# ‘Hello, world.’
print(str(1/7))
# 0.14285714285714285

x = 10 * 3.25
y = 200 * 200
s = ‘The value of x is ‘ + repr(x) + ‘, and y is

元記事を表示

CentOS7上のpyenvで作った環境にpython3.8.0をインストールした

# はじめに

pyenvを使う機会があったので、ついでにpython3.8(現時点で最新)をインストールしてみました。
その際の、記録です。
pyenvは簡単に言うと、OSにインストールされているpythonと干渉せずに、別バージョンのpythonをインストール・実行できるツールです。
この記事は、2019年11月時点で作業記録です。

## 環境
– CentOS Linux release 7.6.1810
– git version 2.20.1
– pyenv 3.7.5
– python 3.8(pyenv環境にインストールするバージョン)
– python 2.7.5(OSにインストールされているバージョン)
– python3 3.6.8(python3としてインストールされているバージョン)

※gitは、pyenvのインストールに使用しているだけです。

## pyenv で環境作成

python 3.8 は、pyenvで作った環境にインストールします。
これにより、OSにインストールしているpythonと別バージョンのpython環境を用意できます。
pyenv

元記事を表示

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

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

最初 : [#1](https://qiita.com/simonritchie/items/e8d84c2941b5bd2862f5)
前回 : [#3](https://qiita.com/simonritchie/items/97d20347424e7c08cddc)

# Pythonスクリプトでのimportなどはできるのか試してみる

PyActorのブループリントにていずれかのPythonモジュールを指定するわけですが、その際に他のScriptフォルダー以下のPythonモジュールをimportできるのか試してみました。
ue.logなどでコンソール出力してみた感じ、どうやらPyActorのブループリントで指定したもののみ実行されるようです。
他のモジュールのimport自体はエラーが発生しないようなのですが、そのモジュールで追加してある関数などを呼び出すとエラーになってしまいます。
pipでインストールしてあるものは問題なく使え

元記事を表示

Python3ではじめるシステムトレード:為替レートの予測(翻訳)

為替レートの予測についての論文の冒頭の部分を翻訳していきます。徐々に数を増やいしていきます。

# [Empirical exchange rate models of the seventies](https://scholar.harvard.edu/files/rogoff/files/51_jie1983.pdf)
Do they fit out of sample?
Richard A. Meese
Kenneth Rogoff
Journal of International Economics 14(1983) 3-24

## 70年代の為替レートモデルの実証:アウトオブサンプルで適合は可能か?

 本稿はさまざまな構造、時系列為替レートモデルをアウトオブサンプルでの予測の正確性を用いて比較する。対ドルに対するポンド、マルク、円、実効為替レートの1-12か月先のレートをランダムウォークモデルとその他のモデルを用いて予測した。ここで検討する構造モデルはフレキシブルプライスマネタリーモデル(Frankel-Bilson)、スティッキープライスマネタリーモデル(Dornbus

元記事を表示

Pythonで競技プログラミングする際の入力チートシート

## はじめに
Pythonで競技プログラミングを始めたので、入力部分の実装時間を短縮するための入力のテンプレートを作成しました。自分用の備忘録のようなものです。

## 環境
Python 3.5.x(AtCoderで動作したのを確認)

## 本編

### 基本となる入力用のクラス
“`python

class Scan():

def intarr(self):
line = input()
array = line.split(‘ ‘)
num_array = [int(n) for n in array]
return num_array

def strarr(self):
line = input()
return line.split(‘ ‘)
“`
### 入力する行数が決まっている場合(整数)
“`python
def main():
sc = Scan()
n = sc.intarr()
print(n)

# 入力例

元記事を表示

Python で Microsoft Azure の FaceAPI とPCカメラをリアルタイム接続

# 福岡で開催された学生ハッカソンにて発表した作品です。

## 概要

– PCのカメラに映った映像をコマ送りでFaceAPIに送信
– 判別結果とともにカメラの映像を出力するものとなっています。
– 判別は性別、年齢、感情分析の結果を反映させています。
– リアルタイムといいつつ、while文でその時その時の映像を
写真として切り取っているため、コマ送りの出力結果となりました。
– 作品と言っておいて、僭越ですがこちらをかなり参考にし、
ミックスさせたものとなっています。

– DATUM STUDIO さんの[Azure Computer Vision APIとFace APIをPythonから利用する][DATUM STUDIO]
– qiita内の記事[Pythonで顔認識を爆速で自分のPCで実験してみる][qiita openCV]

## ソースコード
“`python:FaceApi.ipynb
write_file_name = ‘./tmp.jpg’

import http.client, urllib.request, urll

元記事を表示

CNNを用いた画像認識 馬と鹿

# はじめに
初めての機械学習を行う際に、画像認識に興味があり、やってみようと思ったのですが、どういったアプローチにしようか迷っていました。
そこで、Aidemyの「CNNを用いた画像認識」というコースがあったので、それを受講し、CNNをやることにしました。

最初に考えたのが、競馬が好きなので競走馬の分類。
【競走馬 = 騎手が乗っている馬】として考えて、競争馬でも裸馬でも、【馬】として認識できるものを作ろうと考えました。

**分類は馬と鹿にしました。**
理由は、馬の画像収集の過程でCIFAR-10のデータセットも使わさせて頂いたのですが、CIFAR-10の中にdeer(鹿)があったからです。
動物として似ているものに挑戦してみたかったので、ちょうど良かったです。

####TODO
1. 画像収集
2. 収集画像の処理
3. 画像の水増し
4. 画像を学習/検証データにする
5. モデル構築と保存
6. 結果のグラフ化
7. 別の画像でテスト

##画像収集
画像収集には、以下を利用しました。

– Google Images Download
– bing_image_dow

元記事を表示

GitHub Actionsで一定間隔ごとにAtCoderのレーティングのグラフを撮ってみた

## はじめに
先日AtCoderを始めた[@wawawatataru](https://twitter.com/wawawatataru)と申します。
レートはまだ茶色にすら到達していませんが楽しく参加しています。
![screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23369/2bb11d6c-411d-3e5e-aec2-64b305d51920.png)
と、AtCoder参加者の方には上図のようなレーティングの画像をTwitterなどで投稿している方も多いと思います。

今回はこの作業を今後やらなくてもいいように自動化したいと考え以下の対応をおこないました。

* GitHub Actionsを利用し、一定間隔ごとにAtCoderのレーティング画像を取得
* GitHub Pagesで上記の画像をOGPに設定したページを作成
* OGPを設定したページのURLをTwitterに投稿し固定ツイートにする

上記対応を行うと、下のツイートのようにOGPが自動で更新される(はず)

元記事を表示

Python3で国会議事録検索APIを叩く

国会議事録APIを叩く機会があって少し詰まったのでメモ代わりに書いておきます。
環境構築

“`
> pip install pipenv
> pipenv –python 3
> pipenv install requests
“`

指定した日付から現在までの特定発言者の議事録を取得します。

“`collect_data.py
import datetime
import urllib.parse
import requests

if __name__==’__main__’:
url = ‘http://kokkai.ndl.go.jp/api/1.0/speech?’
year, month, day = map(int, input().split())
speaker = input()
today = datetime.date.today()
date = datetime.date(year, month, day)
f = open(‘text.txt’, ‘w’)
while True:

元記事を表示

【Python】無名関数 Lambdaを使ったリストの便利なソート方法

#課題

リストをソートするとき”sorted関数”を使用して並び替えをしているのがオーソドックスな方法です。課題としてsorted関数を使用するとき、デフォルトの状態でソートを行うと文字順にソートされます。

文字列に含まれている数字、文字数など凝ったソートをする場合にはどうしたらいいか?
そういった凝ったソートを行うときなどに、keyにlambdaの条件を設定することで複雑なソートも可能になります。

はじめは無名関数Lambdaについて説明しますんで、知っている方はスキップを~

##無名関数 Lambda について

通常は関数を定義するときに名前を付けなければなりません(当たり前ですが⋯)
関数は多くの行を要する処理を繰り返し使用する際に便利です。

通常、関数を定義する際には以下の文法で記述します。

“`python:
def func(引数):
return 戻り値
“`

引数は入力したい値、戻り値は出力したい値と思って差し支えありません。

試しに関数を定義して使用してみると

“`python:func.py
#二次関数を定義
def func(

元記事を表示

Pythonのモジュール(Python学習メモ④)

## Pythonのモジュールについて
ポイント

* モジュール=Pythonの定義や文が入ったファイル
* ファイル名は`*.py`
* モジュールの中では、グローバル変数`__name__`の値としてモジュール名が設定されている

“`python:sample_module.py
def func1(n):
return n

def func2(n):
return n

“`
“`python:Pythonのインタープリタにて
>>> import sample_module
>>> sample_module.func1(‘kawauso’)
‘kawauso’
“`

## モジュールのimportについて
ポイント

* モジュールには関数定義の他実行可能な文を入れることもできる
* これらの文はimport時に実行されるため初期化として使う
* モジュールはそれぞれがプライベートなシンボル表を持つため、呼び出し側との名前の衝突を気にする必要はない
* モジュール内のグローバル変数にアクセスするには、modulename.itemnameの形

元記事を表示

ダブルイコールの使い方 忘備録

今思うとなんでこんなので躓いたのか馬鹿らしくなるが自分の経験の少なさから手間取ってしまった問題について。

ダブルイコールを使ってTrue Falseを if文で判断しようとした時、
3行目のような書き方をしてしまった。
これでは lists == True で計算されてしまうためFalseが返ってくる。
よって()を使うことにより解決した。

“`list.py
lists = [“a”,”b”,”c”]
print(“a” in lists) >>> True
print(“a” in lists == True) >>> False
print((“a” in lists) == True) >>> True
“`

元記事を表示

Ansible Towerで追加したAnsibleモジュールを動かす方法

# Ansible Towerとは
AnsibleをWeb GUIで実行できるRed Hatの製品です。
動作部分では同じくAnsible Enginが動いていますが、サーバーの中に入ってAnsibleを動かすのとは少し勝手が違いました。
Ansibleをインストールすると使える標準モジュールではなく、追加で入れたモジュールを動かす為にどうしたら・・・となったのでメモ。
環境は以下です。

* RHEL: 7.7
* Ansible Tower: 3.5.3
* Ansible version: 2.8.2
* Python: 2.7.5 & 3.6.8

# Ansible モジュールの追加について
標準のAnsibleでモジュールを追加するお作法については[公式の手順](https://docs.ansible.com/ansible/latest/dev_guide/developing_locally.html
)ですんなりいきます。
今回ハマったのは、サーバーの中に入ってAnsibleを実行すると上手くいくけど、Towerからじゃうまくいかない。。
他のエラーも併発したのでは

元記事を表示

OTHERカテゴリの最新記事