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

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

ADX2ビルド時にScriptableObjectを作る

#はじめに
UnityでEditorと実行時両方で
ADX2の情報にいろいろアクセスしたく作ってみました。

この記事はおそらく、ちょっと難易度高い(説明不足)です。

#誰向けの情報?

・ScriptableObjectを生成するコードを作りたい人
・ADX2のxml出力をなんとか利用したい人
・pythonでxml解析してc#コード生成したい人

#なぜ作った?
###ADX2標準の方法ではちょっと取り出しにくい情報を得る

実行時にAcbの関数でとれる情報や、ビルド時に出力したcsファイル経由などあるのですが、
必要な情報だけを一か所で管理したかった。

###直接的に得ることのできない情報

– キューのコメント情報
– キューが利用しているブロック名をリストで
– キューが利用しているAISACコントロール名をリストで

などいろいろと何かに使えそうな情報を取り出したかった。

(ここでいう何かとは、社内ツール向けの情報提供)

#何ができるのか?
ADX2でビルド後、
Unity上でメニューから実行すると

![image.png](https://qiita-imag

元記事を表示

【入門】kibanaのインストールから始めるまで

**kibanaは公式のユーザーガイドがとてつもなく分かりやすいので、Qiitaで調べずに公式のユーザーガイドを見よう。(マジでわかりやすい)**

### kibanaユーザーガイド
https://www.elastic.co/guide/jp/kibana/current/install.html

### Kibanaのインストール
https://www.elastic.co/guide/jp/kibana/current/install.html

### kibanaの始め方 及び チュートリアル
https://www.elastic.co/guide/jp/kibana/current/getting-started.html

元記事を表示

DiscordBotを作ったらクラスメイトにパソコン破壊された件

タイトルがすごいですが内容は普通にDiscordBotを作った話です。

###ファイル構成
DiscordBot/
 ├ discordbot.py
 └ img/
  ├ hare.png
  ├ harekumorri.png
  ├ jikoku.png
  ├ kumori.png
 └ downloads

###実行環境
– Windows10Pro
– Python 3.8

“`discord.py
import datetime
import io
import os
import time

import aiohttp
import discord
import requests
import schedule
from discord.ext import commands
from google_images_download import google_images_download
from PIL import Image, ImageDraw, ImageFont, ImageTk

# 自分のBotのアクセストークンに置き換えてください
TOKE

元記事を表示

Flaskとsqlite3で掲示板的なの

勉強のためにflaskとsqlite3を使って掲示板的なのを作ってみました。

###使ったものは

・ Python(3.7.3)
・ Flask(1.1.1)
・ Sqlite3
・ html
・ css
・ Javascript
・ MacBook Catalina(10.15.1 Beta)

###ファイル構成
Pythonserver/
 ├ mess2.db
 ├ app.py
 └ templates/
  └ index.html
  ├ 50moji.html
  ├ start.html
  ├ nokigou.html

###データベースの中身
“`touch“` コマンドで普通にmess.dbを作れます

それから “`sqlite3 mess.db“` コマンドで開ます。
そしてデータベースを以下のコマンドで作ります。
“`CREATE TABLE usermess(id INTEGER PRIMARY KEY AUTOINCREMENT, name text, message text);“`
多分10個なかにデータを入れとかないと動かないと

元記事を表示

強化学習17 Colaboratory + CartPole + ChainerRL

強化学習16まで終了していることが前提になります。
試行錯誤の上、こんな感じになりました。
ポイントはファイルのセーブとロードが直接Google Driveにできることです。
最後のアニメーションの下に表示されてしまう図が消せません。

#Google Driveのマウント

“`
import google.colab.drive
google.colab.drive.mount(‘gdrive’)
!ln -s gdrive/My\ Drive mydrive
“`
#インストール

“`
!apt-get install -y xvfb python-opengl ffmpeg > /dev/null 2>&1
!pip install pyvirtualdisplay > /dev/null 2>&1
!pip -q install JSAnimation
!pip -q install chainerrl
“`
#パラメータ初期化

“`python
gamename=’CartPole-v0′
# Set the discount factor that disc

元記事を表示

Vmware のリソースがdmsファイルで送られてきたのでPythonとcatで見てみた

サーバの仮想環境をvmawareで運用しているお客さんからあらたなサーバの更新に当たって、今のリソースがdmsファイルで送られてきた。

dmsファイル????

参照の仕方がわかればみてくださいとのことで、なんじゃこりゃ??
となった。(医療関係のシステム営業職)

そうだ。

あれだ。

趣味で長らく続けてるPythonの出番だ。

というわけで、ググりながらこんなコードを書いてみた。

“`python:vmread.py

#!/usr/bin/python
# coding: UTF-8

f = open(‘vmware01c.dms’)
#vmware01c.dmsというファイルが送られてきたので、このスクリプトと同じディレクトリにそのファイルを保存。

lines2 = f.readlines()
f.close()

for line in lines2:
print(line, end=” “)
print
“`

そうするとこんな感じで出力。

“`
MacBook-Air% python3 vmread.py
名前,状態,ステータス,プロビジョ

元記事を表示

bpy.context.selected_objectsで選択中のオブジェクトがreturnされない場合

Blenderで、選択中のオブジェクトを返すbpy.context.selected_objectsというコマンド
実行しても返り値が空だったことがあって迷った。

アウトライナ上で、Disable object in the vieportという項目がチェック外れてるとこうなるっぽい。

Blender2.8 自分用メモ

元記事を表示

動画再生時間を表示してみた(OpenCV:Python版)

# きっかけ
とあることをしたいが為に、前の前の前の段階での処理として動画再生時間を表示してみました。

# 開発

“`Python
import cv2
import numpy as np

if __name__ == ‘__main__’:

cap = cv2.VideoCapture(‘one_minutes.mp4’)

cap_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
cap_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = cap.get(cv2.CAP_PROP_FPS)

telop_height = 50

fourcc = cv2.VideoWriter_fourcc(‘m’,’p’,’4′,’v’)
writer = cv2.VideoWriter(‘telop_time.mp4’,fourcc, fps, (cap_width, cap_height + telop_height))

count = 0
try :
w

元記事を表示

【Django】同じappで複数のDBを使用する方法

# 投稿にあたって
* 自分用のメモでもあります。
* Djangoでは単一APPにたいして一つのDBを使用する記事は多く散見しましたが、同じAPPで複数DBを使用する場合の記事が少なかったので備忘録として残します。
* またrest_frameworkを使用した記事となるため主にvalidationでの複数DB使用がメインになります。

# 目標
* rest_frameworkのviewsで複数のDBを参照できる
* rest_frameworkのviewsで複数のDBを更新できる

# 前提
* settings.pyに `default` 及び その他DBがあることを前提とします。
* 下記例です。

“`python

DATABASES = {
‘default’: {
‘ENGINE’: ‘your_engine’,
‘NAME’: ‘database1’,
‘USER’: ‘your_user’,
‘PASSWORD’: ‘your_passwd’,
‘HOST’: ‘1

元記事を表示

二項係数のmod10^9+7

# はじめに
[「1000000007 で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜](https://qiita.com/drken/items/3b4fdf0a78e7a138cd9a#5-%E4%BA%8C%E9%A0%85%E4%BF%82%E6%95%B0-ncr)
こちらの資料の **5. 二項係数 nCr** のコードをPythonに書き換えたものになります。
(drkenさんいつもありがとうございます)

# コード
“`python
MAX_NUM = 10**6 + 1
MOD = 10**9+7

fac = [0 for _ in range(MAX_NUM)]
finv = [0 for _ in range(MAX_NUM)]
inv = [0 for _ in range(MAX_NUM)]

fac[0] = fac[1] = 1
finv[0] = finv[1] = 1
inv[1] = 1

for i in range(2,MAX_NUM):
fac[i] = fac[i-1] * i % MOD
in

元記事を表示

【Python】リストの値を順番に出力する方法

## サンプルコード

“`python
l = [1, 2, 3, 4, 5]

[print(i) for i in l]
# => 1
# 2
# 3
# 4
# 5
“`

## 参考

– [【Python】リスト要素を並べて表示する|東雲あずら|note](https://note.mu/azura35/n/ndf3194de0a74)

元記事を表示

【Python】リストから重複している値を削除する方法

## サンプルコード

“`python
some_list = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

# setに変換してからlistに変換し直す
uniq_list = list(set(some_list))

print(uniq_list)
# => [1, 2, 3, 4, 5]
“`

## 参考

– [Pythonでリスト(配列)から重複した要素を削除・抽出 \| note\.nkmk\.me](https://note.nkmk.me/python-list-unique-duplicate/)

元記事を表示

【Python】文字列を1文字ずつのリストにする方法

## サンプルコード

`list`の引数に渡すだけ。

“`python
chars = list(‘aiueo’)

print(chars)
# => [‘a’, ‘i’, ‘u’, ‘e’, ‘o’]
“`

## 参考

– [python、rubyで文字列を1文字ずつのリストにする \- 雑多なメモ置き場](http://y0m0r.hateblo.jp/entry/20130601/1370077334)

元記事を表示

【Python】10進数を2進数、8進数、16進数に変換する

## サンプルコード

`bin`, `oct`, `hex`を使用する。

“`python
num = 100

# 2進数に変換
bin(num) # => ‘0b1100100’

# 8進数に変換
oct(num) # => ‘0o144’

# 16進数に変換
hex(num) # => ‘0x64’
“`

もし`0b`, `0o`, `0x`のようなプレフィックスを除きたい場合は`[2:]`を末尾に追加すればいい。

“`python
num = 100

# 2進数に変換
bin(num)[2:] # => ‘1100100’

# 8進数に変換
oct(num)[2:] # => ‘144’

# 16進数に変換
hex(num)[2:] # => ’64’
“`

## 参考

– [python \- How can I make \`bin\(30\)\` return \`00011110\` instead of \`0b11110\`? \- Stack Overflow](https://stackoverflow.com/questions/

元記事を表示

【Python】文字列を反転させる方法

## サンプルコード

“`python
# 反転させたい文字列
str = ‘12345’

# 文字列[::-1]とすれば反転できる
rslt = str[::-1]
print(rslt)
# => ‘54321’
“`

## 参考

– [Python で文字列反転 \- 似非プログラマの覚え書き](https://redcat-prog.hatenadiary.org/entry/20111104/1320395840)

元記事を表示

FE(ファイアーエムブレム)に性差別はあるのかリターンズ~機械学習を添えて~

 FE(ファイアーエムブレム)[風花雪月](https://www.nintendo.co.jp/switch/anvya/pc/index.html)が発売されたことを記念して、自分のブログに書いた[記事](https://deux-hibi.hatenablog.com/entry/2018/10/22/205017)のリメイクをします。FEというゲームのシリーズで、**ユニットの成長率から性別を推定しよう**というものです。多変量解析とは何か、シリーズ間でどのような標準化を行ったか、という点は[過去記事](https://deux-hibi.hatenablog.com/entry/2018/10/22/205017)を見ていただくとして、今回は

– 風花雪月のユニットを追加
– 統計手法の追加

 の2点によりリメイクを行いました。また、コードも載せるのでQiitaに媒体を移します。

# 風花雪月のユニットを追加

 csvの形で全ユニットの名前、登場シリーズ、性別、成長率をまとめております。githubリポジトリは[ここ](https://github.com/hibit

元記事を表示

気象×Ruby 〜Mechanizeを使ってRubyスクレイピング〜

#今回の試み
###・ 気象データAMeDASの10分ごとの値を一気に取得する
###・ PythonとRubyの両方でスクレイピングしてみる

スクレイピングするデータは[こちら](https://www.data.jma.go.jp/obd/stats/etrn/view/10min_s1.php?prec_no=44&block_no=47662&year=2019&month=01&day=01&view=p1)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354874/13bf9771-17c0-c790-a403-251492816bfa.png)

#1. Pythonによるスクレイピング
“`python
# -*- coding: utf-8 -*-
import pandas as pd
import urllib.request
from bs4 import BeautifulSoup

url = ‘https://www.data.jma.go.jp/ob

元記事を表示

粒子群最適化法

何回か前に遺伝的アルゴリズムをこの記事で書いたんですが、今回はそれと同じような考え方で作られた最適化アルゴリズムを作ってみました。

# 粒子群最適化とは
魚や鳥などが群れを作って移動しているものをよく見ますね。これらの群れは敵を見つけたり餌を見つけたりした場合にも一糸乱れぬ動きで最適な運動を行います。これを関数の最適化に活用してやろうという手法になります。

参考文献はこの辺
[進化計算アルゴリズム入門](https://www.amazon.co.jp/dp/B07DQFVK1H)
[粒子群最適化と非線形システム](https://www.jstage.jst.go.jp/article/essfr/5/2/5_2_155/_pdf)

## 実装
なにも複雑なことはしていなくて、一番単純な感じで実装してます。

“`python:functions.py
import random

# min~maxの間でランダムに数を作る
def randRange(a : float,b : float) -> float:
return a + (b-a)*random.ran

元記事を表示

【Python】文字列中に変数展開する方法

## 条件

Python3.6以上

## サンプルコード

f-stringsを使用する。

“`python
first_name = ‘Taro’
full_name = f’Tanaka {first_name}’

print(full_name)
# => ‘Tanaka Taro’
“`

# 参考
 
– [Python3\.6 から追加された文法機能 \- Qiita](https://qiita.com/shirakiya/items/2767b30fd4f9c05d930b)

元記事を表示

blenderでshape keyにドライバを追加するだけ

以下のページより抽出
https://blender.stackexchange.com/questions/13905/add-driver-for-a-shapekey-via-python

“`
import bpy

obj = bpy.context.active_object
driver = obj.data.shape_keys.key_blocks[‘Key 1’].driver_add(“value”)
“`

自分用メモ

元記事を表示

OTHERカテゴリの最新記事