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

Python関連のことを調べてみた2020年05月27日
目次

【1日1写経】Build a Stock Prediction Program【Daily_Coding_002】

## 初めに
– 本記事は、python・機械学習等々を独学している小生の備忘録的な記事になります。
– 「自身が気になったコードを写経しながら勉強していく」という、きわめてシンプルなものになります。
– 建設的なコメントを頂けますと幸いです(気に入ったらLGTM & ストックしてください)。

## お題:Build a Stock Prediction Program
今日のお題は、**Build a Stock Prediction Program**というYoutube上の動画です。

Youtube: [Build a Stock Prediction Program](https://www.youtube.com/watch?v=EYnC4ACIt2g)

分析はyoutubeの動画にある通り、Google Colaboratryを使用しました。

それではやっていきたいと思います。

まずはライブラリのインポートからです。今回は`quandl`というライブラリを使います。`quandl`は株価やらのデータをとってくるためのライブラリのようです(知りませんでした…)。

元記事を表示

OpenCVの画像処理をGPU(CUDA)で高速化する XavierNX

#はじめに

[OpenCVの画像処理をGPU(CUDA)で高速化する](https://qiita.com/iwatake2222/items/dd7ea3efe65ac77bf783)
というPostをみて、XavierNXでも同様にGPUMATを使った高速化について確認しました。

#手順
– XavierNXのJetpack4.4でOpenCV4をビルドし、GPUMAT(CUDA)を使えるようにします。
-もともとJetpack4.4にはOpenCVの4.1.1が入っていますが、GPUMATがイネーブルにされずにビルドされています。
– [OpenCVの画像処理をGPU(CUDA)で高速化する](https://qiita.com/iwatake2222/items/dd7ea3efe65ac77bf783)にあるスクリプトを実行します。

#XavierNXのJetpack4.4でOpenCV4をビルドし、GPUMAT(CUDA)を使えるようにします。
XavierNXで、GPUMAT(CUDA)を使おうとすると

“`
cv2.error: OpenCV(4.

元記事を表示

Python3 を子供に教えるためにオセロを作ってみた(5)

# オセロクラスについて解説していきましょう その2

## 型について話しましょう
 血液型ってありますよね?A型、B型、O型、AB型・・・と本当かどうかはさておいて「几帳面なA型」「自分勝手なB型」みたいな感じで型にはその型なりの特徴があります。プログラミングでは型というのは血液型のように重要な区分けをするために使われます。

 今まで**変数**について色々説明してきましたが、敢えて型について触れてきませんでした。配列は list() というクラスだと説明しましたし、ディクショナリ変数も dict() というクラスです。プログラムで言うデータ型は血液型同様、そのデータの性質を表すものです。

|データ型の名前 |データ型|記述|
|:—:|:—:|:—|
|文字列|str| “文字” または ‘文字’|
|整数|int| +-数値|
|浮動小数|float|+-浮動小数|
|虚数|complex|+-実数部+-虚数部j|
|真偽|bool| True または False|
|日付時刻|datetime|日付と時刻|
|リスト(配列)|list|データ型を問わない配列|

元記事を表示

BindsNETでSNNを試してみる

[前回の記事でBrian2を使ってみました](https://qiita.com/takeajioka/items/11690b9adee612e48b33)が、今回はSNNの実装が出来るソフトであるBindsNETを使ってみます。

SNN(Spiking Neural Network)は現在のDeep Learningよりも神経生理に近いもので、神経活動のシミュレーションを利用して学習を行います。
SNNやBindsNETについては[こちらの記事](https://qiita.com/arakiii/items/b076a5c9e57c08c49a9a)でも紹介されています。

GitHub:https://github.com/BindsNET/bindsnet
論文:https://www.frontiersin.org/articles/10.3389/fninf.2018.00089/full
ドキュメント:https://bindsnet-docs.readthedocs.io/

NEURONやBrian2はシミュレータの用途メインなのに対して、BindsNETは機械

元記事を表示

jupyter notebookでmarkdownを使う(ショートカットあり)

#【備忘録】jupyter notebookでmarkdownを使う(ショートカットあり)

pythonのコードをパーツごとに確認できるjupyter notebookでmarkdownも使える。

VScodeのようなファイル単位でなく、同一ページのセクション単位でmarkdown表記とcode(python)表記を切り替えられる。

##方法
1.行を選択する
  └ 入力状態(緑枠)ではなく、青枠の状態
  └ escキーで入力から選択状態になる
2.Mキーをクリック
  └ 上部タブがMarkdownに切り替わる
3.コード入力し、shift+enter

>
– 正式には入力状態を編集モード(edit mode)、選択状態をコマンドモード(command mode)とよぶ。
– コード入力モードに切り替えるショートカットはYキー

##手順(キャプチャ)

|①緑枠は入力状態|
|:–|
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563526/b25454c

元記事を表示

MySQLのダンプをTSVに変換するスクリプトを書く

MySQL からダンプされた SQL を他の用途に使うため、タブ区切りのテキスト(いわゆる TSV)に変換を試みます。

# 概要

MySQL のテーブルは mysqldump で SQL としてダンプできます。主要部分は CREATE 文と INSERT 文です。

* [ひとつのテーブルを指定してダンプ | mysqldumpの教科書](https://mysqldump.i-like-pudding.com/ja/archives/table-designation/)

> “`sql
(略)
CREATE TABLE `t_price` (
(略)
INSERT INTO `t_price` VALUES (1,’定型’,25,82),(略)(10,’定型外’,4000,1180);
(略)
> “`

自分で管理している MySQL からのダンプであれば、直接 TSV にダンプできます。

* [MySQLのデータをcsv,tsv形式でダンプする – Qiita](https://qiita.com/d-dai/items/e56c2e5abf558328373f)

元記事を表示

WindowsのVSCodeでPythonのIntelliSenseが表示されないときの対処法

最近のエディタでやっぱり優秀なのはIntelliSens(Autocomplete)だと思う。入力の手間が省けるだけじゃなくて、引数の形とかも出してくれるし、ちょっとしたドキュメントもついてるからめっちゃ有能。

でも、VSCodeを使ってPythonの開発をしていて、“`opencv-python“`, “`numpy“`, “`scipy“`, “`pandas“` などの巨大なライブラリではIntelliSenseが出てこなかったので、色々調べて直した方法をメモ。ただ、あんまり情報がなかったので、これで全員が解決するかはわからない()

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628276/23a18141-e571-309e-dfa0-d7dd697208f4.png)

## 環境
– OS : Windows 10 Home
– VSCode : 1.45.1
– Python : 3.8.3

**Anaconda経由ではなく、Pythonを直接イン

元記事を表示

[競プロ用]ランレングス圧縮まとめ

# いつ使うのか

* 与えられる文字列で連続する回数・個数に着目する問題。

# 何がいいのか

画像圧縮などに利用される手法。膨大なデータを可逆性を損なわずに圧縮できる。
ただし、元データよりも必ずしもデータ量が少なくなるとは限らない。連続する構造の少ないデータでは逆に増加することもある。

# どうするのか

同じ文字が何回繰り返されるかの文字と数字の組み合わせで表す。

# テンプレート

“`python
from itertools import groupby

# RUN LENGTH ENCODING str -> tuple
def runLengthEncode(S: str):
grouped = groupby(S)
res = []
for k, v in grouped:
res.append((k, str(len(list(v)))))
return res

# RUN LENGTH DECODING tuple -> str
def runLengthDecode(L: “list[tuple]”)

元記事を表示

EC2にpandasをインストールする方法(MemoryErrorとPermissionErrorの対処法)

#EC2にpandasをインストールする方法(MemoryErrorとPermissionErrorの対処法)

EC2インスタンスでローカル環境と同じようにpandasをインストールしようとするとエラーで進めない。

##エラー内容
エラーは2つ発生する。
①MemoryError:メモリないエラー
②PermissionError:権限ないエラー

“`python:メモリエラー
$ pip3 install pandas

MemoryError
“`

“`python:権限ないエラー
$ pip3 –no-cache-dir install pandas

PermissionError: [Errno 13] Permission denied: ‘/usr/local/lib/python3.7’
“`

##対処法
以下1文で無事インストール完了。

“`python:
$ sudo pip3 –no-cache-dir install pandas

#インストール成功
Successfully installed numpy-1.18.4 panda

元記事を表示

【後編】Mask R-CNNで発生したエラー「UserWarning: An input could not be retrieved. It could be because a worker has died」を解決してみた。

#エラーの原因特定まで

[【前編】Mask R-CNNで発生したエラー「UserWarning: An input could not be retrieved. It could be because a worker has died」を解決してみた。]
(https://qiita.com/skperfarming/items/68cdec8ad8672837bd38)

前編ではエラーの発生とその原因を探りました。
後編では実際にちゃんと学習できる実装を紹介します。

#DOWNLOAD/SETUP/IMPORT

“`nucleus_train.py
# Mount drive
from google.colab import drive
drive.mount(‘/content/drive/’)
%tensorflow_version 1.x
“`

google driveをマウントします。
tensorflowのバージョンも前のものを指定しましょう。

“`nucleus_train.py
# Change directory to project folde

元記事を表示

[Python]04章-04 いろいろなデータ構造(リストの参照)

#[Python]04章-04 リストの参照
ここでは、新たな知識を説明するというより、リストの特徴を知ってほしいという意味で「参照」について述べていきたいと思います。

##オブジェクトの参照
まずは参照について確認していきます。
**Python Console**に以下のコードを入力してください。

“`.py
>>>Lx = [8, 6, 5, 9, 7]
>>>Ly = Lx
>>>Ly
[8, 6, 5, 9, 7]
“`

この状態で、以下のコードを入力してください。

“`.py
>>>Ly[4] = 1000
>>>Ly
[8, 6, 5, 9, 1000]
“`

ここまではわかるかと思います。
簡単に説明すると、**Lx**という変数に[8, 6, 5, 9, 7]というリストを代入し、Lyに代入してから、Ly[4]に1000を代入して、中身を確認しています。
もちろん、Lyを表示すると、[8, 6, 5, 9, **1000**]となります。

では、この状態で、**Lx**を表示してみましょう。すると以下のようになります。

“`.py
>>>Lx

元記事を表示

【前編】Mask R-CNNで発生したエラー「UserWarning: An input could not be retrieved. It could be because a worker has died」を解決してみた。

#Mask R-CNNのnucleus検出デモを練習中

Deep learning初心者の私が、google colaboratoryを使ってMask R-CNNに試行錯誤している挑戦の続きです。
今回は以下を活用して、**細胞の検出**に挑戦しています。

https://github.com/matterport/Mask_RCNN/tree/master/samples/nucleus

おなじみ、Matterport社のものです。

このデモでは、Mask R-CNNの検出の裏側である、**ROIやAnchor**などを表示してくれるとともに、Detectionの際にもStep by stepでやってくれるものです。
初心者にとって、どうやって学習&認識してくれているのか理解することができるので、とても勉強になります。

##トレーニングのipynbがない

_dataと_modelの2つipynbファイルがあり特につまずくことなくデモを実行できたのですが、detectionで使うweightをトレーニングするipynbがないのです。
そこで、自分で作ってみようと思い、**

元記事を表示

【Python】業務効率化ツールを配布するためのexe化手段について検討してみた

##やりたいこと
pythonで作った業務効率化ツールを社内で配布したい。メンバーにはPCに疎い人も多いので、exeファイルとして配布する。
exe化は何通りかのやり方がある。「起動時間」「ファイルサイズ」「配布・導入のし易さ」などの観点で、どの方法でやれば良いか、自分なりに考えてみる。

##先に結論
**pyinstall**で**onefile化** + **仮想環境で必要最低限のライブラリをインストールした状態でexe化**するのが無難と思った。
起動時間が求められる状況では、onefile化は諦めるのも必要かもしれない。

##環境
Windows10 Home
Python3.8.2(32bit)
Visual Studio Code 1.45.1
PyInstaller3.6

##勉強・検証した内容
0.検証するコード
1.PyInstallerによるexe化
 1-1.onefileにしない(デフォルト)
 1-2.onefileにする
2.PyInstaller以外の方法
3.仮想環境下でexe化する

###0.検証するコード
超簡単なtest.pyを作成し、こ

元記事を表示

GAE & GCS & Django で image URL が Blank な件

# 概要
Django を動かしている インフラを GKE から GAE に載せ替えた時に発狂したメモ

django-storages というモジュールを使って、imageField 経由でGCSへのアップロード・URLの取得を行っていた
https://django-storages.readthedocs.io/en/latest/backends/gcloud.html?highlight=GS_DEFAULT_ACL#settings

しかし、GAEに移行したら imageField が空白で返ってくる様になった
upload は上手くいくし、Django を localhost や GKE で動かすときは上手くいく

# 結論
URLの有効期間とかが不要なのであれば
settings に下記を追記すれば良いだけ

“`
DEFAULT_FILE_STORAGE = ‘storages.backends.gcloud.GoogleCloudStorage’
GS_BUCKET_NAME = ‘yourbacketname’
GS_DEFAULT_ACL = ‘public

元記事を表示

競馬予想 機械学習(LightGBM)で回収率100%超えた話

# はじめに
最近データ分析にはまっています。

データ分析コンペのKaggleをやっていて、私がよく思うのは**「売上予測?もっと面白いテーマはないのかい?**」です。

そんなわけで、勉強も兼ねて一から競馬予測モデルを作ることにしました。上手くいけば金儲けもできるし、競馬好きの私にとっては最高の分析テーマです。

ほぼ初心者ですが、結果として**回収率が安定して100%**を超えるようなモデルが作成できたので、この記事では、競馬モデル作成までのおおざっぱな流れと、シュミレーション結果の詳細について記載していきます。考え方でおかしなところがあればご指導お願いします。

# 条件設定

**出走馬の走破タイムを予測し、最も速いタイムの馬に単勝掛けします。**

巷では、1着の馬の的中率を挙げるようなモデルが多かったですが、回収率が思うように伸びてないようなものが多かったように思います。それならば、純粋にタイムを予測してから賭けると、いい感じになるかも?**(暴論)**と思い、この設定にしました。

本当は他にも理由がありまして…..

競馬では、人気馬は能力値以上に多くの人が賭けて

元記事を表示

Brian2で神経活動をシミュレーションする

神経活動をコンピュータ上でシミュレーションする研究は以前から行われています。
シミュレータとしてはイェール大学の[NEURON](https://neuron.yale.edu/neuron/)が有名ですが、他にも様々なソフトがあります。

今回は、去年(2019年)にeLifeで論文発表されたBrian2というソフトを使ってみます。
*間違えやすいですが、名前は**Brain(脳)ではなくてBrian(ブライアン)**ですね。

ホームページ:https://briansimulator.org/
GitHub:https://github.com/brian-team/brian2
論文:https://elifesciences.org/articles/47314
開発元はフランスのソルボンヌ大学などです。

# インストール
環境は
Ubuntu 16.04
Anaconda
Python 3.6
です。

インストールはcondaでもpipでも出来るようです。

“`shell
pip install brian2
“`
これでインストールできました。
バージョンはb

元記事を表示

コード規約、メソッド対応表

“` python
#python

“`

“` sql
–sql

“`

[](
「このページで表示する順番」
python
pandas
numpy
matplotlib
その他
sql
R
)

[](
このページの書き方
##### 大見出し:例「コード規約」、「メソッド対応表」
### 見出し:「カラムの抽出」、「一部のレコードを抽出」
‘‘‘ python
コード
コメント
・コメントはすべてここに書く、本文中には書かない
)

# コード規約

### python

“` python
#python
df_used_method1_used_method2\
= df.copy()\
.used_method1()\
.used_method2()\
“`

### SQL

“` sql
–sql
select
datamart1.column1
, datamart1.column2
, datamart2.column3
from
datamar

元記事を表示

im2col徹底理解

#対象者
CNNを用いた画像認識で登場する`im2col`関数について詳しく知りたい方へ
初期の実装から改良版、バッチ・チャンネル対応版、ストライド・パディング対応版までgifや画像を用いて徹底解説します。

#目次
– [`im2col`とは](#im2colとは)
– [なぜ必要か](#なぜ必要か)
– [CNNとは](#cnnとは)
– [フィルタリング](#フィルタリング)
– [`im2col`の動作と初期の実装](#im2colの動作と初期の実装)
– [`im2col`の動作](#im2colの動作)
– [`im2col`の初期の実装](#im2colの初期の実装)
– [初期の`im2col`の問題点](#初期のim2colの問題点)
– [改良版`im2col`(初期ver)](#改良版im2col初期ver)
– [変更点1](#変更点1)
– [変更点2](#変更点2)
– [変更点3](#変更点3)
– [多次元配列への拡張](#多次元配列への拡張)
– [数式で追いかけ

元記事を表示

2変数、4分岐の if 文について

### 変数 min_value, max_value が存在するとき、それぞれの条件で処理を変えたい

例えば…

|min_value|max_value |処理 |
|:——- |:——– |:——-|
|null |null |なにもしない |
|null |not null |上限より小さいことを検証 |
|not null |null |下限より大きいことを検証 |
|not null |not null |範囲内にあることを検証 |

普通はこんな感じ

“`java:Main.java

class Main {

public static void main(String[] args) {

}

private static String hoge(int value, Integer min_value, Integer max_value) {
if (min_value == null && max_value ==

元記事を表示

ゼロから始めるLeetCode Day37「105. Construct Binary Tree from Preorder and Inorder Traversal」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day36「155. Min Stack」](https://qiita.com/KueharX/items/e0fe029974c5e26a0b4f)

今はTop 100 Liked QuestionsのMediumを解いています。
Easy

元記事を表示

OTHERカテゴリの最新記事