- 1. jTessBoxEditorで生成したboxファイルの文字を一行ごとにmargeする【Tesseract】
- 2. JupyterでSeleniumのスクリーンショットをファイル保存せずに表示する
- 3. Pythonのturtleでマウスクリックしたところに亀を移動させる
- 4. docker runした日(注意すること)
- 5. Python の起動方法による sys.path の違い (v3.8.2)
- 6. Google Colaboratoryでバグに悩まされずにcartopyを使う
- 7. Windowsでpythonを実行してもMicrosoft Storeが開いてしまう時の対処法
- 8. 最近サイバーパンク風グラフ流行っていません?
- 9. Anacondaで日本語OCR環境を作る(tesseract+pyocr)
- 10. Python,AI関連の英単語でなくて「英文法」を覚えよう。。。
- 11. Pythonの応用: Numpyその2: 2重配列
- 12. Altairのすすめ!Pythonによるデータの可視化
- 13. pipを直で使うのは非推奨っぽい?
- 14. 0埋めされていない年月日を、正規表現でdatetime型に変換
- 15. Discord ボットを24時間起動します。
- 16. 書庫の湿度と温度の記録を採るためにやったこと
- 17. Flaskのアクセスログをカスタマイズする
- 18. (Python) ABC162-D 考察ログと解法
- 19. レラティブストレングス投資の月次シグナルを判定するpythonコード
- 20. 100日後にエンジニアになるキミ – 25日目 – Python – Python言語の基礎2
jTessBoxEditorで生成したboxファイルの文字を一行ごとにmargeする【Tesseract】
# 概要
jTessBoxEditorで生成したboxファイルにて、文字をマージするのが非常に面倒だったので、作成。
margeして精度が上がるかどうかはよく分からなかったけど、供養のため、記事にしました。# 条件
以下のファイルを作成します。この中身をjTessBoxEditorにペーストし、tiffファイルおよびboxファイル等を生成します。
“`text:text.txt
文字
テスト
プログラミング
mgs
“`# プログラム
本プログラムは、「text.txt」に定義した文字列を一行ずつboxファイル中にて、一行ずつmargeしたboxファイルを再生成する。生成したファイルはtiffファイルと一緒に生成されたboxファイルと置き換えて、jTessBoxEditorにて学習させる際に指定する。
“`python:sample.py
import shutildef read_words(input_file):
with open(input_file, “r”) as f:
data = [ t.replace(“\
JupyterでSeleniumのスクリーンショットをファイル保存せずに表示する
JupyterでSeleniumのスクリーンショットを表示するときって`driver.save_screenshot(‘screenshot.png’)`と書くのが一般的だと思いますが、Jupyterを使っているとそのまま表示したくなりますよね。
調べても意外と出てこなかったので、紹介します。# やり方
“`python
from IPython.display import Image
Image(driver.get_screenshot_as_png())
“`
Pythonのturtleでマウスクリックしたところに亀を移動させる
#Pythonのturtleでマウスクリックしたところに亀を移動させる
### 実行イメージ
### サンプルプログラム
“`python
import turtlekame = turtle.Turtle(“turtle”)
def moveKame(x, y):
kame.goto(x, y)kame.screen.onclick(moveKame)
turtle.done()
“`
### 解説
“`python
# turtleモジュールを読み込む
import turtle
“`“`python
# kameという名前の変数にturtleモジュールの中の亀(Turtle)を生成して格納する
kame
docker runした日(注意すること)
##以下コマンドで起動する
docker run -p 8888:8888 -v ~/dev/ds_python:/work –name my-lab 520b56985511 (image ID)##注意点
1. ポートを指定する(-p コンテナのポート:ホストのポート)
2. ファイルシステムのマウント(-v コンテナの作業フォルダ:dockerfileで作ったフォルダ)
3. コンテナ名を命名(-name 任意)###参考
Python の起動方法による sys.path の違い (v3.8.2)
# 概要
Python のプログラム起動方法には何種類かあり、それによりモジュールの検索パスである `sys.path` の値が異なる。
## 参考文献
v3.8.2 版を閲覧
– Python のセットアップと利用, 1. コマンドラインと環境. https://docs.python.org/ja/3/using/cmdline.html
## 詳細
簡単に言うと
– ファイルなどを直接指定した場合はそれに関連するディレクトリが `sys.path` の先頭に来る
– `-m` でモジュールを指定した場合はカレントディレクトリが先頭要素になる
– いずれの場合でも、モジュール名は `”__main__”` という文字列である。まとめると以下の通り。ディレクトリ (パッケージ) や .zip ファイルを起動できることは著者は知らなかった。
| `python` の後の引数 | 実行されるもの | そのモジュール名 (`__name__`) | `sys.path` の先頭要素 |
|—————–|——————|—-
Google Colaboratoryでバグに悩まされずにcartopyを使う
Python(pandasやNumPy)でデータサイエンスをしたい場合、描画ライブラリとしては[matplotlib](https://matplotlib.org/)を使うのが現在のデファクトスタンダードで、地理空間データや地図の描画には[cartopy](https://scitools.org.uk/cartopy/docs/latest/)を使うのがよいです。そのcartopyですが、Googleクラウド上の[Jupyter notebook](https://jupyter.org/)である[Google Colaboratory](https://colab.research.google.com/)で使おうとすると、2020-04現在は、公式の方法ではバグで悩まされ、実質的に使えません。回避策とその説明をこちらにまとめてみました。
## 結論
以下のどちらかでインストールしましょう。
パターン1
“`
!grep ‘^deb ‘ /etc/apt/sources.list | \
sed ‘s/^deb /deb-src /g’ | \
tee /e
Windowsでpythonを実行してもMicrosoft Storeが開いてしまう時の対処法
## はじめに
会社で使用しているwindowsにpythonをインストールしたところ、
powershellなどでpythonコマンドを実行しても、Microsoft StoreのPythonページが開いてしまうという問題に遭遇しました。
この問題は、[python.org](https://www.python.org/downloads/windows/)のインストーラを使用して、インストールの途中で「Pathに追加」オプションを選んだ場合は発生しないようです。
ただ、選択せずにインストールしてしまった場合、正しい手順を踏まないとpythonコマンドを使えないので、備忘録として残しておきます。## 手順
pythonのインストール自体は終わっている前提です。### 1. python実行ファイルのpathを確認する
スタートボタン横の検索窓から、「python」と入力し、表示されたpythonのコマンドラインアプリの選択肢から、「ファイルの場所を開く」を選択します。
ファイルエクスプローラが開き、pythonがインストールされた場所が表示されるので、インストールされた
最近サイバーパンク風グラフ流行っていません?
## まずはどんなグラフか?
![alt](https://matplotlib.org/matplotblog/posts/matplotlib-cyberpunk-style/figures/5.png)その特徴は
* ネオンカラーを使う。
* 基本線の前後に透明度の低い線を引いて、ボケ感を出す。
* 透明度の低い面装飾を追加して、ボケ感を追加する。
* 使用するフォントをサイバーっぽい物を使用する。## 投稿のキッカケ
* [matplotlib公式サイト](https://matplotlib.org/)に[matplotblog](https://matplotlib.org/matplotblog/)があるのは、皆さんご存知でした?
* このサイトの最新の投稿が[Matplotlib Cyberpunk Style](https://matplotlib.org/matplotblog/posts/matplotlib-cyberpunk-style/)で上記のグラフの作成について解説しています。(2020/03/27 投稿)
* NHKスペシャル▽新型コロナウイル
Anacondaで日本語OCR環境を作る(tesseract+pyocr)
# 概要
AnacondaだけでOCR環境を構築する
ぶっちゃけ難しいことは分からないのでとにかく簡単な方法を模索# 環境
Windows10
Anaconda
Python 3.6
Spyder 4.1.2# tesseractとpyocrについて
調べたら、PythonでOCRするならtesseract+pyocrのやり方がありそうなので、
この方法を試してみることにしました### tesseract
現在Googleが開発しているOCR(光学文字認識)のエンジンとのこと
v4.0以降では機械学習のLSTMベースになっていることから、
認識率を考えると最新バージョンが良さそう### pyocr
Python用のOCRツールラッパーとのこと
tesseractにも対応# 参考
Anacondaだけで環境を構築して、Python+OCRをやってみる
https://qiita.com/anzanshi/items/9ee94affecd74be33159参考にしましたが、環境違いからかちょっとハマってしまいました
# tesseractのインストール
いろい
Python,AI関連の英単語でなくて「英文法」を覚えよう。。。
#目的
Pythonとか、AIとかの関連で、**英語を目にすることは多いが、英語力が低すぎて損をしている。**英語をマスターするために、英単語でなくて、**英文法**を理解する(覚える)。大半は、自分が理解してなくて、ちょっと、**損をした、時間をロスった**と思うもの
を記載する。
極一部、自分は、なんかの関連で既に知っていたが、普通、知らないのでは?というのも入れる。とりあえず、当面、
ちょっと、読み間違える可能性のある* マニュアル
* エラーメッセージなどを対象にしてみる。
#英文法
##現在分詞の後置修飾
:exclamation: **現在分詞は、前から修飾するのを最初に勉強するから、後ろから修飾するのに、慣れていないのでは?**
###例文1
sys.executableの説明文
(出典: 出典1 参照)>String giving the full file pathname of the Python interpreter program running the caller
**後ろから修飾**2か所。
フルパスを**与える**文字
Pythonの応用: Numpyその2: 2重配列
# 2重配列
2重配列は、数学で言う「行列」として扱えます。
例えばnp.array([リスト, リスト, リスト…])と書くと
2重の配列データ(ndarray型)が作られます。数学に倣って、多重配列の階層を「次元」と呼ぶことがあります。2重配列は、2次元配列といった具合です。
## 行列数の確認
nparrayの配列は
“`
shape
“`
というメンバー変数を持っています。“`python
nparray配列.shape #これを書くと、配列の要素数が記録されています。
“`例えば2行3列の行列に相当する2重配列なら
ndarray配列.shapeは(2, 3)という値です。“`python
import numpy as nparr = np.array([[1,2,3],[4,5,6]])
print(arr)
print(arr.shape)# 出力
[[1 2 3]
[4 5 6]]# 行と列の数は下記のように、行がリスト数、列が要素数となってます
(2, 3)
“`## 行列の調整
Altairのすすめ!Pythonによるデータの可視化
## この記事について
Pythonのデータ可視化ライブラリー、**Altair**の紹介です。日本語の情報が少ないので布教用に記事にします。英語に抵抗がない方は[公式ページ](https://altair-viz.github.io/index.html)を見るのが一番わかりやすいと思います。## インストール
`pip`コマンドで簡単にインストールできます。`vega_datasets`はこの後使うので一緒にインストールしましょう。“`shell
pip install altair vega_datasets
“`
私はGoogle Colaboratoryを使いましたが、インストールなしで最初から使えました。## 事前準備
以下でライブラリとデータセットを読み込んでください。“`Python
import altair as alt
from vega_datasets import data
iris = data.iris()
“`
AltairはPandasとの連携が得意で、`iris`はPandasのDataFrameです。## 基本的な可視
pipを直で使うのは非推奨っぽい?
# エラーメッセージが出てました。
いつものように、新規に建てたインスタンスに`python3-pip`をインストールした後、`pip`を使おうとするとエラーメッセージが出ました。
“`
$ pip3 install pip
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with ‘-m pip’ instead of running pip directly.
“`[“please see”と書いてあるリンク](https://github.com/pypa/pip/issues/5599)を見てみると、pipのアップグレード後に色々と問題が発生してる
0埋めされていない年月日を、正規表現でdatetime型に変換
pythonのdatetimeには、文字列型をdatetime型に変換する関数`strptime()` があるが、0埋めされていない文字列は変換できない。
(`2020/04/03`は変換できるけど`2020/4/3`はできない)その簡単な代替方法があったのでメモ。
全角が含まれる場合は、何らかの方法で全角を半角にしてから実行。
方法はいろいろあるのでお好みのものを。## コード
`strptime()`の代わりに、datetimeのコンストラクタを用いる。
https://docs.python.org/ja/3/library/datetime.html#datetime.datetime
> class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)“`python
import datetime
import re# 文字列に含まれる数字のリストを取得
l = re.findall(r”\d+”,
Discord ボットを24時間起動します。
# 何が必要
– [Repl.it](https://repl.it/)のアカウント
必要なのはこれだけです。
# ステップ1
“+new repl”をクリックします。
![0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571953/41be5a18-ecaa-e81d-74c6-27ec583d6383.png)
# ステップ2
新しいreplを作成します。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571953/950e9b6f-ec6f-86da-5b14-cdf932572056.png)
# ステップ3
“main.py”を作成します。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/571953/e6d89955-500c-6107-83c8-3e4f7b668884.png)
書庫の湿度と温度の記録を採るためにやったこと
[国立国会図書館の温湿度管理のページ](https://www.ndl.go.jp/jp/preservation/collectioncare/humiditycontrol.html) には次のような説明が書かれています。
==========
国立国会図書館の書庫では、温度と湿度を制御できる空調機を設置しており、書庫内の温湿度をこまめにチェックし、「書庫内で人が作業できる温度」「65%以下の湿度」を目指し、1年間を通じて、また1日の中でも、温湿度を急激に変動させないことを目指しています。また、閲覧室との温湿度差ができるかぎり小さくなるようにも心がけています。
==========また、温度が高いほど飽和水蒸気量が大きくなるため湿度を制御するためには温度を最適に調節する必要があることも記載されています。
湿度が65%を越えたらアラートを出すしかけを作りたいのですが、その前に私の環境での1時間ごとの湿度と温度を、ついでに気圧の記録を採り続けてみようと考えました。
そのためにやったことを書き残しておきます。
####用意したもの
[Raspberry Pi Zero W](
Flaskのアクセスログをカスタマイズする
## やりたいこと
以下のようなFlask(version 1.1.2)のプログラムを作成し
“`python
from flask import Flaskapp = Flask(__name__)
@app.route(“/”)
def hello():
return “Hello World!”if __name__ == “__main__”:
app.run(host=’0.0.0.0′)
“`実行してアクセスすると以下のようなログが出ますが、
“`
127.0.0.1 – – [14/Apr/2020 19:13:43] “\x1b[37mGET / HTTP/1.1\x1b[0m” 200 –
“`このアクセスログは(私にとって)不要な文字列が入っている上、本文のメッセージに色がついていて、扱いにくいです。
なので、このログをカスタマイズする方法を説明します。
## カスタマイズ方法
結論からいうと、Flaskが内部で利用しているWerkzeug (version 1.0.1) という名前のloggerが上記のログ
(Python) ABC162-D 考察ログと解法
[ABC162](https://atcoder.jp/contests/abc162) に(バーチャル)参加しました。
D問題が面白かったので初めての解説記事を書きます!![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155933/febfd5fc-ca05-0827-eb9e-e89b13037c28.png)
綺麗な解説ではなく、その時思ったことを垂れ流すように書いてみました。
なお解いている様子は [YouTube](https://www.youtube.com/watch?v=d2Ha71q17_c) に動画があります。
# 問題
[D – RGB Triplets](https://atcoder.jp/contests/abc162/tasks/abc162_d)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155933/ca95e703-afd6-85c5-a
レラティブストレングス投資の月次シグナルを判定するpythonコード
[私のブログ](https://hiroshi-ichihara.hatenablog.com/)で[レラティブストレングス投資](http://etftrendfollow.seesaa.net/article/152055593.html)の月次シグナルを更新していますが、今まではデータ取得とエクセルでの計算を手作業でやっていました。
この度、月次シグナルを判定するpythonコードを書きました。なにぶんpython歴数か月の初心者なので、見苦しいコードかもしれませんがご容赦ください。私が確認した限りでは、正しく動いているようです。
#1. データのスクレイピング
“`python:[Monthly_check]RS_signal.ipynb
import numpy as np
import pandas as pd
from datetime import datetime
import urllib.request#SMTAMウェブサイトから投信データcsvを取得して保存。
#スクレイピングを最小限に抑えるため、一度スクレイピングしたらcsvファイルとして保存。
100日後にエンジニアになるキミ – 25日目 – Python – Python言語の基礎2
今日もPython言語の続きです
前回はこちら
[100日後にエンジニアになるキミ – 24日目 – Python – Python言語の基礎1](https://qiita.com/otupy/items/6d1e5453f530e07b7aec)
## インデックス
[![表示されなかったらすみません](https://img.youtube.com/vi/jicCr_agJ1c/0.jpg)](https://youtu.be/jicCr_agJ1c)
インデックスとはプログラム上で何番目?というのを表す数字です。
インデックスを用いることでプログラムでは様々なことが行えます。
**インデックスの表記**
`[]` 四角カッコで囲みその中に数値を入力する
“`
[5]
“`文字のインデックスの例
“`
print(‘はじめの一歩'[5])
“`
歩文字列は複数の文字からなるデータなので
インデックス番号の文字を取り出すことができる。**インデックスの数え方**
インデックスは `0` から始まるので
文字列の最初の文字を取り