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

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

Callback関数ってなんぞや

結論から言うとコールバック関数というのは
>コールバック関数とは、コンピュータプログラム中で、ある関数などを呼び出す際に引数などとして引き渡される別の関数。
[コールバック関数とは](http://e-words.jp/w/%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E9%96%A2%E6%95%B0.html)

もっと端的にいうならば、引数として使われる関数ですね。
いや、わかるかい。なんやそれ。どうやって使うんや。笑

具体例を見ていきましょう。

# サンプルコード

“`python
def callback_add(a, b):
print(‘{} + {} = {}’.format(a, b, a + b))

def callback_times(a, b):
print(‘{} × {} = {}’.format(a, b, a * b))

def handler(a, b, callback):
callback(a, b)

if __name__==’__main__

元記事を表示

競プロで使う再帰関数の活用

おいおい追加予定

## こんなとき再帰使う可能性高いよ!
1. N、N-1などの状態で同じ処理を行いたいとき
https://atcoder.jp/contests/abc115/tasks/abc115_d

2. ループを上限なく行いたいとき
https://atcoder.jp/contests/abc114/tasks/abc114_c

## まとめ
再帰の基本は類似状態の探索っぽいですね

元記事を表示

pythonで単回帰分析の回帰係数を算出

# 単回帰分析の回帰係数の算出
単回帰分析の回帰係数の算出のコードを作ったので, 宜しければ, 使ってください!
### ライブラリのインポート
“`python
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
“`

### データセットの例(test.csv)
| Column 1 | Column 2 |
|:——–:|:——–:|
| 2.2 | 71 |
| 4.1 | 81 |
| 5.5 | 86 |
| 1.9 | 72 |
| 3.4 | 77 |
| 2.6 | 73 |
| 4.2 | 80 |
| 3.7 | 81 |
| 4.9 | 85 |
| 3.2 | 74 |

### データの読み込み
“`python

datas

元記事を表示

PYNQを始めてみた(2) -Overlay自作編-

# はじめに
既存のOverlayの使い方は他の記事で紹介済みのようなので飛ばして次に進む.
ということで,今回は[前回](https://qiita.com/lobmto/items/8f97872fc0f1927035a2)の続きとしてOverlayを自作してみる.[この動画](https://www.youtube.com/watch?v=Dupyek4NUoI)を ~~パクって~~ 参考にして`c = a + b`のOverlayを作る.
## Overlayとは
PYNQ-Z1の論理回路の部分をプログラムからライブラリのような感覚で扱えるようにしたもの(?).詳しくは[公式](https://pynq.readthedocs.io/en/v2.1/pynq_overlays.html)へ.

# 実行環境
– 開発用PC:Windows10
– [Vivado Design Suite – HLx Edition – 2019.2](https://japan.xilinx.com/support/download.html)

ダウンロードだけでも1

元記事を表示

言語処理100本ノック-23:セクション構造

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)[「第3章: 正規表現」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch3)の[23本目「セクション構造」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#sec23)記録です。
今回は正規表現の**後方参照・m回の繰り返し**を学びます。

# 参考リンク

|リンク|備考|
|:–|:–|
|[023.セクション構造.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/03.%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE/023.%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E6%A7%8B%E9%80%A0.ipynb)|回答プログラムのGitHubリンク|
|[素人の言語処理100本ノック:23](http://qiita.com/segavvy/i

元記事を表示

プログラミング初心者が初めてプログラミングで簡単なデータ分析をやってみたこと

#更新していなかった言い訳
更新が遅くなりました。
理由(というか言い訳)はたくさんありますが、主にはあまりコードを書いていなかったのがあると思います。
年が明け授業と課題の量が少し落ち着いたと同時に、卒業制作や卒業後の進路を色々考えて、自分の中で迷走中だったためあまり手を動かしていませんでした。
という事で[自分のブログ](https://www.55mfmfmf55.com/)は毎日更新してたけど、Qiitaに書くほどの内容がなかったというのが正直な感想。
今もまだやや迷子ですが、とりあえず卒業制作が決まり今はそれをがんばって作っています。

#授業で少しpythonを学んだ
授業中はクラウド上で少しデータをいじりました。またKaggleという驚くべきサイトの事もしりました。
授業後に自分でKaggleからデータ取ってきてちめちめ調べながら、初めてやってみたのがこちら。

##kaggleからデータget

https://www.kaggle.com/unsdsn/world-happiness#2019.csv
色々相関とか見れそうだなと思ったのでこれにしました。

##goo

元記事を表示

【Python & SQLite】単勝1倍台の馬がいるレースの期待値分析してみた①

## 概要
競馬 × AIの話題を見かけることがここ数年で増えましたが、全レースを対象としたものも多く、
個人的に気になる事例に絞って分析してみたい!と思い、今回netkeiba-scraperを使用していじってみました。

今回絞るテーマは「単勝1倍台の馬が出走するレースの買い方」です。
2019年は日本優駿や阪神JS、有馬記念など、単勝1倍台の馬が馬券外に沈むケースも多く見られました。
あくまで単勝馬券で分析は進めました。

※SQLをPythonでいじる練習も兼ねていますので、コードの書き方ご指導いただけると嬉しいです!

## netkeiba-scraperでデータ取得
競馬データのスクレイピングについては、偉大なる先人のコードを使用させていただきました。
[gitHubはこちら] (https://github.com/stockedge/netkeiba-scraper)

過去10年分のデータを取得しました。
特徴量抽出のための`genfeature`は、処理に40日くらいかかりそうだったため使用しませんでした。
またJRAのクラス呼称が変更された(ex. 500万下

元記事を表示

自前データをアノテーションしてMask R-CNNを学習させる

**Instance Segmentation**(物体検出+セグメンテーション) をするために
– 自前データを**アノテーション**
– **Mask R-CNN**を学習
ということを行なったのですが、他に役立つ記事が見当たらず苦労したので
メモ程度ですが僕が行なった手順を共有します。

# Labelmeによるデータ作成

https://github.com/wkentaro/labelme
基本的には上の `README.md`の通りです
以下にざっとまとめます

## インストール
`$ pip install labelme`でも入るのですが、後ほどデータ変換でスクリプトを使うので `git clone` します

“`.sh
$ git clone https://github.com/wkentaro/labelme.git
$ cd labelme
$ pip install -e .
“`

## 起動
クラス名を改行で羅列した`class.txt`を作成してください。データの変換の際にエラーが出るかもなので一行目に`__ignore__`を追加します。

元記事を表示

abc115-Dを解いた再帰関数の解き方

## 問題

https://atcoder.jp/contests/abc115/tasks/abc115_d

二度目の挑戦。解けて本当に嬉しかった。
この手の問題は他の競プロ系サイトでも出題しているので意外と大事。

## 方向性
問題文から再帰関数を用いるであろうことは想像難くない。問題はシュミレーターを作ると全てのバーガーの要素が膨大になってしまうので無理。必要な分だけ考えて算術で効率的にとく。

## 何が難しいか
問題の解釈は問題ない。問題は再帰をするための条件と戻り値を正しく決定できるかである。また、条件分岐が多いことも難易度をあげている。

## 解法
再帰問題のコツは状態位相を少ない値でモデリングすることだと感じた。つまり大事なことは以下の二つ
1. 再帰的に関数を呼び出すので、N,N-1,N-2…1,2の全てに成り立つ関数を作成すること。
2. 終了条件を考えること。

1. 再帰的に関数を呼び出すので、N,N-1,N-2…1,2の全てに成り立つ関数を作成すること。

今回の問題で必要となるのはダックスフンドの現在地と何次元のバーガーを参照しているかであ

元記事を表示

【Python】汎用コンテナとclassを相互に変換する

## ざっくり要約
かなり間が空きましたが、以前書いた記事の続編的位置づけです。
今回作ったものは[github](https://github.com/akio-1978/object_converter)に上げました。pipでインストールできる形にしてあるのは自分用です。

#### やりたかったこと
1. jsonで受け取ったデータ構造をちょこちょこ処理して、別のデータ構造でDynamoDBにputしようとした。
2. dictやlistを直接操作するコードが増えてうんざり。**意味のあるデータ自身に振舞いを持たせたい**というオブジェクト指向気取りな気分になる。
3. ならばclassに変換してしまおう。処理結果のクラスをdictに変換してしまおう。

#### 実際にやったこと
1. 「dictやlistなどの汎用コンテナで作られた構造」を「任意のclass構造」に変換する。それと、その逆。[^generic-conteiners]
2. 変換ルールを定義するためのマッピングをdictで作って、それに従って変換するクラスを作りました。
3. 使用例をユニットテストで紹介します

元記事を表示

GIFアニメーションを作るだけの記事

記事をご覧になってくださりありがとうございます!

どうも初めまして。2年間ぐらい組込み開発に携わっていましたが
転職後、環境的要因で精神崩壊→奇跡的に回復した、りゅうです。?

#ほんだい
この記事は、**複数のpng画像を昇順または降順に並べ替え一枚のgif画像を生成するプログラム**について載せている記事です。

#ソースコード
“`python:gifmake.py
# -*- coding: utf-8 -*-
import sys
from PIL import Image
import glob

args = sys.argv

#Ascending (昇順)/Descending(降順)
if args[2] == ‘A’:
value = False
elif args[2] == ‘D’:
value = True
else:
print(‘Enter A or D for the second argument!’)

files = sorted(glob.glob(‘./*.png’),reverse=value)
images = list(ma

元記事を表示

時刻の floor 関数(Python)

こんにちは。
時刻に対する floor 関数を作ってみました。計算単位として、下記例では 1 時間を整数で除算した値の 15 分を使っています。
“`”2020-01-01 00:05:05+09:00″ => “2020-01-01 00:00:00+09:00″“`

“`python
import datetime

MINUTE = 60 # in seconds
HOUR = 3600 # in seconds
ndiv = 4 # in [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60]
interval = HOUR//ndiv # in seconds
shift = 0 # in seconds

dt = datetime.datetime.strptime(“2020-01-01 00:05:05+09:00”, ‘%Y-%m-%d %H:%M:%S%z’)
print(dt_floor(dt, interval, shift)) # => “2020-01-01 00:00:00+09:00”

def dt_

元記事を表示

Python MeCab 形態素分析/自然言語処理(環境構築・前処理)

###Python 自然言語処理(環境構築・前処理)
OS:Windows 10
想定環境:Windows環境で、社内のプロキシ等の問題で、pipインストールが使用できない場合の手動インストールでの環境構築方法

| No | 対応         |  URL |
| :——– | :——– | :–: |
| 1 | meCabインストール(手動インストール可能) | https://toolmania.info/post-9815/ |
| 2 | 辞書DL(手動?) | https://qiita.com/zincjp/items/c61c44142,6b9482b5a48 |
| 2 | 〃 | 流れ①git for Windows②NEologd辞書のダウンロードとコンパイル |
| 3 | 前処理 | Qiita記事 |
| 4 | 単語ごとの傾向分析 | 未調査 |

元記事を表示

Python入門(Python版 APG4b)

# 本記事について
競技プログラミングサイトの [AtCoder](https://atcoder.jp/home) にはプログラミング入門教材の「[AtCoder Programming Guide for beginners (APG4b)](https://atcoder.jp/contests/APG4b)」があります。プログラミング入門教材として非常に完成度が高く、競技プログラミングの主流言語である C++ が使われています。
そこで、本記事では APG4b を元に、それの Python 版を書きました。基本的には APG4b を読み進めて、Python 独自の部分は本記事を参考にして頂ければと思います。

大部分が APG4b を元にしているため、本記事が問題あるようでしたらすぐに削除します。

各節の見出しが本家へのリンクになっています。
節タイトルは本家に合わせているため、Pythonの用語と一部異なる部分もあります。

# 目次
[1.00.はじめに](https://qiita.com/saba/items/b9418d7b54cce4b106e4#100%E3%

元記事を表示

PyTorchを使ってジャパリパークの歌詞みたいなやつを生成させたい

# はじめに
先日,Preferred Networks(PFN)社が提供している深層学習ライブラリ「Chainer」の開発が終了しましたね.
私の研究室ではTensorflow派とChainer派に分かれており,互いにマウントを取り合っていたのですが,開発終了と同時にChainer派が淘汰されてしまいました(キレそう).

私自身はChainerを愛用しておりましたのでとても残念に思うのと同時に,今まで使いやすいフレームワークを提供して頂いたことによる感謝の気持ちでいっぱいでございます(信者).

さてそのPFN社なのですが,PyTorchの開発へ移行するらしいです.
しかもPyTorch自体がChainerの記述に似ている面が多いと聞きます.
また私の研究では主に使用したのがCNNやらGANなのですが,RNN関連に手を付けていませんでした....

**「これはPyTrochの使い方とRNNの仕組みを勉強する良い機会では???」**

ということで「[ゼロから始めるDeep Learning②](https://www.oreilly.co.jp/books/97848731183

元記事を表示

決定木(分類)

#決定木とは
機械学習の分野においては決定木は予測モデルであり、ある事項に対する観察結果から、その事項の目標値に関する結論を導く。内部の節点は変数に対応し、子である節点への枝はその変数の取り得る値を示す。 葉(端点)は、根(root)からの経路によって表される変数値に対して、目的変数の予測値を表す。[wikipedia](https://ja.wikipedia.org/wiki/%E6%B1%BA%E5%AE%9A%E6%9C%A8)

これだと分かりづらいので実際に図にして表すとこんな感じです。
![207486.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273375/4faa54a6-e2f6-3763-c296-ec0aef3e59d8.jpeg)

これはテニスをするかどうかを判定する決定木の分類です。このように日常の意思決定も決定木で表すことができます。

#決定木の深さについて
 決定木には深さという深さというものがあってテニスをするかどうかの例だとさらに天気→湿度というのが決定木

元記事を表示

Django3.0の開発環境をDocker,Docker-compose,Poetryで作ってみた

# はじめに

Dockerとdocker-composeを使ってDjangoの開発環境を作成します。
他の人が書いた記事にすでにDockerで開発環境をつくる記事はありますが、ライブラリ管理にrequirements.txtを使用しているものも多くあり、現在のパッケージ管理はPipenvやPoetryを使うのが主流となってきている流れもあると思うので

> 引用: [2020 年の Python パッケージ管理ベストプラクティス](https://qiita.com/sk217/items/43c994640f4843a18dbe)

Dockerを使った開発でも一目で依存関係がわかるPoetryを使ったほうが良いなと思い記事にしてみました。

また個人的に開発環境にてDockerコマンドでコンテナを起動するのが好きでない(docker-composeのほうが楽)なのでdocker-composeでコンテナを起動する方法を書いてます。

# 目次

1. [前提](#a)
2. [動作環境](#a)
3. [Dockerfileの作成](#a)
4. [Djangoプロジェクト作成

元記事を表示

【初心者向け】Anacondaインストール後にやるべきこと

# はじめに
– タイトルの通り、Anacondaインストール直後にやるべきことのメモです。
– 初心者向けです。とはいえ、他のプログラミング言語経験があって、機械学習とかそこそこ複雑なことがやりたい人向けです。
– 環境:
– windows 10(OS依存の話は少な目です)
– Anaconda3-2019-10
– Anacondaをインストールした直後からパッケージを追加しようとする前の話です。
– 必要な情報は基本的には別サイトで説明されていますので、まとめというかほぼ備忘録となります。

# パッケージ管理ツールについて理解する
– 機械学習、webアプリ開発など、特に業務でpython使う場合には、基本的に自分で必要なパッケージを追加していくことになります。
– パッケージの追加方法について、Webの情報では、それぞれ異なるパッケージマネージャーのどれかを前提としての説明が多く、単純にコピペではなく自分で違いを理解して必要に応じて書き換える必要があります。
– ということで`conda`(パッケージ管理ツールとして), `pip`, `conda-forg

元記事を表示

MobileNetV2-SSDLiteの前処理・後処理などの一部をC++共有ライブラリ化してPythonからコールする

# 1. Introduction
自分用の開発メモです。 RaspberryPi4のディープラーニングプログラムの前処理と後処理を部分的に高速化するために Python から C++ の共有ライブラリをコールする方法を学んだ結果を書き留めます。 今回は **`boost_python3`** というライブラリを使用してPython実行用の共有ライブラリを作成します。 ヘッダファイルのインクルードと共有ライブラリ間の依存関係を調べるために少しだけ時間を要しますが、対象が分かってしまえばものすごく簡単に実施できました。

# 2. Environment

– RaspberryPi4 Ubuntu 19.10 aarch64 (eoan)
– 作業用PC Ubuntu 18.04 x86_64 (bionic)
– OpenCV 4.2.0 (self-build)
– libboost-python-dev 1.67.0.2

# 3. Procedure
## 3-1. Tutorial implementation
環境の下準備

“`console:Install_boost

元記事を表示

[Python 入門] pandasを使ってみよう

#[Python 入門] pandasを使ってみよう
第3回になります。今回は題材の日経平均らしいことをやっていきます。
まずいつもどおりcsvデータを読み込んでおきます。

“`
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasets

plt.style.use(‘ggplot’) #おまじない
font = {‘family’ : ‘meiryo’}

nikkei = pd.read_csv(“nikkei.csv”, parse_dates=[‘データ日付’]) #csvデータを読み込む
nikkei.head() #概要を見てみる
“`

#日時収益変動率とヒストグラム
最初に日時収益変動率を計算して、図に表してみます。

“`
nikkei[‘Day. Change P’] = (nikkei[‘終値’] – nikkei[‘始値’]) / nikkei[‘始値’] #日時収益変動

元記事を表示

OTHERカテゴリの最新記事