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

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

W&Bを使ってみる

#W&Bとは
[W&B](https://www.wandb.com/)
tensor boardのweb版です。
違いは、オンラインのページで確認できるほか、昔の実験結果などを保管しておくこともできます。
機械学習のログの記録や結果をみるのに便利なサイトです。

以下のページを参考に記事をかきます。
[wandb Quickstart](https://docs.wandb.com/quickstart)

#セットアップ

pipを使って、wandbのライブラリをインストールします。

“`
pip install wandb
“`

webのアプリなので会員登録が必要です。容量に制限はありますが、学生やアカデミック用途では無料です。
以下のページから登録できます。githubのアカウントでできるので、自分はすぐできてしまいました。

[会員登録ページ](https://app.wandb.ai/login?signup=true)

次に使用する環境のターミナルで

“`
wandb login
“`

とすると、以下のページがでてきます。

“`
wandb: You

元記事を表示

Pythonで、デザインパターン「State」を学ぶ

GoFのデザインパターンをPythonで学習してみたいと思います。

# ■ State(ステート・パターン)
Stateパターンとは、プログラミングで用いられる振る舞いに関する(英語版) デザインパターンの一種である。このパターンはオブジェクトの状態(state)を表現するために用いられる。ランタイムでそのタイプを部分的に変化させるオブジェクトを扱うクリーンな手段となる。

### UML class and sequence diagram
![W3sDesign_State_Design_Pattern_UML.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103595/2e2b5e97-53c1-09b9-bcc2-c47602ffc501.jpeg)
### UML class diagram
![state.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103595/6bc61e44-7564-20ec-6c

元記事を表示

「世界で闘うプログラミング力を鍛える本」Pythonコード解答例 – 1.4 回文の順列

「世界で闘うプログラミング力を鍛える本」Pythonコード解答例 – 1.4 回文の順列

#Pythonコード解答例
“`python
def isPermutationOfPalindrome(phrase):

phrase = phrase.lower()
table = buildCharFrequencyTable(phrase)
return checkMaxOneOdd(table)

def checkMaxOneOdd(table):

foundOdd = False

for count in range(len(table)):
if table[count]%2 == 1:
if foundOdd:
return False
foundOdd = True

return True

def getCharNumber(c):

a = ord(“a”)
z = ord(“z”)

元記事を表示

「世界で闘うプログラミング力を鍛える本」Pythonコード解答例 – 1.3 URLify

「世界で闘うプログラミング力を鍛える本」Pythonコード解答例 – 1.3 URLify

#Pythonコード解答例
“`python
def replaceSpaces(str,trueLength):

spaceCount = 0

for i in range(trueLength):
if str[i] == ” “:
spaceCount = spaceCount + 1

index = trueLength + spaceCount * 2

target = [0] * index

for i in range(trueLength-1,-1,-1):

if str[i] == ” “:
target[index-1] = “0”
target[index-2] = “2”
target[index-3] = “%”
index = index – 3

元記事を表示

AtCoder Beginner Contest 118 過去問復習

#所要時間
スクリーンショット 2020-01-31 12.34.26.png

#感想

#[A問題](https://atcoder.jp/contests/abc118/tasks/abc118_a)

b%aが0かを判定

“`python:answerA.py
a,b=map(int,input().split())
print(a+b if b%a==0 else b-a)
“`

#[B問題](https://atcoder.jp/contests/abc118/tasks/abc118_b)

実装に時間をかけすぎてしまった…。
m種類それぞれで全ての人が好きと答えるかと判定していけば良い。

“`python:answerB.py
n,m=map(int,input().split()

元記事を表示

AWS SAMでサーバーレスアプリケーション!(APIGATEWAY+Lambda(Python))

#はじめに
ちょっと前に仕事でAWS環境でのAPI構築したときのこと。
興味があったサーバーレスを組むチャンス!と思って喜んでいたんですが、
開発に入るまでに期間があったので、家で試しになんか作りたいなぁ・・・とか、
でも負荷テスト組んだ時に間違ってたくさん課金発生したら怖いなぁ・・・
とか思っていてローカルで組む方法ないかな?と探したら、やっぱりあるみたいでした。

AWS SAM CLIというものでローカル環境でサーバーレスアプリケーション環境が構築できる様子。
[AWS Serverless Application Model (SAM) コマンドラインインターフェイス。サーバレスアプリケーションをローカルで構築、テスト、デバッグする](https://aws.amazon.com/jp/blogs/news/aws-serverless-application-model-sam-command-line-interface-build-test-and-debug-serverless-apps-locally/)

早速ローカルでHelloWorldを実行していじってみます

元記事を表示

Jetson Nano + USBカメラ + OpenCV + Scikit-image でサブピクセル精度の計測系を構築する

Jetson Nano + USBカメラ + OpenCV + Scikit-image でサブピクセル精度の計測をするPythonスクリプトを書いてみました。Jetson Nanoに限らず、Pythonが走ればRaspberry Piでも動作します。

テンプレートマッチングで見つけた座標に対し、Phase Correlationを使ってサブピクセル位置を特定します。再現性はかなり良いが、リニアリティはレンズ次第。

スクリプトは以下からダウンロードできます。
https://github.com/takurot/templatematch

#実行環境
![IMG_20191117_143549.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/512829/2451a773-7c5a-fd15-1f96-966aa6a61792.jpeg)

#実行例
![IMG_20191117_143644.jpg](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

pygameでタイマー機能を実装する

# はじめに
pygameというライブラリを用いて、
指定した時間が経過した後音楽を流すという、いわゆるタイマーのようなプログラムを作成としたとき、
エラーメッセージも表示されず、音楽も流れないという不具合が出た。
その解決法について書いていく。

# 環境
Python 3.6.8
pygame 1.9.6

# 結論
`pygame.mixer.music.play()` によって音楽が出力されるとき、
`time.sleep()`で音楽を再生する時間だけプログラムの実行に遅延を発生させることで音楽が流れるようになった。

# 作成したコード

### 問題が起きたコード

“`python
# 音楽を再生するプログラムを作成する

import pygame
import time

react_time = int(input(“何秒後に音楽を鳴らすかセットしてください >>”))

print(react_time)
time.sleep(react_time)

pygame.mixer.init()
pygame.mixer.music.load(“BGM.mp3”)

元記事を表示

Python Tkinter 入門メモ

## 背景
– Visual Studio(VB.NET)、Android Studio(Java)、XCode(Swift)では標準のGUIデザイナで楽にGUI開発してた/してる(Desktop AppはVB.NET→Javaに移行、C#はUnityでしか使ってない)
– JavaではAWT/Swingでデザイナ使わずにGUI組んでた(Layout)
– メインの言語がJava→Pythonに移行してからCUIツール/Webばかり作ってるので、Desktop GUIも作りたい気持ち

高性能というわけではない(透過まわりや標準機能面で不便な点あり)が、標準なので備忘録として自分用にまとめておく。

\# Ctrl+Cで終了しようとすると、Windowにさわるまで応答しないのが面倒くさい

– [tkinter — Tcl/Tk の Python インタフェース — Python 3.8.1 ドキュメント](https://docs.python.org/ja/3/library/tkinter.html)

## Windowの作成
“`python
import tkinte

元記事を表示

PointNetの理論と実装(点群データ)

#はじめに
**点群データ**を対象とした深層学習モデルの中で最もベーシックな**PointNet**の解説です。
PointNetを理解するためには、点群データを理解することが必要なので、まず点群データの解説を行い、その後でPointNetの理論の説明と**PyTorch**による実装を行います。

またPointNetを使った簡単な実験として、一様分布と正規分布から三次元データをサンプリングし、データがどちらの分布からサンプリングされたのかを当てる**二値分類タスク**を行います。

PointNetの論文は[こちら](https://arxiv.org/abs/1612.00593)です。
実装したコードは[GitHub](https://github.com/Yuto0107/pointnet)に上げてあります。

#点群データ(Point Cloud)とは?
点群データは近年、自動運転で注目されているデータです。自動運転で使われるLiDARと呼ばれるセンサーから得られるデータが点群データであるためです。他には建設業界における三次元計測や分子を対象とした化学計算等で使われており

元記事を表示

AtCoder に Cython がやってくる!!

# AtCoder に Cython がやってくる!!

[言語アップデート](https://twitter.com/atcoder/status/1223141026707017728)クルーってことで、新ジャッジテスト環境で Cython が試せたので触ってみました. ちなみに Cython に触るのは初めてで何もわかっていません(笑)

ちなみに言語アップデート後の Python 3 は 3.8.0 で、Cython は 0.29.14 です.

## Python のコードはそのまま動く

ABC085C – Otoshidama で試してみました. Python 3 で 678 ms で AC したソースコードをそのまま Cython で提出したら 614ms で AC しました.

“`python
from sys import exit

N, Y = map(int, input().split())

for i in range(N + 1):
for j in range(N + 1 – i):
k = N – i – j

元記事を表示

League of Legendsのデータ取得して解析してみたい

#League of Legendsのデータを取得したい
記念すべき初投稿になります。
##はじめに
この記事では、自分が今ハマっているゲームである「League of Legends」(以下LOL)のデータを取得して勝率や得意チャンピオンなどを数値的に表わしてみたいと思いました。
(まあ、[OPGG](https://jp.op.gg/l=ja)や[YOURGG]( https://your.gg/?lang=ja)といったサイトはすでに存在しているけど自分の勉強のためにね)
##環境
2020/1/29現在
OS:windows10
Anaconda:4.8.1
python:3.7.6
##事前準備
LOLのデータを収集する際に公式からAPIが提供されているので今回はそれを利用します。そのために下のコマンドを打って***riotwather***をインストールします。

**“`python -m pip install riotwatcher“`**

API KEYというものを取得してこないといけないため、[こちら](https://developer.riotgames

元記事を表示

Pythonで位置情報データ表示– 地図表示用ライブラリ(folium)でプロットしてみる —

#1.始めに#
店舗の出店計画時に人の動線を確認したりと何かと活躍の場の多い位置情報。
SNSやIoT機器の普及により、位置情報を分析に活用する機会は増々多くなると思います。

今回は直近で位置情報を地図上にプロットして可視化したいな、という機会があり、
調べてみるとpythonで実に簡単に可視化できるらしいとの事。

今回は国勢調査データを使って以下を試してみました。

– **Jupyter Notebook上への地図表示**
– **位置情報のプロット**
– **ヒートマップの作成**

#2.参考サイトなど#

・地図表示用ライブラリ(今回は「Folium(v0.10.1)」というライブラリを使用)
https://python-visualization.github.io/folium/index.html
※「Fo

30代からの留学、転職そしてPyhon系エンジニアへ

# 30代からの留学、そして希望職のエンジニアへ転職した話
初めまして!

ここでは高卒30代のクレーン運転士がどの様にしてエンジニアへ転職したか書いていきます!

そして私の様な、割と今までのほほんと生きてきた人でもエンジニアになれるかもと思って頂けたり、同じ道を選んで学習している人に勇気を持ってもらえたら嬉しいです。

## 自己紹介
私は昨年の6月に10年以上働いていた会社を退職して、10月から12月末までフィリピンのセブ島へエンジニア留学にいっていました。

### 内定時の私の特徴
性別 男
年齢 32歳
前職 クレーン運転士
プログラミング経験 半年(独学3ヶ月、留学3ヶ月)

## なぜ留学したか?
簡単にいうと前に働いていた会社への不安と、これからも楽しく前向きに生きていきたいという気持ちです。

### 前に働いていた会社への不安
これはかなり多くの工業系の会社が同じ様な状況になっているのではないでしょうか?

・会社でトラブルが多い
・上司がやる気がない
・酒、ギャンブル、タバコ以外の趣味がない人が多い
・仕事の質、量と給料が見合っていない

私はこの様なことがあ

matplotlibでアニメーション

# matplotlibで回転系アニメーション
## はじめに
matplotlibはグラフを作成するだけでなく、アニメーションも作成することができます。
アニメーションの機能としては、ArtistAnimationとFuncAnimationが主にありますが、ここでは、FuncAnimationを用いて下に示すような回転系アニメーションを表示します。