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

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

最新物理ベースレンダラー Mitsuba2を触ってみる (3) 微分可能レンダリング編

# Mitsuba2とは
アカデミック向けのフリーの物理ベースレンダラー。微分可能レンダリングや偏光レンダリングなどの新機能がある。
この記事は下記の記事の続きになります。

– [最新物理ベースレンダラー Mitsuba2を触ってみる(1) 導入編](https://qiita.com/kurilab/items/34089636fa570d9a7939)
– [最新物理ベースレンダラー Mitsuba2を触ってみる(2) Pythonから動かす編](https://qiita.com/kurilab/items/2ad1dd3d0676c1cf4c74)

Mitsuba2のインストールまで終わっているという前提です。

# 微分可能(Differentiable)レンダリングとは
そのままですが微分情報を伝搬できるレンダリングのことです。
レンダリングのアルゴリズムを関数$f(x)$、入力シーンを$x$、レンダリング結果を$y$としたとき、下記が成り立ちます。

“`math
y = f(x)
“`

微分可能なレンダラーでは、この関数$f$を微分して$\frac{dy

元記事を表示

Pandasの基礎

# Pandasとは
PandasはPythonの拡張モジュールで、データ解析を支援する機能を提供してくれます。
AIを作るにも事前のデータ解析が重要ですが、Pandas(+Jupyter Notebook)があればとても便利に解析できます。
また、人工知能フレームワークの入力に使われていたりますので、人工知能を勉強する上で使い方を知っておくことは重要です。

ここでは、Pandasでできることをまとめています。

# Pandasのインストール
pipを使えば、以下のコマンドでPandasを簡単にインストールすることが出来ます。

“`
# pip install pandas
“`

# Pandasのインポート
以下の「おまじない」でPandasの使用が可能になります。省略名は「pd」にすることが多いようです。

“`python
import pandas as pd
“`

以降のコードは、上記の「おまじない」が実行済みであることを前提に記述します。
また、[NumPy](https://qiita.com/mochidan/items/50a18a663aa97f6

元記事を表示

kaggleを題材に、機械学習モデルの精度比較をしてみた

#1.目的
基本的なpythonのプログラミングを習ったら、kaggleに取り組んでみましょう!その時、kernelを参考にしてみましょう!という記事や本が多いと思いますし、実際、めちゃくちゃ力が付くやり方だと思います。

ただ、本当の初心者の自分からしたら、**「kernel読んでも難しすぎて意味がわかんない・・」**と思ったり、**「いや、そんな高度な技術じゃなくて、とりあえずベーシックな機械学習モデルを作ってみたいだけなのに・・」**と思うことが多く、なかなか自分の身になりづらいなと感じました。

そこで、この記事では様々な機械学習モデルを、**「超ベーシックなやり方」「ちょっと工夫したやり方」**というように、**少しずつレベルを上げることでどれくらい精度は変わるのか?を検証していきたい**と思います。
そうすることで、**「なるほど、超ベーシックな機械学習モデルの作り方ってこうやるのか」「もう少しレベルを上げるにはどうすればいいんだろう」と自分が学んだことを共有させていただく場にすること**がこの記事の目的です。

#2.導入
##(1)使用するkaggle(分類問題)
私の

元記事を表示

新型コロナ感染箇所マップを作ってみる【FastAPI/PostGIS/deck.gl(React)】(データ加工編)

新型コロナ…感染拡大が止まらないですね…

駆け出しGIS屋としては何かしらのデータを地図上に乗せて可視化したいなーとは思っていたんですが、公開されてるデータって大抵がPDFなんで収集するのめっちゃめんどいやん…と尻込みしていました。

が!!!!!!

非営利目的であればデータの複製・引用・転載自由で素晴らしいデータを提供してくれているサイト様([https://gis.jag-japan.com/covid19jp/](https://gis.jag-japan.com/covid19jp/))を見つけたのでこのデータを使って地図上に表現していきたいと思います!!xf

今回は勉強がてらに多少冗長な構成(docker-composeでアプリケーションサーバーとDBサーバーを立ち上げて、わざわざGeoJSONをAPIで配信するなど)になっています。

# データの取得

早速データを見てみましょう!

上述のサイトにアクセスし、左上の`csv`のリンクをクリックします。

![スクリーンショット 2020-03-30 7.40.44.png](https://qiita-image-

元記事を表示

PythonでRiccati代数方程式の解法を実装する

# Riccati代数方程式(ARE)とは
以下の式。ただし$A,Q,P\in \mathbb R^{n\times n},B\in \mathbb R^{n\times m},R\in \mathbb R^{m\times m}$であり、Q,Rは正定値対称行列とし、$A,B,Q,R$が与えられ$P$を求める。

$$
A P + P A^T + Q – P B R^{-1} B^T P = 0
$$

## AREが出てくる場面野、例
現代制御理論のLQRでゲインを求める際に出てくる。LQRとは最適制御理論で、システムが
$$
\frac{dx}{dt} = Ax+Bu
$$
と表すことができるとき、$\min J=\int (x^TQx +u^TRu) dt$を満たす制御則は上のRicati代数方程式を満たす$P$を用いて
$$
u=-R^{-1}B^TPx
$$
と書けるという話。

# 解く
## 方針
有本・ポッターの方法(次項で解説)を実装して解くこととする。その際行列の固有値問題を解くことになるが、これはnumpyなどを用いる。

## 有本・ポッターの方法
手順を説明す

元記事を表示

多倍長演算の活用②

# 多倍長演算の活用②
Python の多倍長演算を活用する方法の第 $2$ 弾です。 前回の記事 では、多倍長整数の各bitをフラグと見て処理する方法を説明しました。この記事では、いよいよ整数を要素に持つ配列の演算を扱います。 ここからが本番です。 最後まで読んで頂けると嬉しいです。

後半では形式的べき級数との関係についても紹介します。

## 整数と配列の対応
多倍長整数を $k$ bitごとに区切って、それぞれが $k$ bit の非負整数を表していると見ることを考えます。なお文字 $k$ は、コード中も含めこの記事を通して常にこの意味で使います。

具体的には、 $0$ 以上 $2^k$ 未満の要素からなる配列 $A = [a_0,\ \ldots,\ a_{N-1}]$ について、対応する整数を
$${\rm number}(A) = \s

元記事を表示

【Python】classを使って競プロ用ライブラリを作りたい!【超初級】

 やだやだやだ作りたい作りたい作りたい~~~~~!

##この記事の目的

 競技プログラミングでは、問題を解くうえで便利なデータ構造というものがいくつかあります(セグメント木、UnionFind、優先度付きキューなどなど……名前だけは聞いたことのある方もいるのではないでしょうか)。これらのデータ構造は、**ライブラリ**として作成しておくと、使いたいときにさっと取り出してパッと使えるので非常に便利です。
 このライブラリ、Python では **class** を用いて作成することが多いのですが、class には機能が多く、イチから学ぶのは結構大変です。そのくせ、「競プロのライブラリを作る」という場面ではほとんど使わない機能も多いです。(継承、ゲッター/セッター、…)
そこで本記事では、class で競プロライブラリを作成するのに最低限必要な要素のみに絞って紹介したいと思います。
 さらに細かい仕様や機能については書籍[^1]や[公式ドキュメント](https://docs.python.org/ja/3/tutorial/classes.html)をご覧ください。

[^1]:

元記事を表示

rpmパッケージング

#rpmパッケージング
Qiita初投稿です。
今回の記事はrpmパッケージングについての備忘録的なもの、!
大きな枠組みを理解できればなという感じで記述しました。
細かいところはまた別の記事にまとめる!(つもり、、、)
間違っていることがあったらどんどん突っ込んでくださいまし。

##そもそもrpmパッケージングってなにもの、?
rpm –>> RedHat社が開発したソフトウェアのパッケージ管理システム
パッケージング –>> アプリケーション(?)などを開発した時にどのような環境でも使用できるように必要なものをひとまとめにすること
こんな感じですかね。
まぁrpmパッケージングをすることによって作成物を簡単に配布し、どのような環境でも簡単に使用できるという恩恵を受けられる訳ですよ。
これは使ってみるしか、!ということで早速どのような構造になっているのか見てみましょう!

##ディレクトリ構造

[ディレクトリ①]

““`
rpmtest
├──BUILD
├──BUILDROOT
├──Makefile
├──README.md
├──RPMS

元記事を表示

dict in dict な dict を dict にする

表題の件に付きまして、python初心者が実装しましたので報告いたします。
そもそも、dict in dict な dict とは、以下のようなdictのことです。

“`json
{‘name’: ‘2M2VgARX’, ‘js’: {‘a’: 0, ‘b’: 0, ‘c’: ‘sdmo’}}
“`

in しているdictのキーとin されているdictのキーは、合わせても一意なので、一つの辞書にまとめたいなーと思い、そんな関数を作ってみました。

変換後イメージ

“`json
{‘name’: ‘2M2VgARX’, ‘js_a’: 0, ‘js_b’: 0, ‘js_c’: ‘sdmo’}
“`

標準関数がありそうですが、自分の検索能力が低いため、
見つからなかったことはご了承下さい。

## 実装

“`python
import secrets
import string

def dict_extract(item, prefix=”):
return_dict = {}
for key, value in item.items():

元記事を表示

REAPERで時間ソートしてラベル付け

#はじめに
REAPERでアイテムの名前を一括で変えるスクリプトはもとからあったので使っていたのですが、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96808/02754ae6-3c3a-b2db-dbc6-8416ef2e5171.png)

トラックが分かれていると、それぞれのトラックごとに名前を流し込む感じだった。
一つのトラックでわけたものならよかったけど・・・

気づいた時にはトラック分けてしまっていた。

ので、
時間順で名前を流し込むようなスクリプトを書いてみた。

# 全体の流れ
1.選択アイテム数を得る
2.選択アイテムを得る
3.カレントテイクを得る
4.カレントテイクの開始時刻とテイクを得る
5.時間で並び替える(ソート)
6.ダイアログで、リネーム用の文字を得る
7.ボタンが押されたらリネームする

#入力ダイアログ

Python tkinterを使いました。
こんな画面がでます。

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

元記事を表示

重回帰分析の原理原則

#はじめに
前回の記事では、回帰分析の1つである[単回帰分析](https://qiita.com/yottyann1221/items/d2a5e883993bc4957473)について書きました。
この記事では、変数同士の相関関係から変動を予測することができる重回帰分析について書きます。

#重回帰分析はどのような時に使われるのか。
重回帰分析は、マーケティングで使われる分析手法のひとつです。複数の変数を持つデータの関連性を明らかにします。
例えば、**店舗面積/従業員数/商圏人口/広告費**から、**来客数**を予測したり、
他にも、**部屋の広さ/駅からの距離/犯罪発生率**から、**家賃**を予測します。
このように、複数の要因から1つの値を予測するときに、重回帰分析を利用します。

また、重回帰分析では、それぞれの**要因が予測したい値に与える影響度合を数値で表現できます**
そのため、**要因分析**としても使われます。**店舗面積/従業員数/商圏人口/広告費それぞれが、来店客数を増やす要因なのか、減らす要因なのかが分かります。**
要因分析をすることで、来店客数を増やす

元記事を表示

Pythonで毎日AtCoder #21

### はじめに
[前回](https://qiita.com/taxfree_python/items/80b68114296a3be48c68)
今日は麻雀で負けまくったので萎えています。
ABCのAを全部埋めます。

### #21
[問題]
(https://atcoder.jp/contests/arc015/tasks/arc015_2)
2WA

**考えたこと**
思考停止で場合分けしました。未満と以下、以上をしっかり確認して実装しないと痛い目をみます()。

“`python
n = int(input())
temp = [list(map(float,input().split())) for _ in range(n)]
ans = [0] * 6
for i in temp:
if i[0] >= 35: #猛暑日
ans[0] += 1
elif 30 <= i[0] < 35: #真夏日 ans[1] += 1 elif 25 <= i[0] < 30: #夏日 ans[2] +=

元記事を表示

AWSのLambdaでタグのついているインスタンスの情報を辞書形式で取得する方法

EC2インスタンスを[自動起動](https://ponsuke-tarou.hatenablog.com/entry/2020/02/18/100804)したり[自動停止](https://ponsuke-tarou.hatenablog.com/entry/2020/03/30/000120)したりするLambdaをつくるときに使います。Lambdaをつくってもすぐに忘れるので残します。

# Lambda関数
– ランタイム : Python3.8

“`py
# -*- coding: utf-8 -*-

from __future__ import print_function

import boto3

# インスタンスがあるリージョンを指定する
REGION_NAME = ‘us-east-2’
# インスタンスの状態をリストで指定する
STATE_LIST = [‘running’,’stopped’]
# インスタンスにつけているタグの名前をリストで指定する
TAG_LIST = [‘Name’,’AutoStop’]

def get_instance_lis

元記事を表示

Djangoで、WEBアプリケーションを作ってみた

#はじめに
本記事は、Djnagoで、WEBアプリケーションを作成したした際の備忘録として書いたものである。

#前提条件

* OS環境は、Virtualboxで稼働中のCentOS8.1です。以下、OS詳細情報となります。

“`php
# cat /etc/centos-release
CentOS Linux release 8.1.1911 (Core)
“`

* 本記事では、AdminLTEを用いたTOPページの作成及びログインユーザのみのアクセス制限をDjangoで実装した内容です。
それを全5章分の記事にまとめました。

#実施手順

[①Django 環境構築](https://qiita.com/yes_dog/private/37e7819082b9ce683b46)
[②Django 環境設定&管理者サイト表示](https://qiita.com/yes_dog/private/3f105234be3772e02d28)
[③Django アプリケーション設定](https://qiita.com/yes_dog/private/54187f8c67

元記事を表示

ニューラルネットでの簡単な分類モデル

前回に引続き、ニューラルネットについての勉強をしてみました。

今回は、簡単な分類モデルの構築に挑戦。
以下の2つの変数を準備します。

“`math
0 \le x_1,x_2 \le 1
“`

そして、2つの和によって、以下のような分類をしてみる。

“`math
t(x_1,x_2) =
\left\{
\begin{matrix}
0 & (x_1 + x_2 < 1) \\ 1 & (x_1 + x_2 \ge 1) \end{matrix} \right. ``` こんなシンプルなモデルを実装してみます。 0層??のニューラル考え方としては、以下の数式を検討します。 ```math y(x_1,x_2) = \sigma(w_1 x_1 + w_2 x_2 + w_0) ``` ただし、σはシグモイド関数で、そのアウトプットは[0,1]に限定されます。これが本当特徴的で、y<0.5なら分類A、y>0.5なら分類B、のような意味を持たせているようです。実はこれって結構肝の部分な気がします。ニューラルネットでは、w1,w2,w0を調整することで、答えを出すような

元記事を表示

ウイイレのデータ集計自動化してみた Part4

# ウイイレのデータ集計自動化してみた Part4
### ~WEBアプリケーション化してみよう!の一歩目!~

## ■はじめに
* どうも[ヤジュン](https://qiita.com/junya0001000/items/ccb673ba7c07a57e6d8a#%E8%87%AA%E5%B7%B1pr)です。
最近本業が忙しくて、記事を書くことができませんでした…(ださすぎ)
今回の記事は、 **作成してきたソフトの「WEBアプリケーション化」を目指した一歩目の軌跡** を紹介します。
※本記事は[シリーズもの](https://qiita.com/junya0001000)なので、前回記事と読み合わせることをお勧めします。
※本記事のソフトは、Pythonで作成しています。[■参考URL](https://qiita.com/junya0001000/items/036b3e612aeca21c013d#%E5%8F%82%E8%80%83url)

## ■目的
* WEBアプリケーション化の第一歩として、

元記事を表示

Progate Python編 (2)

ProgateのPythonを全て終えたので感想を書きます。
正直少しでも他の言語をかじっていれば、まあまあ簡単にできるのではないでしょうか?
今度からは、Railsチュートリアルをやっていく予定です。

元記事を表示

Poetry – Pipenv の代替

(追記 7000 秒ほど頑張ったが Resolving dependencies が終わらなかったので利用を諦めました。なんだこりゃ!)

Python の環境作成に今まで Pipenv という物を使っていた。node で言うと npm みたいな物だ。これがあまりにも遅いと苦情が出たので違うやつを探していたところ、検索すると Poetry https://python-poetry.org/ が比較的メジャーっぽい事が分かったので使ってみる。

Poetry とは、ある Python プロジェクトに必要なライブラリを簡単に準備する仕組みだ。他の Python プロジェクトと混ざらないように閉じた環境を作ってその中にライブラリをインストールする。Python 自体の実行ファイル選択には pyenv という別の仕組みを使う。Node の NPM と比較すると次のようになる。

* 閉じた環境の作成:
* Python: `poetry install` で環境を作成してライブラリをインストールする。
* ライブラリ本体は Virtual environment p

元記事を表示

AWSアカウント作成時にSecurity Hubのマルチアカウント設定を行う

## Security Hub のマルチアカウント設定
[AWS Security Hub](https://aws.amazon.com/jp/security-hub/) は AWS環境全体のセキュリティとコンプライアンスの状況を確認可能なサービスです。
Security Hubでは、特定アカウントをマスターアカウントとし、他のアカウントを招待して
マルチアカウントの親子関係を組むことができます。
以下のようにマルチアカウント設定を行うと、メンバーアカウントの結果をマスターアカウント側で
確認できるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/7e8f9b73-2d2f-3c05-9aa6-35735eadc2a4.png)
この時、マスターとなるアカウントは AWS Organizations のマスターアカウントである必要はありません。
また組織外のアカウントを招待して連結することも可能です。
通常、セキュリティ用のアカウントを用意し、そちらに統合

元記事を表示

networkxによるポケモンのゲームタイトルプレイ傾向の可視化

# はじめに

とあるポケモン研究者が作成した、
**ポケモンらしさアンケート**の結果分析をお手伝いすることになった。

今回はアンケート回答者が遊んだ“ポケモンのゲーム18作品のプレイ傾向の可視化“を**networkxライブラリ**で行った件についての記事である。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
お手伝いしたポケモン研究者の
**「ポケモンらしさ」についての研究記事その1**
https://pkmnheight.blogspot.com/2020/03/1.html
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

> 対象の18作品
1. ‘赤/緑/青 Red/Blue’
2. ‘ピカチュウ Yellow’
3. ‘金/銀 Gold/Silver’
4. ‘クリスタル Crystal’
5. ‘ルビー/サファイア Ruby/Sapphire’
6. ‘ファイアレッド/リーフグリーン FireRed/LeafGreen’
7. ‘エメラルド Em

元記事を表示

OTHERカテゴリの最新記事