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

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

Python によるアービットラージ仮想通貨Bot作成 その1

#アービットラージとは

相場の差分を取る取引手法
価値が確認された時のみ取引を行う

特徴;将来の予測ではなく、現時点の相場間の差分を取るため”負けない”手法を作成できる。

特に差分が発生しやすい仮想通貨に関してその可能性について検証していく。

#基本情報の確認

仮想通貨の流通量:Volume
取引の際の約定可能性、変動性等の確認のために各仮想通貨の流通量を確認する
https://coinmarketcap.com/ja/

#取引所の選択
実際の取引所を決めるための取引量を確認する
先行して変動する取引所と、遅れて変動する取引所を抽出するのも一つの観点となる
ちなみに日本人の利用を制限している取引書があるので注意
(2020/2/11時点で、Binanceは日本人の利用を停止するとのアナウンスがあった)
https://coinmarketcap.com/ja/rankings/exchanges/

bkex.com : Trading fee: maker 0.15%; taker 0.2%.
bilaxy.com ; Trading fee:0.1% transa

元記事を表示

Kaggle COVID19 Global Forecasting

Kaggle で公開されているデータ・セットで日本の情報を得る方法です。

[COVID19 Global Forecasting (Week 2)](https://www.kaggle.com/c/covid19-global-forecasting-week-2)

データの読み込み

“`text
data = pd.read_csv(‘../input/covid19-global-forecasting-week-2/train.csv’)
“`

今までの日本の感染者数の表示 (3月25日で 1307 人)

“`text
data.loc[data[‘Country_Region’] == ‘Japan’]
“`

![kaggle_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/60f2c76b-5cae-ded3-557d-1a5d9cf6837d.png)

今後の感染者数の表示 (ある方が作成したモデルを使った場合)

“`text
test_dat

元記事を表示

Python、辞書型についてメモ

#python辞書型についてメモ

“`
dic = {“みかん”:2,”りんご”:10,”いちご”:2}
“`

keyを取り出す

“`
dic.keys()
“`

“`
dict_keys([‘みかん’, ‘りんご’, ‘いちご’, ‘メロン’])
“`

値を取り出す

“`
dic.values()
“`

“`
dict_values([2, 10, 2, 44])
“`

キーと値の両方を取り出す

“`
dict.items()
“`

“`
dict_items([(‘みかん’, 2), (‘りんご’, 10), (‘いちご’, 2), (‘メロン’, 44)])
“`

for文でキーと値の両方を取り出す

“`
for i,k in dic.items():
print(i,k)
“`

“`
みかん 2
りんご 10
いちご 2
メロン 44
“`

新たなキーと値を追加する。

“`
dic[‘ぶどう’] = 10
dic.items()
“`

“`
dict_items([(‘みかん’, 2), (‘りん

元記事を表示

【Selenium】リンクを新しいタブで開いて移動【Python/ChromeDriver】

#ブラウザ操作してますか?
毎日同じブラウザ操作してませんか?

そんなブラウザ操作はSeleniumに任せましょう!

ブラウザを触っているときにリンクをCtrlを押しながらクリックして新しいタブで開くことありませんか?
僕はとてもよくやりますw

そんな一連の流れになります。

#リンクを新しいタブで開いて移動

“`python:sample.py

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait

import platform

driver = webdriver.Chrome(“chromedriver.exe”) #chromedriver.exe読み込み

#
#
#該当ページまでの処理
#
#

#クリックする要素
e

元記事を表示

Kaggle ConnectX

次の課題に submit するまでの流れです。
[Connect X](https://www.kaggle.com/c/connectx)

次のページの通りに行いました。
[ConnectX Getting Started](https://www.kaggle.com/ajeffries/connectx-getting-started)

Kaggle の Notebook でコードを書き、コードをダウンロードして、
次のように、py に変換しました。

“`bash
jupyter nbconvert –to script kernel1290ab112b.ipynb
“`

“`py:kernel1290ab112b.py
#!/usr/bin/env python
# coding: utf-8

# In[1]:

# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python docke

元記事を表示

topic、projectID、サービスアカウントキーなどをexportせずに、GCP Pub/Subのtopicにメッセージをpublishする(python3)

env.pyで環境変数など設定すれば、コマンドでのexportを実施せずに済みますので、楽です!

ポイント:

*サービスアカウントキーファイル(jsonファイル)はenv.py、publish.pyと同じディレクトリに置いておくと、便利です!

*リクエストを Pub/Sub サーバーに送信する際に、
“`publisher = pubsub_v1.PublisherClient()
“`
を使わず、

“`publisher = pubsub_v1.publisher.Client.from_service_account_file(JSON_KEY)
“`
に変更すればokです!

“`env.py
# GCPサービスのプロジェクトID
GOOGLE_CLOUD_PROJECT = ‘[PROJECT_ID]’
# Cloud Pub/Subのトピック名
TOPIC = ‘[TOPIC_NAME]’
# サービスアカウントキーファイル(jsonファイル)の保存パース
JSON_KEY = ‘[PATH_TO_JSO

元記事を表示

(調整中)CentOS8とPython3とDjango3とMySQL8のセットアップメモ(pure python版)

※仕事場で確認するためにいったん投稿してます(ぉぃ
まだうまくいってないんだよね… encodingsのエラーが…

# はじめに
CentOS8を入れてみたかった。それはCentOS7のシステム側のpythonが2で、プレーンなpython環境にしようとすると、ケンカするんだよね。CentOS側のpythonが3になってAnaconda縛りから解放されるってだけでやって見る価値あるでしょってことでさくらのVPSの2台めを検証用に借りてしまった!Wow!

# 参考URL
サーバーワールド
https://www.server-world.info/query?os=CentOS_8&p=install
いままではここの内容ですら難しかったけど今なら大丈夫でしょ

# CentOS8
## サーバーの契約
わくわくするね。休日つぶしにぴったり。
いったんCentOS7を入れる必要があるみたい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94562/46c8d751-fcf3-

元記事を表示

pythonでLDAPにデータの追加取得をする

# はじめに
認証やツリー構造のデータの管理などでLDAPが使用されます。RDBと比べるとLDAPは使用される機会が少なく使用方法も異なるのでpythonでLDAPを操作する方法をまとめます。さらにLDAP認証のサンプルは色々なところで紹介されていますが、もっと簡単にするためシンプルな例を紹介します。

# 環境準備
## LDAPサーバ
LDAPサーバは、UbuntuやCentosにldapをインストールしてもできますがdockerイメージがあったため、そちらを使用します。

### dockerイメージのpull
dockerイメージは単純にpullするだけです。

“`

docker pull osixia/openldap
“`

### dockerイメージの起動
イメージの起動時にldapのパスワードとトップのドメイン、各ポートのマウントをしておきます。dockerネットワークを利用している場合は、ポートのマウントはせずにネットワークとIPアドレスの設定をします。

“`

docker run -p 389:389 -p 636:636 –env LDAP_D

元記事を表示

Kaggle Digit Recognizer

次の課題に submit するまでの流れです。
[Digit Recognizer](https://www.kaggle.com/c/digit-recognizer)

次のページを参考にしました。
[kaggle Digit Recognizer をKerasで試してみる](https://trueman-dev`eloper.blogspot.com/2019/07/kaggle-digit-recognizer-keras.html)

Kaggle の Notebook でコードを書き、コードをダウンロードして、
次のように、py に変換しました。

“`bash
jupyter nbconvert –to script kernel23614dc019.ipynb
“`

“`py:kernel23614dc019.py
#!/usr/bin/env python
# coding: utf-8

# In[1]:

# This Python 3 environment comes with many helpful analytics libraries

元記事を表示

Kivy-iOS メモ

#Kivyとは?
python3 でiOSアプリやandroidアプリなどのUIを記述可能なライブラリ

#Kivy導入時に参考にした情報をまとめておく。
###導入
– https://qiita.com/sobassy/items/b06e76cf23046a78ba05
– https://github.com/kivy/kivy-ios
– https://qiita.com/tea63/items/c318ac7a1c09a78acab0

###pathの繋げ方(エラー出た人だけ)
-https://qiita.com/yoshinbo/items/8eb71d8015291ac6a3bc

元記事を表示

【Python】Atomで競技プログラミング用の環境構築(input()使えます!)【Mac】

Atomで競プロに必須のPythonの標準入力
`input()`
が使用できる環境構築の情報がググってもあんまりなかった…
ので記事にしてみます!
たぶん全作業30分かかりません!超簡単!
ちなみにMacです。Windowでもできるかは不明!

#python3のインストール
[公式サイト](https://www.python.org/downloads/)からダウンロード
#Atomのインストール、初期設定
以下の記事が参考になりました!
[atom・pythonで競技プログラミングのテスト環境構築](https://qiita.com/crukky/items/73c1322f5929b1ca5834#%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99)
#その他やる事
ホームディレクトリ(同階層にはダウンロードとかデスクトップとかあるよ)
に「python」というフォルダを作ってそのフォルダ内に

– input.txt
– test.py

の2ファイルを作る。
これで準備完了。

イメージはこんな感じ↓
</p

元記事を表示

Python3 で 十字キーが入力された判定をとる方法

## はじめに
この記事を書いた直後に、
https://docs.python.org/ja/3/library/curses.html#constants
このページを見つけました。以下の記事はほぼほぼ虚無です。

## まえがき
自分用のメモです。愚直実装です。
やりたいことは十字キーなど特殊な文字が入力されたことを検知することです。

前提としてUnicode制御文字の知識があることが望ましいです。
[wikipedia](https://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E6%96%87%E5%AD%97)

## 詰まったところ
getchは入力を1文字ごとに取得します。しかし、矢印キーは3回文字分の入力がありました。 例えば上矢印は`27 91 65` とはいってきます。このままでは、矢印キーなどの特殊なキーを判定することができないばかりか、望まない入力を受け取ってしまいます。そこで、以下のように実装しました。

## ソース
getch 1文字の入力を受け取る関数
ord は文字をUnicodeに変換する関数、
chr

元記事を表示

【Python】AGC043A(問題読解力とDP)【AtCoder】

しっかり問題は読んで理解しよう!
難しい問題文に出会ってもすぐに諦めないで!

#[AGC043A](https://atcoder.jp/contests/agc043/tasks/agc043_a)
Difficulty:803
強敵!
でも以下のポイント2つをクリアすればこの問題はとける!
①問題読解力
②DP(動的計画法)

##①問題読解力
問題文の後半の「以下の操作」が頭に全く入ってこなかった!
ここでは「以下の操作」の解読をしていきます。
「以下の操作」の部分を問題より引用
>4つの整数r0,c0,r1,c1(1≤r0≤r1≤H,1≤c0≤c1≤W)を選ぶ。
r0≤r≤r1,c0≤c≤c1を満たす全てr,cについて、(r,c)の色を変更する。つまり、白色ならば黒色にし、黒色ならば白色にする。

???

諦めないで!
とりあえず具体例を考えよう!
ノートとペンを用意!
※競プロにノートとペンは必須です!
[【Python】ABC159D(高校数学nCr)【AtCoder】](https://qiita.com/rudorufu1981/items/f9f1e679606d

元記事を表示

5代血統表内に漢字の馬名が含まれるここ最近の競走馬を調べる【スクレイピング】

#はじめに
(以下、競馬用語を注釈無しで使用していきますのでご了承下さい。)

なんとなく5代血統表に漢字の馬名が入っている馬がどれくらいいるのか気になったので競馬データベースサイト[「JBISサーチ」](https://www.jbis.or.jp/index.html)のページをスクレイピングして調べてみました。

近年活躍した競走馬で、5代血統表内に漢字の馬名がある馬といえば[ゴールドシップ](https://www.jbis.or.jp/horse/0001104811/pedigree/)が一番有名でしょう。
![FireShot Capture 001 – 血統情報:5代血統表|ゴールドシップ|JBISサーチ(JBIS-Search) – www.jbis.or.jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253705/ff43ca2a-a8dc-b898-0dfa-69ffda89bbbf.png)
5代母が1959年生の「風玲」という馬です。

昔は競走馬名にカタカナ使用の制限が

元記事を表示

Kaggle Real or Not?

次の課題に submit するまでの流れです。
[Real or Not? NLP with Disaster Tweets](https://www.kaggle.com/c/nlp-getting-started)

次のページを参考にしました。
[NLP Getting Started Tutorial](https://www.kaggle.com/philculliton/nlp-getting-started-tutorial)

“`py:realornot01.py
#! /usr/bin/python
#
# realornot01.py
#
# Feb/24/2020
# ————————————————————————–
import sys
import numpy as np
import pandas as pd
from sklearn import feature_extraction, linear_model, model_selection,

元記事を表示

Python + Selenium(ChromeDriver)で「この接続ではプライバシーが保護されません」というエラーを無視する

主に開発環境などに対してSeleniumでChromeの動作を確認したい時に、テキトウに作った不正なSSLサーバー証明書を使用していると「この接続ではプライバシーが保護されません」というChromeのエラーが出て止まってしまうことがある。
これを無視する方法を記す。

## 解決方法

ChromeOptionsの「acceptInsecureCerts」を有効にする
これにより、不正なSSLサーバー証明書を利用していてもアクセスを許可するようになる。

参考:
https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/chrome/ChromeOptions.html

## 前提条件

・Windows 10
・Python 3.7.4
 ・pytest
・Selenium
・ChromeDriver (C:\selenium\chromedriver.exe)

## 実装例

“` python:test_webdriver.py
import pytest
import time
import j

元記事を表示

Pycharmでpipがエラーになる(pipが古いってエラー)

#背景
Pycharmのvenv環境でyamlをインストールしようとしたらエラーになった。

#状況
PycharmのTerminalにて

“`
pip install yaml
Collecting yaml
Could not find a version that satisfies the requirement yaml (from versions: )
No matching distribution found for yaml
You are using pip version 10.0.1, however version 20.0.2 is available.
You should consider upgrading via the ‘python -m pip install –upgrade pip’ command.
“`

#解決まで
言われたとおりに

“`
python -m pip install –upgrade pip
Requirement already up-to-date: pip in c:\pycharmproje

元記事を表示

Kaggle Predict Future Sales

次の課題に submit するまでの流れです。
[Predict Future Sales](https://www.kaggle.com/c/competitive-data-science-predict-future-sales/)

次のページを参考にしました。

[来月の商品の売上数を予測する〜Kaggle Predict Future Salesに挑む(その2)](https://yolo-kiyoshi.com/2019/03/23/post-1090/)

“`py:futuresales01.py
#! /usr/bin/python
#
# futuresales01.py
#
# Feb/23/2020
# ————————————————————————–
import sys
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# import seaborn as

元記事を表示

colaboratoryデフォルトで入っているライブラリバージョン一覧 メモ

pythonバージョン表示

“`python
import platform
print(“python ” + platform.python_version())
“`
ライブラリのバージョン表示

“`python

import pkg_resources
for dist in pkg_resources.working_set:
print(dist)
“`
#一覧
“`
python 3.6.9

zmq 0.0.0
zipp 3.1.0
zict 1.0.0
yellowbrick 0.9.1
xlwt 1.3.0
xlrd 1.1.0
xgboost 0.90
xarray 0.14.1
wrapt 1.11.2
wordcloud 1.5.0
widgetsnbextension 3.5.1
wheel 0.34.2
Werkzeug 1.0.0
webencodings 0.5.1
wcwidth 0.1.8
wasabi 0.6.0
vega-datasets 0.8.0
urllib3 1.24.3
uritemplate 3.0.1
umap

元記事を表示

Python、正規表現について

#正規表現についてよく使いそうなものをメモ。
・Mac
・python

<メモ内容>
① ”.”は 改行以外の任意の1文字(数字含む)
② matchは、先頭からマッチするかを判定する関数、マッチする場合はmatchオブジェクト(正規表現をまとめたもの)を返し、マッチしなければNONEを返す。
③ searchは、途中でマッチするかどうかを判定する関数。2箇所ある場合は最初の1箇所のみ返す。マッチする場合はmatchオブジェクトを返し、マッチしなければNONEを返す。
④ splitは指定した文字で分割する関数、返り値はリスト型
⑤ findallは、指定した文字を**全て**返す関数、返り値はリスト型

#(1)例題

“`
import re

text1 = ‘abcde’
text2 = ‘a’
text3 = ‘1234’
text4 = ‘a1234’
text5 = ‘a1234a567’
text6 = ‘住所は123-3456東京都中央区999-9999’
text7 = ‘〒123-1234東京都中央区999-9999’
text8 = ‘〒1231234東京都

元記事を表示

OTHERカテゴリの最新記事