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

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

年利30%超え!!!!!LightGBMを用いたトヨタ株自動売買シミュレーション

胡散臭いタイトルですがガチです。
(シミュレーション方法等間違っていたらコメントで教えてください)

# TL;DR
* LightGBMを用いて翌日のトヨタ株の終値が予測実行日の終値よりも、上がる or 下がるの二値分類を実施
* 上がる場合は株を買う、下がる場合は株を売る、という処理を毎日実施
* 2020/01/01~2020/12/31の実績を用いて売買のシミュレーションを行ったところ、年利30.2299%のプラスとなった

# 背景
仕事をサボりながらネットサーフィンをしていたら[面白そうな論文](https://irdb.nii.ac.jp/00926/0001748489)を発見。

当論文は2008年の発表で、予測モデルはSVMを使用している。

そこで、2008年以降に発表されたモデル(今回はLightGBM)で予測する実験を行う。

また、該当論文では、日経平均株価を予測対象としているが、今回は実際の取引を想定して、トヨタ自動車株式会社の株価を予測対象とする。

# 実験環境
* Google Colab

# 使用データ
* トヨタ自動車株式会社の株価
* 日

元記事を表示

inquirerpy で対話形インタフェースを作成してみよう

# inquirerpy について
[inquirerpy](https://pypi.org/project/inquirerpy/) は NodeJS での[inquirer.js](https://github.com/SBoudrias/Inquirer.js/) に触発されて開発された、会話形アプリケーションを作成するための拡張モジュールです。
類似のモジュールには [python-inquirer](https://github.com/magmax/python-inquirer) や、(PyInquirer https://github.com/CITGuru/PyInquirer) があります。
python-inquirer も [node.js](https://nodejs.org/ja/) の [inquirer.js](https://github.com/SBoudrias/Inquirer.js) に触発されてほぼ同じ実装をPython で実現できるように開発されました。しかし、残念ながら Windows では一部うまく動作しないことが確認されています

元記事を表示

【学習記録】入力の配列による保持 (paizaランク D 相当)

## 目次
– 問題文
– 書いたコード
– 解答例
– 学んだこと
– 振り返り

背伸びしてチャレンジしたらBランクの問題が解けた…!!
のですが、時間かけすぎて?ランク認定されず。
悔しいのと、基本的な型や関数の理解がボロボロ抜けてるいうことが分かったので、スキルチェックではなく解答例が見れるpaizaラーニングでもう少し基礎を固めます。

### 問題文
[詳細はコチラ](https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step4)

>整数 n と n 個の数 a_1, …, a_n が改行区切りで与えられます。与えられた a_1, …, a_n の中で最も大きい数を出力してください。

>入力値
n
a_1

a_n

>解答例
3
20
19
2

>出力例
20

要約すると、n個整数が与えられてその中から大きい値を出力せよ、という問題。

## 書いたコード
“` main.py
count = int(input())
ans = 0

while

元記事を表示

pandasで複数CSVファイルを読み込んで、結合する

“`ruby:python
#ゲットファイルリスト
path = ‘testData/’
files = os.listdir(path)
train_csv = list(filter(lambda x:(x[0:6] == ‘train_’ and x[-4:] == ‘.csv’),files))

#ゲットCSVデータ
data_list = []
for fileitem in train_csv:
tmp = pd.read_csv(path + fileitem,header=0)
data_list.append(tmp)

#結合
dataset = pd.concat(data_list,ignore_index = False)
“`

元記事を表示

Geopyで2点間の距離を測定する方法

GPS等の位置情報(緯度,経度)データを扱う中で、2つの位置情報間の距離を算出する方法をまとめました。

今回`python`の`Geopy`というライブラリを活用しています。特定の緯度経度同士の距離を出す方法は巷にあふれているのですが、複数の位置情報データを利用した算出方法を見つけられなかったため、記事を書くことにしました。お役に立てると幸いです。

私は`Google Colaboratory`を利用しています。PythonのVerは`Python 3.7.12`でした。

#Geopyのインストール方法
`Google colaboraory`はデフォルトで`Geopy`がインストールされていますので、以下手順はスキップしてください。

“`
pip install geopy
“`

#データフレームの準備
緯度経度情報のあるデータフレームを準備します。

“`
list = [[35.68142790460516, 139.76714625616972], [34.702714709994204, 135.49593986965132],[31.601693966235

元記事を表示

(保存版)Djangoチートシート

##はじめに
Django初学者でもすんなりと学べるようDjangoのインストールからアプリケーションの作成&認識まで解説します。
ってのは建前で、
本音は、いちいち入力するのが面倒なので一覧作っておきます
##Pythonのインストール
Pythonの公式ページのダウンロードページに行き、ダウンロードしてください。

https://www.python.org/downloads/

ターミナルやコマンドプロンプト上で

“`
$ python3 –version
Python 3.8.10
“`

等が表示されればインストールできています。
##Djangoのインストール
Macであればlinuxはもともと入っているので大丈夫だとは思いますが、WindowsではUbuntuを入れてlinuxコマンドを使えるようにしてください。

Ubuntuの入れ方は以下を参考に。

https://netwiz.jp/how-to-install-ubuntu-20-04-lts-on-windows10/

Djangoはpipコマンドでインストールします。
(仮想環境上でも同様)

元記事を表示

【相場分析】フィボナッチ・リトレースメントをPythonで可視化する

![Fibonacci.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688854/e59b5272-58db-7442-2457-05f686a2125c.png)

## 概要

記事タイトル通り、フィボナッチ・リトレースメントをPythonで計算してみます。

## フィボナッチ・リトーレスメントとは

株だろうが為替だろうが仮想通貨だろうが、価格チャートを一度でも見た事のある方はわかると思いますが、相場というのは必ず上下に「波」を描きながら進行していきます。

片時も休みなくどちらか一直線に傾き続けるという事はありません。

その金融商品を買った(売った)人は利確や損切りのために必ずどこかのタイミングで売ら(買わ)なければなりませんし、ある程度トレンドの勢いが弱まったタイミングで逆張りを仕掛けてくる勢力が常に居たりするからですね。

そういった動きの事を金融業界では

– [綾押し](https://www.daiwa.jp/glossary/YST0037.html)
– 相場が上昇傾

元記事を表示

PythonとGraphvizでグラフを描く_2

# 前回までのおさらい

前回ではコミックの登場人物を題材に有向グラフを描いてみました。
今回はこのグラフをより詳しくしていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186560/97946982-480e-4e60-1330-4b8eedfd436d.png)

## とりあえずノードを増やす

“`python:example2.py
import graphviz

dot = graphviz.Digraph(format= ‘png’,
comment = “今世は当主になります ~2話まで 人物相関図”)
dot.attr(‘node’, fontname = ‘Meiryo UI’)
dot.attr(‘edge’, fontname = ‘Meiryo UI’)

dot.node(‘L’, ‘ルーラック・ロンバルディ\n現当主’)

dot.node(‘F’, ‘フィレンティア・ロンバルディ\n主人公’)
dot.node(‘G’, ‘ギャラハン・ロ

元記事を表示

ABC190 C – Bowls and Dishes から学んだ

https://atcoder.jp/contests/abc190/tasks/abc190_c

![abc190_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/de758cc7-4009-1508-b710-58cb643bd3a4.png)
![abc190_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/8142cf19-9a85-896f-be4c-8f0b8f733a1b.png)
![abc190_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/4c516677-7f51-1fe4-8b4f-30cf5ababfc6.png)
![abc190_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

ABC213 C – Reorder Cards が解けて歓喜

https://atcoder.jp/contests/abc213/tasks/abc213_c

![abc213_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/0917c7b0-87ef-a4d8-3177-b3b3285db10e.png)
![abc213_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/096de8fb-14aa-4643-52c2-4ee481921d15.png)
![abc213_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/8cb27342-4954-d236-e10d-f037a8b36a73.png)
![abc213_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

Anacondaを使わずにFaceSwapを使う話

##初めに
初めてのQiitaの為、至らぬ点が多々あるとは思います

不完全だとは思いますが一旦公開します
markdownの記法にも乏しいため見づらいかもしれません
適当に修正していきます

#本題
[faceswap](https://github.com/deepfakes/faceswap)(https://github.com/deepfakes/faceswap)
を実行するにあたってAnacondaをインストールしてほしくなかったた
Anacondaを使わない方法を模索した

失敗について記述すると冗長になるので要点のみ纏めます

faceswapの詳細、Pythonのインストール等については他の方が書いているものが相当数あるので割愛

####環境
OS: Windows10
CPU: Ryzen 3700X
GPU: RTX3070
Python 3.8.6

####1,公式ドキュメントに従ってgit clone
“`console:cmd
git clone –depth 1 https://github.com/deepfakes/faceswap.gi

元記事を表示

タスクランナー Doit を使ってみよう

# はじめに
タスクランナー doit のドキュメントを抄訳したものです。
この資料を読んで、「少し試してみようか」と思ってもらえることを意識して章立ても少し変えています。

# doit について
![doit-logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182364/3698d4cb-fea9-b1db-3489-69bebf93f5d1.png)

doit は Python で実装された、タスクを簡単に定義することができ、プロジェクトに関連するすべてのタスクを、使いやすく、発見しやすい方法で統一して整理することができるツールです。

次のような特徴があります。

* doitは、ビルドツールであらゆる種類のタスクを実行する、というアイデアから生まれました。doitは、アドホックなタスクを簡単に定義できるシンプルなタスクランナーとして使用することができ、プロジェクトに関連するすべてのタスクを使いやすく、発見しやすい方法で整理することができます。

* doitは、ビルドツールのよう

元記事を表示

Python で Azure の リソースグループ単位で日々の使用料金を取得し、ローカルファイルに保存してみました

## 概要
Azure SDK for Python を利用して、テナントに紐付いているサブスクリプション毎にリソースグループ単位での日々の使用料金を取得し、そのデータをローカルファイルに保存するための Python プログラムです。

### 実行環境
macOS Big Sur 11.1
python 3.8.3

### 実行プログラム

“`python:GetCostDetail_to_LocalFile.py
import time
import json
import argparse
from tabulate import tabulate
from azure.identity import AzureCliCredential
from azure.mgmt.resource import SubscriptionClient
from azure.mgmt.costmanagement import CostManagementClient
from datetime import datetime
import pandas as pd

# 接

元記事を表示

【Python + Excel】テスト仕様書の選択肢を色付けして読みやすくする

# 概要

以下のようなテスト仕様書の各種選択肢を、

以下のように色付けし、1つ上のセルと比較して変更されている項目を分かりやすくしたい。

# Python バージョン

3.8.2

# 実行手順

1. venv などで仮想環境を構築
2. `pip install -r requirements.txt`
3. 対象とする Excel ファイルを開く
4. `python main.py`

# コード

## requirements.txt

“`
x

元記事を表示

2021年版 Pythonでword2vecの実装と利用

# Install

環境:Jupyter Lab
pip で簡単にインストールできます.

“`python
!pip install gensim
“`

# 利用

ここのtxtファイルは既にわかち書き済みのデータなので,ご注意ください.

昔のバージョンのsizeはvector_sizeに変更し,iterはepochsに変更しました.

“`python

# Ref: https://teratail.com/questions/131715
# Ref: https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Text8Corpus
# data training

# vector_size : ベクトルの次元,いわゆるニューロンの数
# min_count : 出現頻度が〇〇以下の語を無視
# window : 対象単語を中心とした前後の単語数
# epochs : epochs数

from gensim.models import word2vec

sente

元記事を表示

webdriver-manager で Chrome webdriver を自動更新する

#問題
* PythonでChrome webdriverを使っていると、Chrome本体とのバージョンの不整合で、頻繁にアップデートが必要になる。

“`
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 90
Current browser version is 94.0.4606.71 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
“`

* 面倒くさいので自動化したい。

#解決方法
* モジュール `webdriver-manager` を用いることで自動化できる。

##インストール
$ pip install webdriver-manager

#コードの改変
* 元のコードの例

“`python
import c

元記事を表示

Azure の使用料金を Teams の チャネル に POST してみました 【ResourceGroup-Monthly編】

## 概要
[この記事(Python で Azure の リソースグループ毎に日単位で使用料金 を取得してみました)](https://qiita.com/turupon/items/ab7b41694e6787a8004b) のPythonプログラムを Azure Functions に登録して自動実行させ、その結果を会社の情報共有ツールとして利用している Temas のチャネルに POST し、少しでもAzureの使用料金削減につながれば、、、、、、と。

### 実行環境
macOS Big Sur 11.1
python 3.8.3
Azure CLI 2.28.0
Azure Functions Core Tools 3.0.3785
Azure Function Runtime Version: 3.2.0.0

## 事前の準備

### 実行するプログラム用の ServicePrincipal の作成

[この記事](https://jpazureid.github.io/blog/azure-active-directory/azuread-clien

元記事を表示

フィボナッチ数列を行列を使ってO(log(n))で計算する

以下のような例題を解くためにフィボナッチ数列を高速で計算する方法はないかと探していたら[「行列累乗でフィボナッチ数列を計算する」](https://qiita.com/flour/items/9f8a20112f45f0ee5f71)という投稿が見つかりました。これを参考にしてPythonのプログラムを書いてみました。

**例題. フィボナッチ数列を$f(n)$としたとき$f(10^{14})$をmod 100007で求めよ**

これをループや再帰関数で求めるのはできないので以下の行列の累乗を使って求めるようにしました。
式はWikipediaの[フィボナッチ数](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0)にも載っています。

> $\large \begin{pmatrix} F_{n+1} & F_n \\\ F_n & F_{n-1} \end{pmatrix}
= \begin{pmatrix} 1 & 1\\\ 1 & 0 \e

元記事を表示

【Flaskエラー】TypeError: exceptions must derive from BaseExceptionが出た時

## 環境
Python 3.9.0
Flask 2.0.1

## エラーに詰まったのでメモ

Flaskで**flask run**すると下記のエラーが発生

“`
TypeError: exceptions must derive from BaseException
“`

エラーをみても例外処理がどうのこうの言われていて全く心当たりがなかった。

## 解決方法
“`
flask run –eager-loading
“`
本来は遅延読み込みに関する実行方法らしいがこれで本来のエラーが表示されるようになった。

## 原因
調べてみるとFlaskのバグらしいので次のバージョンでは修正される模様

元記事を表示

割り込み処理

#はじめに

pythonで赤外線センサの情報を受け取ってイベントを発火したいってなったときに出てきた割り込み処理。
なんのこっちゃ分らんかったから備忘録的に調べてみる。

##割り込み処理(割り込み)とポーリング

###割り込み
割り込み(わりこみ)とは、コンピュータがその周辺機器などから受け取る要求の一種である。現在の多くのCPUは、割り込みを処理するための機能を備えている。

###ポーリング
通信やソフトウェアにおいて、競合を回避したり、送受信の準備状況を判断したり、処理を同期したりするために、複数の機器やプログラムに対して順番に定期的に問い合わせを行い、一定の条件を満たした場合に送受信や処理を行う通信及び処理方式のことである。

##どっちでもセンサの情報受け取って処理できんじゃん

でもポーリングは駄目らしい
割り込み処理実装しろって言われた。
なんでー?

##割り込み処理の方がいい理由

###1.CPU資源の有効利用
周辺機器の速度はCPUの処理速度より格段に遅いため、周辺機器が処理を行っている間、CPUが

元記事を表示

OTHERカテゴリの最新記事