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

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

Pythonで最小二乗法

#概要
####最小二乗法
最小二乗法は、誤差を伴う測定値の処理において、その誤差の二乗の和を最小にすることで、関係式を求める方法です。

####プログラムについて
今回作成したプログラムは、予め用意されたデータ`x` `y`をリストにし、そのデータから行列`S` `T`を求め、係数`a`を導く処理となります。また、求めたい多項式の次数を`m`と置いています。
本プログラムは、データ量を変更しても融通が利くような処理を行っています。

#プログラム
“`LeastSquares.py
# -*- coding: utf-8 -*-
#!/usr/bin/env python3

import numpy as np

X_data = [10, 20, 50, 70, 100]
Y_data = [9.3, 9.8, 10.9, 11.9, 13.1]
m = 1

def ST_list(power):
S, T = 0, 0
for i, j in zip(X_data,Y_data):
S += i**power
T += i*

元記事を表示

PythonでNewsAPIから世界54ヵ国のニュースヘッドラインを見る

##[NewsAPI](https://newsapi.org/) とは
世界中のトップニュースをJSON形式で取得出来るAPIです。

そこで今回はクリック1つで世界中のニュースヘッドラインをカテゴリ別に見る事が出来るリストを作ってみました。
以下の様にbusiness、technologyとカテゴリ別に世界のニュースをリストします。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348536/ca2ab987-9df5-2f9a-bb05-5a1357f98095.png)

###取得方法
先ず最初にAPIキーを取得する必要があります。
NewsAPIの仕様と使用方法は[Get started](https://newsapi.org/docs/get-started)を参照して下さい。

1.スクレイピング
基本的なRequestsを使う方法

“`python
import requests
import json

url = (‘https://newsapi.org/v

元記事を表示

二分探索木を理解するために

# 二分探索木を理解するために
## 二分探索木とは
探索を目的としたデータ構造である。

各ノード持つデータに制約を持たせる(親子間の大小関係)ことで、平均演算時間が$O(\log n)$となり、線形探索よりも高速な探索が可能となる。

二分木の一種であるため、二分木のデータ構造をもつ。

## 目的
* 二分探索木を学ぶことで、データ構造とアルゴリズムに対する理解を深めたい。
* 単に二分探索を実装するだけではなく背景になっているデータ構造の考え方を理解する。

## 内容
* 下記項目について、リンク先の記事で解説する。
* 二分探索木にとりかかる前に二分木データ構造について学んだ。
* データ構造の考え方に馴染むために、一般木についても学んだ。
* 二分探索木を実装し、データ構造と解決できる問題について学んだ。

* [[入門]二分木を理解するために解説しながら自力実装してみた](https://qiita.com/tagtagtag/items/c5c460633e1ac864937a)
* [[入門]一般木入門 工事中](https://qiita.com/t

元記事を表示

Windowsでmatplotlibをインストールしようとするとエラーが出るとき

# 環境
Windows 10 64bit
公式から落としたWindows x86-64 MSI installerでインストールした Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32 を利用

# 状況
py -m pip install matplotlibすると、
__error: Microsoft Visual C++ 14.0 is required__ というエラーが出る。
VC++をインストールしたら、 __cannot open include file ‘ft2build.h’ no such file or directory__ というエラーに変わるが依然としてインストールできない。

# 対処法
https://stackoverflow.com/questions/58693012/installing-matplotlib-on-windows-error-cannot-open-include-file-ft2bui

元記事を表示

配列をインスタンス変数として動的に利用したい

##作業環境
Windows 10
PyCharm

## コード

“`
class ClassPosition():
def __init__(self, xx, yy, rr):
self.x = xx
self.y = yy
self.r = rr

class ClassTest():
def __init__(self):
self.arr = []

test = ClassTest()
for i in [0,1,2,3]:
test.arr.append(ClassPosition(i, i + 1 , i + 2))
print(test.arr[i].x, test.arr[i].y, test.arr[i].r)
“`

## 実行結果

“`
0 1 2
1 2 3
2 3 4
3 4 5
“`

##あとがき
 pandasのdataframeで取得したデータを整理して利用する場合に、このように配列をインスタンス変数として動的に利用できたらと思ったらこ

元記事を表示

python インスタンス変数でDictionaryとかListとかのサンプル

## python クラス内のインスタンス変数で配列とかDictionaryを宣言するサンプル

##作業環境
Windows 10
PyCharm

## コード
急いでいるのでコードのみメモ。

“`
class ClassTest():
def __init__(self):
self.t: Dict = {‘東京’:900, ‘横浜’:300, ‘大阪’:250, ‘名古屋’:200, ‘福岡’:150}
self.u = dict(a=1, b=2, c=3)
self.v: List[int] = [[“はい”, 50, 100], [“いいえ”, 100, 100]]

def __del__(self):
pass # デストラクタ

test = ClassTest()
print(test.t[‘東京’])
print(test.u[‘a’])
print(test.v[0][0])
“`

## 実行結果

“`
900
1
はい
“`

##あとがき
 自分用のメモで

元記事を表示

Python Seleniumで汎用waitしたくない?

# はじめに

まぁ、業務システム(勤怠管理)でマウスぽちぽちが嫌だったんですよね。

# クローリングでよくある事

基本的に、人間がマウスでぽちぽちするシステムなので、機械が操作することは考えられていない。そこでまさかまだ見えてもいないボタンを押すことなんてないよねって前提があったりするので、人に合わせて動かすことを考えると、きちんと押せるようになったらとか入力できるようになったら何かをするようなタイミングの制御が必要となります。

seleniumには当然そのような仕組みが用意されています。

[document:waits](https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.wait.html?highlight=wait#selenium.webdriver.support.wait)、[Waits](https://selenium-python.readthedocs.io/waits.html)、[待機(上記訳)](https://

元記事を表示

【メモ】Seaborn のhueに数値データに変換可能なものをいれるとAttributeErrorになる

# 環境
seaborn==0.9.0

# 問題

seaborn のlineplot でhueに数値データに変換可能なものをいれると`AttributeError: ‘str’ object has no attribute ‘view’`となる

# 解決策
paletteでcolorを陽に指定すればよい(https://github.com/mwaskom/seaborn/issues/1515)
下の方法は10色までしか対応していないと思われるので、それ以上の色を使うなら別途paletteを指定する必要はある。(参考:https://seaborn.pydata.org/tutorial/color_palettes.html)

“`python3
import pandas as pd
test_df = pd.DataFrame(
[{“a”: 0.0, “b”: 1.0, “c”: “1”},
{“a”: 0.0, “b”: 1.0, “c”: “2”}]
)
num_colors = len(test_df[“c”].unique())
current_pale

元記事を表示

Flask で API

Flask で API を作ってみたかったので試してみました。

# 環境

“`bash
$ cat /etc/os-release
NAME=”Ubuntu”
VERSION=”18.04.3 LTS (Bionic Beaver)”
“`

# ディレクトリ用意

“`bash
$ cd ~
$ mkdir python/api
$ cd python/api
“`

# プログラム作成

“`bash
$ vi app.py
“`

“`python
from flask import Flask, jsonify
app = Flask(__name__)

@app.route(‘/hello’)
def hello_world():
return jsonify({‘message’: ‘Hello world!’})
“`

# 仮想環境作成

“`bash
$ sudo apt install -y python3 python3-venv python3-pip python3-dev
$ python3 -m venv api
“`

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事