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

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

機械学習で競馬予想して回収率をシミュレーションする具体的な方法

# 目的
機械学習で競馬予想して回収率100%を目指す

# 今回やること
今回の記事は以下の記事の続きになります。
・[pandasのread_htmlを用いてレース結果データをスクレイピングする](https://qiita.com/dijzpeb/items/434b259e473cc8646e91)
・[BeautifulSoupを用いてレース詳細情報をスクレイピングする](https://qiita.com/dijzpeb/items/6e43b7928b2e0dc42bb9)
・[LightGBMで3着以内に入る馬を予想する](https://qiita.com/dijzpeb/items/66a6ea1a87bf75b9b05e)
・[馬の過去成績データを特徴量に加える]
(https://qiita.com/dijzpeb/items/63cb783c7d45cb91d262)

今回は、実際にこのモデルを使って複勝で賭けるとどのくらい勝てるのかをシミュレーションしようと思います。

# ソースコード
まずは払い戻し表をスクレイピングします。
![スクリーンショット 2

元記事を表示

ゼロから始めるLeetCode Day84「142. Linked List Cycle Ⅱ」

# 概要

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

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

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

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

Python3で解いています。

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

前回
[ゼロから始めるLeetC

元記事を表示

Pythonで文字列を配列にする、または配列を文字列にする方法

Pythonで文字列を配列にする方法、また、配列を文字列にする方法を書いていきます。
よろしくおねがいします。

文字列を配列にする場合。

“`
s = ‘あいうえお’
print(list(s))
print([i for i in s])
#[‘あ’, ‘い’, ‘う’, ‘え’, ‘お’] と出力
“`

配列を文字列にする場合。

“`
print(”.join([‘あ’, ‘い’, ‘う’, ‘え’, ‘お’]))
print(*[‘あ’, ‘い’, ‘う’, ‘え’, ‘お’], sep=”)
#あいうえお と出力
“`

数字の配列を文字列にする場合。

“`
n = [1, 2, 3, 4, 5]
print(”.join([str(i) for i in n]))
print(*[str(i) for i in n], sep=”)
#12345と出力
#joinがintだとエラーが出るので、strに変換しています
“`

以上です。
ありがとうございました。

元記事を表示

競プロ精進日記15日目~17日目(7/9~7/11)

#感想
[ABC172-F Unfair Nim](https://atcoder.jp/contests/abc172/tasks/abc172_f)が解けなかったので悔しいです。また、昨日のABC級のコンテストも惜しい立ち回りだったので悔しいです。
最近、競プロで悔しい日々が続いていますが、これを糧に成長したいです。

#15日目

[ABC173-F Intervals on Tree](https://atcoder.jp/contests/abc173/tasks/abc173_f)を解きました。
[こちらの記事](https://qiita.com/DaikiSuyama/items/fa7f0bef79216a499650)にて解説しています。

#16日目
##[ABC136-E Max GCD](https://atcoder.jp/contests/abc136/tasks/abc136_e)

###かかった時間
40分くらい(20分誤読した…)

###考察
[ABC172-F Unfair Nim](https://atc

元記事を表示

ふと思ったんだけど、一つのサーバーに複数のWEBアプリ(ページ)をpythonで構築するとして、pyenvやvenvでそれぞれのアプリを別バージョンのpythonやモジュールで構築することができるんだろうか?と思ってググってみても有益な情報は何も得られなかったので、こりゃ自分で試してみたほうが早いなと思い試してみたところまさかの結果が。。。

お金もないし、そんなにPV数もないので、一つのVPSで複数のサイトを構築するなんてことはよくあると思うんですが(私だけ?)、その際にpyenvやvenvでそれぞれ個別に指定したpythonのバージョンで動くのか気になります。これができれば、昔作った古いWEBアプリを気にせず、最新のpythonやモジュール類を使ってサイトを構築することができます。ググり方が悪いのか、常識過ぎて見つからないのか、一つのVPSで複数のサイトを構築するなんてケチくさいことしてる人がいないのかはわかりませんが、答えがみつからなかったので自分で試してみます。

いきなりVPS上でやってみてもいいですが、アップするのもめんどくさいし自分の開発環境(Mac)でどうなるか試してみました。

# テスト環境

Mac(Catalina)上に立ち上げたNginxをWEBサーバーとします。2つのディレクトリ(hello1, hello2)を作成して、pyenvで異なるバージョンのpythonをインストールし、venvでそれぞれ仮想環境を構築しnumpyをインストールしてバージョンをWEBページに表示するということをしてみます

元記事を表示

Pythonで0からディシジョンツリーを作って理解する (4. データ構造編)

**Pythonで0からディシジョンツリーを作って理解する**
[1.概要編](https://qiita.com/toyohisa/items/ab60d3eab11730f156da) – [2. Pythonプログラム基礎編](https://qiita.com/toyohisa/items/087ac1b03a187be2292f) – [3. データ分析ライブラリPandas編](https://qiita.com/toyohisa/items/180c0b1df42fb188f920) – 4.データ構造編

AI(機械学習)やデータマイニングの学習のために、Pythonで0からディシジョンツリーを作成することによって理解していきます。

## 4.1 データ構造

データ構造とは、個々のデータがどうやって並んでいるのかを表したものです。

### 配列
Albumentationsのaugmentaitonをひたすら動かす

# Albumentationsとは
* https://github.com/albumentations-team/albumentations
* 機械学習用データ拡張用Pythonライブラリ
* Data augmentationでよく使われる機能が豊富に揃っている
* `pip install albumentations`

# この記事
* 50程のAugmentationをひたすらパラメータとかを変えながら動作を確認した
* version 0.4.6
* [テスト用に書いたノードブック(Jupyter, Colab)](https://github.com/tkuri/albumentations_test/blob/master/albumentations_test.ipynb)
– 画像を用意すれば全部同じように確認できます

#ボカす系 (Blur)

## Blur
* ランダムサイズのカーネルでボカす
* blur_limit (int) – ブラーの最大カーネルサイズ。 Default: (3, 7)

![image.png](https://q

元記事を表示

Selenium で「芳文社70周年記念キャンペーン」対象リストを作る in Amazon

# 何するんですか

「[芳文社70周年記念キャンペーン](https://www.amazon.co.jp/b/ref=as_li_ss_shr?node=8187562051)」のAmazonでの対象リストを作る
(作成したリストの内容保証はできませんので利用は自己責任でお願いします)

## Seleniumってどう書くんだっけ

昔書いた[チートシート](https://gist.github.com/eggplants/7f0288468e51e390f94801762bf7a9c8)を見る

## 環境構築

これで一撃

“`bash:Terminal
$ sudo apt install chromium-browser chromium-chromedriver python3-selenium -y && sudo apt update && sudo apt -f install -y && pip install selenium
“`

## プログラム

`out`というファイルに書き込む

“`python:ope.py
from selenium

元記事を表示

python。プログラミング初心者が行き当たりばったりで物を作れるのかパート②

まさかまさかの。この記事はパート②で終了になります。(笑)

注意:
この投稿は何かを学べる投稿ではありません。初心者がプログラミング学習をして躓いたところをつらつら書くだけの投稿になります。。。orz

python 得意だよ!なんか簡単なこと悩んでんなこいつ。っていう優しい心の持ち主はアドバイスお願いします。。

環境:
windows
Anaconda3
python3.7.6

#この記事を通して完成させたかったもの
詳細は以下パート①に記載しております。
https://qiita.com/NAKASHOU/items/f76ddf988a8ac84d55c4

簡単に言うと、youtubeサムネイルを大量にダウンロード、サムネに特定の画像が含まれるのか判別、スプレッドシート(Excel)へ書き出す。ということをしたかったのです。

結論:なんといきあたりばったりで完成してしまう。。実質作業日数3日です。私はこの記事を書くために、PYTHONは全くの素人であったため、if文等のフロー制御からリスト型、辞書型などを勉強することをしていました。

平日は仕事なので、1か月くらいか

元記事を表示

七沢みあさんの顔が(ノ´□`)ノ ノイズ処理を施して画像処理!

#はじめに
七沢みあノイズ

**七沢みあさんって可愛いですよね。**

「あれ?」
「いつもと違うな。おかしい…」

拡大してみると…

なにか**白と黒の点のゴマ塩のようなもの**が紛れ込んでませんか?

これではかわいい顔に集中できません。

**平滑化**を施し**黒と白の点を除去**しましょ!

#平滑化とは?
**画像をぼかす**ということです。
OpenCVが用意しているのは4種類のぼかし方(フィルタ)が存在します。

– 1:移動平均フィルタ(平均化フィルタ)

– 2:ガウシアンフィルタ

– 3:中央値フィルタ

– 4:バイラテラルフィルタ

Python: アンパック代入に対応したクラスを作る

ふとアンパック代入ってどうやって実現されているんだろう、と試行錯誤してみた結果をメモしておきます。

## `__getitem__()` を実装する

“`python
>>> class MyTuple:
… def __getitem__(self, key):
… print(key)
… if key < 3: ... return str(key) ... else: ... raise IndexError ... ``` アンパック代入には `__getitem__()` メソッドが利用されるようです [^1]。 キーとしてインデックス番号が渡されます。 [^1]: ドキュメントを探してみたのだけど、ぱっと出てこなかったので実験して調べました。 ### 普通の代入の場合 `__getitem__()` は呼び出されません。 ```python >>> x = MyTuple()
>>> x
<__main__.MyTuple object at

元記事を表示

【IBM Cloud】Cloud FuntionsからDb2 on Cloudのテーブルへアクセスしてみた(python)

##はじめに
クラウドサービスといえばAWSのようなイメージがあったのですが、IBMも”IBM Cloud”としてサービスを提供しています。
調べてみると、IBM Cloudにも多くのサービスが提供されており、いくつかのサービスは無料で使えるとのこと。
特に、代表的なIBM製RDBMS”DB2″を200MB以下であれば無料で使える(2020/07時点)、というのはかなり大きいのではないかなと。個人で色々やるなら、200MBもあれば十分でしょう。
同じく、一定量のリクエスト以下なら無料で使える”IBM Cloud Funtions”と連携して、Db2 on Cloud上のテーブル参照/更新ができるようになるまでを記載してみました。

##やったこと

### ①DB2サービスを作ってみる
IBM Cloudのアカウント作成後からスタートです。
[IBM Cloudログイン画面](https://cloud.ibm.com/login)

![01.Login.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0

元記事を表示

プログラミングを始めて約3ヶ月の進捗状況

4月下旬にプログラミングというものを始めてそろそろ3ヶ月が経とうとしていますが、自分の技術、知識がどれほどついたのかを数年後に確認したいため、ここにまとめておきます。

おそらくこれからプログラミングを始めたい方、始めて1ヶ月目くらいの方には参考になるかもしれないので指標として温かい目でご覧ください。

#始めた頃の状況

・そもそもパソコンも初心者だったのでタイピングバカ遅い(寿司打お得にできなかった)
・Pythonは言語の名前しか知らない、Hello worldさえわからない。
・マークアップ言語も全く書けなかった
・コンピューターサイエンスの知識皆無

完全に右も左も分からないような状況でした。

#今の状況

・htmlの基礎は結構理解してきた
・PHPの基礎ちょっと理解した
・JavaScripの基礎ちょっと理解した
・Pythonの基礎結構理解してきた
・機械学習の初歩理解してきた
・データサイエンスの意味合い理解してきた
・データサイエンスの数学めっちゃ勉強中
・AIについての勉強中
・G検定の勉強中
・kaggle挑戦中
・Atcoder挑戦中
・簡単なWebスクレイ

元記事を表示

[BOD供養寺] スクレイピングしてきたデータの文字コードがおかしかったので修正した

Code for Japan Summit の人気企画に、「BADオープンデータ供養寺」というコンテンツがあります。

[BADオープンデータ供養寺](https://youtu.be/hWs0jal7R1Q)
> 【セッション概要】
> 世の中のBADオープンデータが二度とこの世を彷徨わないように、「供養(データクレンジング)」する方法を考える場です。
>
> データの公開に携わる行政職員の方や、データを利活用するエンジニア・データサイエンティスト等の皆さまと、より使いやすく品質の高いオープンデータの公開と加工の仕組みを考えていくために建立されました。
>
> 前半はパネリストが、日頃の業務の中で、どのようなBADオープンデータにいかに対処してきたか、実例やクレンジング技術を紹介します。
> 後半では事前投稿されたBADオープンデータを紹介しながら、オーディエンスの皆さまと一緒に成仏させる方法を考えて行きたいと思います。

ちょうど最近、総務省が公開している[マイナンバーカードの交付状況](https://www.soumu.go.jp/kojinbango_card/)というP

元記事を表示

AtCoder AISing2020 – クソ雑魚注意 – 追記中

エイシング プログラミング コンテスト 2020
2020-07-11T21:00:00+09:00

元記事を表示

Pythonの高階関数(デコレータ)のサンプル

自前のマシンではSchemeで各種ツールやWebスクリプトを作ってきたが,昨今の安価・高機能・高性能なPaaS,SaaSでSchemeに対応しているはずもなく,代替言語としてのPythonで,Schemeの特徴のひとつである高階関数を扱うためのサンプルを作成・整理した.

なお,高階関数(Higher-order Function)とは,簡単に言えば『関数自体を値として引数にとったり戻り値としたりする関数』である.詳細は,『[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sites/default/files/sicp/index.html)』”1.3 Formulating Abstractions with Higher-Order Procedures”を参照.

#高階関数の定義と利用
Pythonでもlambdaが使えるが単一の式としてしか扱えないため,defでローカル定義した関数を返す書き方が一般的らしい.

“`Python:higherorder.py
def

元記事を表示

AtCoder エイシング プログラミング コンテスト 2020 参戦記

# AtCoder エイシング プログラミング コンテスト 2020 参戦記

むちゃくちゃ眠かったので、直前に20分仮眠して頑張った.

## [aising2020A – Number of Multiples](https://atcoder.jp/contests/aising2020/tasks/aising2020_a)

1分半で突破. 問題の条件の通り書くだけ. 時間がかかるので、*O*(1) で解こうとかそういう事は考えない.

“`python
L, R, d = map(int, input().split())

result = 0
for i in range(L, R + 1):
if i % d == 0:
result += 1
print(result)
“`

## [aising2020B – An Odd Problem](https://atcoder.jp/contests/aising2020/tasks/aising2020_b)

2分で突破. 問題の条件の通り書くだけ.

“`python
N = in

元記事を表示

まずodooの概要について(odoo13)

# はじめに
pythonに慣れている方ですと、Flask、Djangoなどのフレームワークには触れたことがあるかと思いますが、Odooというpython世界にあるフレームワークにふれる機会はなかなかないのではないでしょうか。実はこのOdooという企業系のソリューションのフレームワークというか、ソフトとうか、っていうのが非常に強力なツールなのです。pythonに慣れていてしかも企業系ソリューションを探しているのであれば、このフレームワークに触れないのはもったいないのではないかなと思います。

私の場合、Odooはdjangoに触ってから初めて触るフレームワークなので、色々勉強がてらアウトプットとして記事を書いていきたいと思い、記事を書きます。
このフレームワークは最初はわけが分からず戸惑うかもしれません。というのも資料がほんとになくて、困り果てるかと思います。自分の場合、英語や中国語の資料を読み漁って、やっとというところでした。日本語ですとほんとに資料がないんです。そこはどうしようも有りません。英語の記事を頑張って読むしかないかなと思います。

# odooとは
まずはオフィシャルな内

元記事を表示

実装で学ぶ深層学習(segmentation編) ~SegNet の実装~

#環境
tensorflow == 2.2.0
keras == 2.3.1
(202.6.10現在のGoogleColabのdefaultのversion)

#コード
githubに全コードがのっています。
https://github.com/milky1210/Segnet
記事内のコードは抜粋なので実際に動かしたい方はコードのダウンロードをお願いします。

#SegNetの論文の内容を要約
スクリーンショット 2020-06-09 13.18.49.png

##要旨
SEMANTIC segmentation と呼ばれる画像の各ピクセルに対して何が映ったピクセルなのかというラベルをDeep learning によって推論を行う問題においてPooling などによって低解像度になった特徴マップを元の次元に

元記事を表示

openCVの顔認識で自分の顔をTwitterアイコンに置き換えてZOOMをする

久しぶりの投稿になりますkimo_0takです。
facerigなどで簡単にバ美肉はできますが、自分の顔だけを他の画像に置き換える方法がググっても見つからなかったのでササっと作りました。
100%顔を置き換える保証はないので内輪ネタとしてお使いください。

表示される画像はこんな感じ。
![ANf8EAbN.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/508704/29856705-58f3-28ee-c953-2ac63d3f2b08.png)

使用環境はWindows10、Python3.6.5です。
このプログラムと置き換えたい画像と顔認識モデルのxmlファイルは同じファイルに入れてください。

参考にさせていただいたサイトはこちらです。

Haar Cascadesを使った顔検出
http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_objdetect/py_face_detection/

元記事を表示

OTHERカテゴリの最新記事