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

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

Git Hookをつかって、Pushしたら自動でBlenderのレンダリング、エクスポートを行う

## はじめに

本記事は[三重大学 計算研 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/calc-mie) 二日目です。

サークルでゲーム開発をする際に、Blenderで制作した3DモデルデータもGitでバージョン管理しました。
ゲーム開発でBlenderのファイルを使うためにはFBXにエクスポートしたものを使うほうが都合が良いです。

そこで今回、Git Hookという機能を用いることで、`Git Push`を実行した際に自動で**レンダリング** 、 **FBXエクスポート**が行われるようにしました。

これにより、作業が自動化できただけでなく、**FBXエクスポートの設定ミスが無くなる**、**Blendファイルを編集した際のFBXファイルの更新忘れが無くなる**というメリットもありました。

今回はGit Hookについての紹介と実際にBlenderにて自動エクスポートを行うための作業について紹介します。

## Git Hookとは

Gitの標準の機能であり、特定のGitの作業を行った際に、

元記事を表示

[TouchDesigner]pythonによるfor文のコツ

## はじめまして
趣味で映像や音楽を作ってるibuibu69と申します!
これまでmaxやprocessingを使って、VJとインストバンドなんかをやってました。。

・・・バンドも解散したし、TouchDesignerで新しいことをやりたい今日この頃。東京在住なので、だれか友達になってください。。

では、初アドベントカレンダー投稿、さっそくいきます。

## 本題
TouchDesignerで難しいことをやろうとするとき、pythonによる制御が必要不可欠になってきます。

がしかし、、、TouchDesignerユーザーでpythonに精通しまくりな方は、(私も含め)割と少ないのではないでしょうか。。。たぶん。。

そこで、よく使うであろう、for文によるオペレータの一括操作の際のコツを紹介します。

## たくさんのオペレーターを操作

例えば、「constant1,2…9のvalue0に1を代入する」はこうです。

“`python
for i in range(1,10):

元記事を表示

python openCV インストール(メモ)

## バージョン
・mac(Catalina)
・python3(3.7.5)
・opencv4(4.1.2)

## 参考

RubyとOpenCVで始める画像処理

https://qiita.com/cfiken/items/44b364b951b605f1e919?fbclid=IwAR0k4LB0t9ik0mSP3wWo2Ih3flLl1y5RDVLGhOLf1sPJeXIr0kzJhfpTUYQ

輪郭抽出
https://qiita.com/y_kani/items/c9861b1f3517c32491d6

## インストールと動作確認

“`
brew update
brew install -v cmake
brew tap homebrew/science
brew install opencv
“`

“`
export PYTHONPA

元記事を表示

Slackbotでファイルの読み書きをしよう〜PythonでのBot開発〜

本記事では、Pythonで作成したSlackbotでファイルの読み書きにする処理について説明します。

Pythonでファイルの読み書きを制御する」にて実装した論理をSlackbotから呼び出せるようにしていきます。

ファイルを読み書きする基本論理は「Pythonでファイルの読み書きを制御する」で作成した以下のモジュールを使用します。

◆filereadwrite.pyの記述内容

import codecs

class FileReadWrite:

# ファイルを読み込むメソッド
def file_read(self, path):
try:
# ファイルを開く

元記事を表示

時系列に考慮したシーケンシャル・カテゴリ特徴量へのログデータの省メモリな変換

# はじめに
こんにちは、機械学習エンジニアしてます。河本です。寒すぎて風邪引きました。
本日は時系列情報を考慮する必要のあるログデータに対して、メモリ消費を抑えつつ前処理を行う方法について書いていきます。

# やりたいこと
このようなユーザーごとの行動ログの入ったデータセットがあったとして、

```
userid itemid categoryid timestamp
0 0 3 1 2019-01-04
1 0 4 1 2019-01-08
2 0 4 1 2019-01-19
3 0 5 1 2019-01-02
4 0 7 2 2019-01-17
5 0 8 2 2019-01-07
6 1 0 0 2019-01-06
7 1

元記事を表示

AWSサーバレスでWebSocketを使ったWEBチャットを作ってみます!

この記事は NTTテクノクロス [Advent Calendar 2019](https://qiita.com/advent-calendar/2019/ntt-tx)の2日目の記事です。

こんにちは。安田と申します。
NTTテクノクロスでAI関連の新製品開発を担当しています。早速本題からズレますけれども、マンガを描くのが最近の息抜きで、次のようなマンガを描いています。

[マンガでわかるデータ連携](https://www.ntt-tx.co.jp/products/dataspidercloud/manga.html?utm_source=qiita&utm_medium=ac2019&utm_campaign=02)
[マンガでわかるAI時代のエンタープライズ・アーキテクチャ](https://www.ntt-tx.co.jp/column/yasuda_blog/20170413/?utm_source=qiita&utm_medium=ac2019&utm_campaign=02)
[マンガでわかるITストラテジー](https://www.itmedia.co.jp/e

元記事を表示

PythonのログをJSONで出力するFormatterを開発してみた

普段Pythonを主に使っているのですが、クラウドサービスでログ収集・分析基盤を整備する際に構造的データの方が何かと便利ですよね。しかし、Pythonの標準ライブラリのLoggingのノーマルなFormatterを使用すると一回構造的データに変換しなければなりません。コンバートするためだけにもう一個アプリケーションを作成するのは野暮です。
そこで、JSONでログを出力してくれるFormatterを開発してみました。

# 環境
- OS (動作保証済み)
- MacOS Catalina
- Ubuntu 18.04
- 言語
- Python ^3.7

- パッケージマネージャー
- Poetry

- ライブラリ
- 標準ライブラリのみ

- 開発用ライブラリ
- Black
- Pytest
- Flake8

# 成果物
開発したFormatterは[homoluctus/json-pyformatter](https://github.com/homoluctus/json-pyformatter)にあります。

元記事を表示

DjangoでSpotify APIを叩いてみる。

#はじめに

この記事はDjango Advent Calendar 2019の記事です。
対象読者はこれからDjangoを初めて見ようと言う層向けです。

前回の記事は@yuu-eguciさんの500エラーに関する内容でした。
https://qiita.com/yuu-eguci/items/a1e4b0a2f238d5ccc985

今回の記事はDjangoでSpotifyのAPIを実行してみようといった内容です。

# 事前準備

Spotifyのユーザーアカウントを作成する必要があるのですが、以下のクラスメソッドさんの記事が大変参考になります。

Spotify Web APIの使い方

記事のサンプルコードを実行したい方は、以下からチャートデータをCSV形式でダウンロードしてください。
https://spotifycharts.com/regional/jp/daily/latest

# サーバー側の実装

行儀が大変悪いですが、手軽に動作を確認してほしいのでviews.pyの中で全て纏めていま

元記事を表示

初心者がUE4でルービックキューブ風なものを作って強化学習用のライブラリにしたい #6

前回に引き続き初心者がUE4を絡めたPythonライブラリを作れないか色々進めていく記事です(ほぼ自分のための備忘録としての面が強い・・)。

最初 : [#1](https://qiita.com/simonritchie/items/e8d84c2941b5bd2862f5)
前回 : [#5](https://qiita.com/simonritchie/items/f276a207da295e4ca581)

## Observation 回りの実装をしていく

観測値回りの制御の処理を書いていきます。
基本的にアクションの後に保存などの処理が必要になるのと、用意したSQLiteのテーブルにアクションのIDのカラムを用意してあるので、BPと繋げるところはアクションのモジュールに追加していきます(別途Observation用のPyActorを使ったモジュールを追加しようとも思いましたが、アクション関係との連携が無駄に煩雑になるのでアクションの方に追加していきます)。
ただし、BPが絡まないところの処理は別途汎用モジュールを用意してそちらに記載していきます。

BP_Actionに

元記事を表示

Pythonでおみくじ作った。

#はじめに
アドベントカレンダーが空いていたのでPythonに関するちょっとしたことを書こうと思います。
いつもはFlaskを使ってWebアプリを作っているのですが、フレームワークに頼っているせいかPythonそのものの理解が浅いと感じました。そこで、Python練習をしようとまず、おみくじを作りました。
(現在Flaskのアドベントカレンダーがガラ空きです。少しでもFlaskを知っている方はぜひ参加してください。)

#環境
os: Ubuntu18.04LTS
Python: Python3.6.9

#コード
今回はこんな感じのおみくじを作りました。

```python
from random import choice

play = input('playと入力したらおみくじを引けます。: ')

while True:
if play == 'play':
break

print('もう一度入力してください。')
play = input('playと入力したらおみくじを引けます。: ')

while True:
KU

元記事を表示

意外とややこしい Python のスコープを理解するためのクイズ14問

# イントロダクション

Python の変数のスコープ、参照のメカニズムは意外に直感的でない部分があり、初心者が罠にはまる可能性がある。しかし、一旦ルールを覚えればさほど複雑ではない。ここではその理解を助けるための問題を紹介する。

問題ごとに**何が出力されるか、もしくはエラーが出力されるかどうか**を答えよう。実行環境は Python 3 とする。難しい(というかマニアックな)問題は見出しが赤色になっている。

# 問題1

```python
x = 1

if True:
x = 2

print(x)
```

## 解答

```
2
```

Python では `if` 文はスコープを形成しない。そのため `if` 文内の `x` は外の `x` と同一の変数となる。

# 問題2

```python
for i in range(10):
x = i * 2

print(i, x)
```

## 解答

```
9 18
```

`if` と同様に `for` 文もスコープを形成しないので、

元記事を表示

遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(実行結果編)

# はじめに

「巡回セールスマン問題 遺伝的アルゴリズム」でググるとたくさんヒットすることを自分でもやってみました。

- [理論編](https://qiita.com/masaru/items/729a0a0e2d7f305e8e90)
- [Python コード編](https://qiita.com/masaru/items/07a63f1f6e0edfbe1288)
- [実行結果編](https://qiita.com/masaru/items/22b70c8e1e937814212a)

# 実行結果

[Python コード編]() で作成したコードを、Google Colaboratory 上で、いくつかの点群について探索した結果です。

- time ... 実行時間
- epoch ... 世代数
- fitness ... 近似解の適応度
- length ... 近似解の経路長
- path ... 近似解の経路
- グラフ ... $p_1, p_2, \dots, p_N$ と順にたどった経路と、途中世代での最適解の経路

遺伝的アルゴリズムは乱数の要

元記事を表示

遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(Pythonコード編)

# はじめに

「巡回セールスマン問題 遺伝的アルゴリズム」でググるとたくさんヒットすることを自分でもやってみました。

この記事は、Python コードの解説です。

- [理論編](https://qiita.com/masaru/items/729a0a0e2d7f305e8e90)
- [Python コード編](https://qiita.com/masaru/items/07a63f1f6e0edfbe1288)
- [実行結果編](https://qiita.com/masaru/items/22b70c8e1e937814212a)

# 仕様

## Breed

交叉・突然変異を表す enum

- ScrambleMutation ... 撹拌 (Scramble)
- TranslocationMutation ... 転座 (Translocation)
- SwapAdjacentPoints ... 隣接する点を交換
- SwapMutation ... 交換 (Swap)
- InversionMutation ... 逆位 (Inversion)

元記事を表示

遺伝的アルゴリズムで巡回セールスマン問題を解いてみる(理論編)

# はじめに

「巡回セールスマン問題 遺伝的アルゴリズム」でググるとたくさんヒットすることを自分でもやってみました。

- [理論編](https://qiita.com/masaru/items/729a0a0e2d7f305e8e90)
- [Python コード編](https://qiita.com/masaru/items/07a63f1f6e0edfbe1288)
- [実行結果編](https://qiita.com/masaru/items/22b70c8e1e937814212a)

# 概要

## 巡回セールスマン問題(Traveling Salesman Problem)

**巡回セールスマン問題** とは、$N$ 個の点すべてを 1 回ずつ通って元の点に戻る最短の経路を探索する問題です。
$N$ 点を全て通って戻ってくる経路の総数は $(N-1)!/2$ 通りあります。
3 点であれば 1 通りです。
4 点であれば 3 通りです。
5 点であれば 12 通りです。
点が増えると経路の総数は爆発的に増えていきます。
その中から最短の経路を見つけようとする

元記事を表示

ゼロから作るDeep Learningで素人がつまずいたことメモ:3章

#はじめに
ふと思い立って勉強を始めた[「ゼロから作るDeep LearningーーPythonで学ぶディープラーニングの理論と実装」](https://www.oreilly.co.jp/books/9784873117584/)の3章で私がつまずいたことのメモです。

実行環境はmacOS Mojave + Anaconda 2019.10です。詳細は[このメモの1章](https://qiita.com/segavvy/items/1945aa1a0f91a1473555)をご参照ください。

#3章 ニューラルネットワーク
この章はニューラルネットワークの仕組みの説明です。

#3.1 パーセプトロンからニューラルネットワークへ
層の数え方の違いや、パーセプトロンとニューラルネットワークの違いなどの説明です。人によって層の数え方が違うというのはちょっと不便ですね。

#3.2 活性化関数
活性化関数の種類の紹介です。登場する3種類の関数をグラフにしてみました。

```python
# coding: utf-8
import numpy as np
import matplo

元記事を表示

自宅学習_カメラキャプチャ

#カメラの分(キャプチャのみ)
```
# 元のコード https://tony-mooori.blogspot.com/2015/10/pythonwebpython.html
# カメラ選択 https://crimnut.hateblo.jp/entry/2018/04/04/123147

# -*- coding: utf-8 -*-
import numpy as np
import cv2
from time import sleep

#引数0でデフォルトのカメラ(デスクトップ)、-1で接続されたカメラ
cap = cv2.VideoCapture(0)

while(True):
# フレームをキャプチャする
ret, frame = cap.read()

# 画面に表示する
cv2.imshow('frame',frame)

# キーボード入力待ち
key = cv2.waitKey(1) & 0xFF

# qが押された場合は終了する
if key == ord('q'):
bre

元記事を表示

夢の国の最適経路を(量子)アニーリングで求めてみた

## はじめに
夢の国...そう、それは夢と魔法の王国として知られる東京ディズニーランド。

みなさんも一度は訪れたことがあると思いますが、休日だとかなりの混雑ですよね。
そんな時に夢の国での負担となるのが待ち時間と移動距離です。

待ち時間と移動距離が短くなるようなコースがあったら理想的ですね。
しかし、いざ自分で考えるとなると膨大なアトラクションの位置と待ち時間を正確に把握する必要があります。

それはめんどくさいので、夢をぶち壊すようですが夢の国の経路を最適化してくれるWebアプリを作ってみました。
最適化手法はいろいろありますが、今ちょうど大学の卒論で扱っている量子アニーリングで挑戦してみました。

先に試したい方はこちらからどうぞ!
https://tdr-planner.web.app/
最適化処理は30秒くらいかかってしまうのでしばらくお待ち下さいm(_ _)m

## 用語解説

専門用語がたくさん登場するので予めざっくりと解説しておきます。

### 量子コンピュータ

量子コンピュータは大きく以下の2種類に分類されます。

| 方式 | 特徴 |
| --- |

元記事を表示

AtCoder 三井住友信託銀行プログラミングコンテスト2019 参戦記

# AtCoder 三井住友信託銀行プログラミングコンテスト2019 参戦記

## A - November 30

2分で突破. 書くだけ.

```python
M1, D1 = map(int, input().split())
M2, D2 = map(int, input().split())

if D2 == 1:
print(1)
else:
print(0)
```

## B - Tax Rate

4分半で突破. 整数にならなかった場合をどうすればいいかわからんなあと適当に出したのに AC だった. ふう.

```python
N = int(input())

X = N / 1.08
if int(X) * 108 // 100 == N:
print(int(X))
elif int(X + 1) * 108 // 100 == N:
print(int(X + 1))
else:
print(':(')
```

## C - 100 to 105

7分半で突破. WA1. 最近の ABC のC問題より難しいな

元記事を表示

【SLAYER】スラッシュメタルの歌詞を可視化して、鋼鉄魂を確認してみた【WordCloud】

#はじめに
私が愛するスラッシュメタル(Thrash Metal)、その中でも**SLAYER**は一番のお気に入りだ。

長年活躍してきた彼らだが、メンバーの死を乗り越えながらも、ついにファイナルワールドツアーを迎えた。
そして2019年11月30日、LAでの最終講演をもって有終の美を飾った。

これを記念して、彼らが伝えたかったことを確認しておきたいと思う。

#環境
+ Windows10
+ Python 3.7.5

#可視化結果
![wordcloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494282/6e3ac397-d208-4e15-464e-49a066e0dbcf.png)

もはや何も言うことはない。

俺は満足だ!!素晴らしい音楽とメッセージをありがとう!!!!!

#ソースコード
```py
import requests
from bs4 import BeautifulS

元記事を表示

ちょっと条件を緩和してoptunaに数独を解かせてみた

# はじめに
これは、前回([optunaに数独を解かせてみた](https://qiita.com/soyiharu/items/8f88e1e928e4c92ab8c0))の続編です。

前回は数独のルールすら知らない状態で、optunaを使って最適化することで正解にたどり着けるか試してみました。
今回は、縦・横・3x3のブロックで数字の重複がないというルールを知ったうえでoptunaに最適化させてみました。

もっと早くに投稿するつもりだったのですが、前回の投稿後に始めたリングフィット アドベンチャーがハードすぎて気力・体力がともになくなって、遅くなってしまいました。

# 方法
今回は、焼き鈍し法で解きます。

焼き鈍し法は、現在の値を少しランダムに変化させて次の値を作ります。(初回は元の値がないので、完全にランダムに作ります。)
作った新しい値から計算されるコストが減少するなら新しい値に移動します。
減少しない場合でも確率で移動したり、しなかったりします。
徐々にその確率を小さくしていくことで、局所解に収束します。

## 実装
optunaで焼き鈍しをする方法は[公式ドキュ

元記事を表示

OTHERカテゴリの最新記事