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

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

HomeAssistantでスマートホームの開発

#目的

とにかくインテリジェントなスマートホームを実現する。
既に、以下の様なシステムを構築実現している。随時解説して行きたいと思う。

– 家電制御(Googleスマートスピーカ・iOS Siriとの統合)
+ Home Assistantがしゃべる?!笑
– クラウド連携(IFTTTとの連帯)
+ IFTTTの呼び出し
+ Tuya Device(Smart Life)との連帯動作
– クラウド連帯(独自クラウドとの連帯・MQTTリレー)
+ セキュリティを考慮したクラウドMQTTとローカルMQTTの連動動作 
– IoTセンサー統合(433GHz帯センサー統合) ※海外限定
– IoTセンサー統合(Bluetooth BLE)
– 深層学習認識AIとの統合(物を見分けて防犯。AIスマートホーム)
– 戦略的AIとの統合(最適条件への家電の統合)
+ STRIPS型AIとの統合動作
+ 深層学習型AI(DQN)との統合動作
+ Anomaly Detection (普通じゃない?!の検出)
– 防犯システムの構築
+ 監視カメラの統合
– 電話との統合(音声電話と

元記事を表示

【Django】ModelFormにてあらかじめ入力値を与える方法

##ModelFormとは
ModelFormとはdjango.forms.Modelformで呼び出すことができるあらかじめ用意されているインスタンス。このインスタンスを継承したFormクラスを作成することで、Models.pyに定義したテーブルをそのままに参照できる。つまり、ユーザーからのフォーム入力によってデータベースへの登録や更新を行いたいときに用いられる。

##今回のテクニックはどこで使うのか?
例えば「タイトル、現在時刻、作成者」をフィールドに持つデータモデルについて、ユーザからのフォーム入力を実装するとき、わざわざ現在時刻と作成者をユーザにうたせる作業はUXを下げてしまう。そういった、ユーザにわざわざうってもらう必要のない情報や自動的に情報を与えたいときなどにフォームに初期値を与えて、該当するフィールドを非表示(Hidden)にしてしまう方法によって実現できる。

##まずテンプレート上での非表示の設定の仕方
“`python:forms.py
from django import forms
from .models import Event

class Eve

元記事を表示

ビジネスで使えるPythonを使った統計的データ分析手法まとめ

# 概要
WEB系のサービスで色々な試作を実施した後に効果を検証するのは非常に重要だと思いますが、
そのやり方として基本的な統計学が十分に使えると思っています。
今回は基本的な統計学からビジネスで使える試作の効果検証、データ分析を目的にPython+JupyterLab(Docker)を使った統計的データ分析のやり方をまとめました。

また今回使ったnotebookは以下にもありますのでご参考ください。
https://github.com/hikarut/Data-Science/tree/master/notebooks

# 環境
以下を参考にDockerでJupyterLabが使える状態を前提とします。
[Dockerで起動したJupyterLabでvimキーバインドを使う](https://qiita.com/hikarut/items/ec2ba860f5bcfc0d05d3)

# 分析手法まとめ
|-|質的説明変数
(2分類)|量的説明変数
(量と質を含む複数の場合も)|
|:–|:–|:–|
|**量的アウトカム(数値的)**|平均値の差をt検定

元記事を表示

新型コロナウイルスの都道府県別の効果的再生産数のランキングを出してみる

# はじめに
 新型コロナウイルス感染症(COVID-19)に関連して、2020年3月19日、[専門家会議による状況分析と提言](https://www.mhlw.go.jp/content/10900000/000610566.pdf)が出されました。その中で、実効再生産数(感染症の流行が進行中の集団のある時刻における、1人の感染者が生み出した二次感染者数の平均値)に関する分析結果が示されています。北海道では2月中旬からおおむね1を下回る値となっており、収束に向かっているとの見解でした。
 [先日書いた記事](https://qiita.com/oki_mebarun/items/e68b34b604235b1f28a1)では、単純化したモデルで計算した結果を示しましたが、その時の分析結果でも、おおむね1を下回る点で一致しており、答え合わせが出来たのではないかと思います。ただし、北海道大学の西浦先生の分析では、最尤推定を使ったより精密な分析のようです。恐らく、[こちらの論文](https://www.ism.ac.jp/editsec/toukei/pdf/54-2-461.pdf)

元記事を表示

【Python】ABC133B【AtCoder】

プログラム初心者がつまずきそうな箇所。
重複なしの2重ループ。
俺はこれ系の問題を`右上三角形問題`と勝手に定義しているw

#[ABC133B](https://atcoder.jp/contests/abc133/tasks/abc133_b)
添字とかあると問題理解するのが大変・・・
とりあえずD次元とかいわれても想像できないので2次元でイメージする。
要は
①異なる2点間の距離の組み合わせすべて計算して
②それぞれの距離が整数かどうか
を調べればおk

##①異なる2点間の距離の組み合わせすべて計算
スクリーンショット 2020-03-21 6.20.34.png
右上の三角形(黄色の部分!)の距離を調べればよい!だから`右上三角形問題`!!!
(A点とB点、A点とC点、・・・D点とE点)
コードにするとこ

元記事を表示

heatrapyに熱伝達+温度で入熱できる機能を追加する

## やったこと
heatrapyでの一次元非定常伝熱解析で熱伝達率と温度で入熱出来る機能を追加しました。
もともと、任意の位置への入熱は出来る仕様なので、それを利用しました。

## 改修点

– system.pyのclass single_objectをいじってます

set_input_heat_transferで入力条件をセットして、computeで計算する際に熱を入れていきます。時間毎の温度差に応じて、各々の時間ステップで入熱しています。

“`henko.py
class single_object(object):
def __init__(self, amb_temperature, materials=(‘Cu’,), borders=(1, 11),
materials_order=(0,), dx=0.001, dt=0.1, file_name=’data.txt’,
boundaries=(0, 0), Q=[], Q0=[], heat_points=(1, -2),

元記事を表示

adafruit PyBadge for MakeCode Arcadeとやらを衝動買いしたので使ってみる

[カードサイズのマイコンボード「Adafruit PyBadge」が入荷、MakeCode ArcadeやArduinoでプログラミング](https://akiba-pc.watch.impress.co.jp/docs/news/news/1240938.html)

って記事を見て、

ゲームウォッチみたいじゃね?

って思いつつ、秒でポチってました。
Pythonとかarduinoで動くなにかなんだろうな、ってとこしかわかってません。

そんな予備知識でとりあ

元記事を表示

【Python】Atomで競技プログラミング用の環境構築【Mac】

Atomで競プロに必須の標準入力
`input()`
が使用できるPythonの環境構築の情報がググってもあんまりなかった…
ので記事にしてみます!
ちなみにMacです。Windowでもできるかは不明!

#python3のインストール
[公式サイト](https://www.python.org/downloads/)からダウンロード
#atomのインストール、初期設定
以下の記事が参考になりました!
[atom・pythonで競技プログラミングのテスト環境構築](https://qiita.com/crukky/items/73c1322f5929b1ca5834#%E5%8F%82%E8%80%83%E8%B3%87%E6%96%99)
#その他やる事
ホームディレクトリ(同階層にはダウンロードとかデスクトップとかある)に
「python」というフォルダを作ってそのフォルダ内に

– input.txt
– test.py

の2ファイルを作る。
これで準備完了。
イメージはこんな感じ↓
スクリーンショット 2020-03-21 4</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Python</div>
<div class='tag-cloud-link'>ATOM</div>
<div class='tag-cloud-link'>ターミナル</div>
<div class='tag-cloud-link'>Python3</div>
<div class='tag-cloud-link'>競技プログラミング</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/rudorufu1981/items/5168ae41025d56fe7ecd'>元記事を表示</a></div>
<h3 id=Jupyter Notebook 使い方基礎

#Jupter Notebook概要

本記事では対話型シェルのうち最も広く使われていると思われるJupyter Notebookの基礎をメモします。

対話型シェルは以下の様な点からコーディング環境に優れている。

1. コマンドの履歴を簡単に追える
2. インプットとアウトプットが簡単に反映、確認できる (グラフ、画像の組み込みも容易)
3. コード内容の説明が容易

Jupter NotebookではUI elementやHTML, JavaScriptに至るまでウィジェット機能を用いることでコードファイル内に組み込むことができる。

インストール方法参考 -> [図解!Jupyter Notebookを徹底解説!(インストール・使い方・起動・終了方法)](https://ai-inter1.com/jupyter-notebook/)

#Cell Type

Jupter Notebook上では以下のようなCell Typeが選択できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

Nimpyでnimからpythonを呼ぶ

# 概要
前提として。
Nimの開発案件が立ち上がったが、統計処理を簡単に扱いたい要件があるのでpythonを気軽につかいたい需要が生まれたのでnimpyでなんとかならないか技術要求が生まれた。だがいろいろ辛かったのでそれについてまとめた。苦心した人の助けになれば。という記事です。

# nimpyとは
> Native language integration with Python has never been easier!

nimからpythonよんだり、pythonからnimをよめるインターフェイスを提供するライブラリです。
pythonからnimをよぶ事例はたくさんみつかったけど、nimがpythonよぶ実例がなかったので試してみた。というか必要になったので試してみた。
どうやら `pyImport` で呼べるようだ。

# pyImport
nimpyは `nimble install nimpy` すると以下のように標準にインストールされたpythonモジュールが利用できる。(macではなぜかnumpyが標準モジュールで入っている)

“`nim
pyImport(

元記事を表示

Python はじめから勉強 Hour4:オブジェクト指向①

# Python はじめから勉強 Hour4:オブジェクト指向①

* Pythonで何かしようとしたときに、まずサンプルスクリプトを探してなんとなく実行してた私が、
* 自動実行でREST API叩いて、結果の確認、VM操作までやってみたいと思う7時間
* 今回はオブジェクト指向。まぁ意味は分からずともメソッド使えればいいんじゃないでしょうか。

## 学習資料

* たった 1日で基本が身に付く! Python超入門
* https://a.r10.to/hbHMiv

## 過去の投稿

* [Pythonはじめから勉強 Hour1:Hello World](https://qiita.com/matsumo2019/items/5a69381f44456e6e6a5d)
* [Pythonはじめから勉強 Hour2:制御文](https://qiita.com/matsumo2019/items/6daa862fd34c8929fb65)
* [Pythonはじめから勉強 Hour3:関数](https://qiita.com/matsumo2019/items/

元記事を表示

Python と SQLite3 でList と Bool を実装した(個人的メモ)

## まえがき
sqlite3 で JSON を読み込むときにほしかったので作った。忘れないようにメモする

## 実装

Pythonの型をSQLiteで使うために`sqlite3.register_adapter`を使う。
反対に、SQliteからPythonに変換するためには、`sqlite3.register_conveter` を使う。

“`python
import sqlite3

# ユーザ定義型 その1
List = list
sqlite3.register_adapter(List, lambda l: ‘;’.join([str(i) for i in l]))
sqlite3.register_converter(‘IntList’, lambda s: [str(i) for i in s.split(bytes(b’;’))])

# ユーザ定義型 その2
Bool = bool
sqlite3.register_adapter(Bool, lambda b: str(b))
sqlite3.register_converter(‘Bool’, lam

元記事を表示

【matplotlib入門】COVID-19データから終息時期を読む♬

前回の新型コロナのシミュレーションでわかったことがいくつかあるが、よく見るとコロナの感染状況のグラフから、感染のピークを予測可能かもしれないと思わせてくれる。
それは、以下のようなシミュレーションであった。
![pNo1000_R30sec_IP30%.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/1f30cda2-dc44-be47-6567-0322a5e77ce9.gif)
すなわち、赤い棒グラフが感染数、そして緑の棒グラフが治癒数を表しているが、感染数はどこまで増えるか予測は難しいが、治癒数は感染数に上限値を制限されているために、少なくとも感染数を超えることは無い。しかも、治癒率で表すと終息時にはほぼ100%になるものである。しかも、治癒率は感染ピークに比べて必ず遅れてピークとなる。一見、先にピークが来る感染数のほうが終息を見極めやすそうであるが、このピークは必ずしも上限であるかどうかがわからない。
一方、治癒数は50%辺りが感染のピークになり、だんだんその値に近づいて行くと思われ

元記事を表示

Python+OpenCVで品質を指定してJPEG画像生成

### 参考文献

本記事は以下のページを参考にしています。

– [Python cv2.IMWRITE_JPEG_QUALITY() Examples](https://www.programcreek.com/python/example/70397/cv2.IMWRITE_JPEG_QUALITY)

### 1. データ準備
BSDS500というデータセットを使用するため、以下のサイトからダウンロード。

> https://github.com/BIDS/BSDS500
> P. Arbelaez, M. Maire, C. Fowlkes and J. Malik, “Contour Detection and Hierarchical Image Segmentation,” *IEEE TPAMI*, Vol. 33, No. 5, pp. 898-916, May 2011.

今回使用するのは、`BSDS500/data/images`だけなので、必要なもののみ取り出す。
test内のファイルをtrainに移動する。

“`:./data
.
└── BSDS

元記事を表示

4/30まで無料の「機械学習のためのPython入門講座」をオンライン受講してみよう

はいど~も:clap:

今日は「**機械学習のためのPython入門講座**」をオンライン受講してみようと思います。

こちらは **スキルアップAI株式会社** が 一般社団法人日本ディープラーニング協会 と協力しながら展開している、機械学習超初心者のためのオンライン講座です。

本当なら費用5万円程のところ、例のコロナで謹慎中の人々のために **2020/4/30** まで無料で受講できるとのこと!
私も、エンジニアとしては15年ですが機械学習はサッパリなので、真新しい気持ちで受けてみようと思います:yum:

ついでにせっかくなので、この記事もまた、超絶初心者向けに書いて行こうと思います。
※ ここでは、Windowsパソコンをお使いの前提で解説していきます。

# 申し込む

はい、早速まいりましょうか。
こちらがお申込みホームページです。
https://www.skillupai.com/python_jdla/

> 本講座では、Pythonプログラミング未経験レベルから、scikit-learnを用いて機械学習モデルを構築できるようになることを目指します。

???「

元記事を表示

製造現場向けの自動化ツールをPythonで作る時に留意すること

#この記事のモチベーション#
 昨年、生産技術職からデータ分析業に転職し、Pythonを書く機会が多くなりました。今は機械学習用の前処理ツールを開発する案件に携わっています。そんな中、生産技術者として働いていた時のことを顧みると自動化できた作業が色々あったなーと思いました。転職後に得たPythonの知識と生産技術者時代の知見を踏まえて、再び製造現場で働く際に使えそうなネタを記載します。同じようなニーズに直面している方の参考にもなれば幸いです。
 本記事は既存技術を組み合わせてこうしたら良さそう!ということを記載したものであり、技術的に目新しいことがない点を初めに断っておきます。

#自動化する内容#
 生産技術者として働いていた時に工程から出てくるデータを1日の終わりに集約するという作業がありました。製造装置のログや検査結果を製品ごとにcsvファイルで保存し、1日の終わりに集約してその日の進捗率や不良率を確認します。担当工程では、以下の図のように1つ製品を製造するごとに4つのcsvが出力される仕様になっていました。

 ◎ 製造装置の設定値ログ
 ◎ 製造装

元記事を表示

コマンドラインで AtCoder のテストケース取得、テスト、提出までを行う

## はじめに
atcoder-cli, online-judge-tools でターミナル上 (Mac) でテストケース取得、テスト、提出まで行う手順です。

## 事前準備
必要なツールのインストール

“`sh
$ pip3 install online-judge-tools
$ npm install -g atcoder-cli
$ pip3 install selenium
“`

ツールで AtCoder へログイン

“`sh
$ acc login
$ oj login https://atcoder.jp/
“`

## 設定
全部の問題ディレクトリが作られるようにする。例えば、AtCoder Begginer Contest の場合、acc new abcXXX コマンドで a ~ f の問題が作成されるようにする

“`sh
$ acc config default-task-choice all
“`

config ディレクトリの場所を表示

“`sh
$ acc config-dir
“`

テンプレート設定を行う。config ディレク

元記事を表示

LINE BOT(雑談)を作る

#A3RTを使って雑談LINEBOTを作る

前回作成した[LINE BOT(オウム返し)を作る](https://qiita.com/nooonchi/items/8004dfc9deea6c25754b)を改良して、リクルートが提供しているA3RTのTalk APIを使って雑談するBOTを作った。

#(1)A3RTからAPIKEYを取得する
[A3RTのサイト](https://a3rt.recruit-tech.co.jp/product/talkAPI/)で、APIKEYを発行する。

#(2)A3RTの構造を確認する
前回作成したmain.pyを修正する前にA3RTの構造を確認する。
A3RTの構造を確認するために以下のコードを実行して、”おはよう”に対する回答をAIがちゃんと返してくれるか確認する。
まず、仮想環境でpya3rtをインストールして、

“`
pip install pya3rt
“`

以下をターミナルのpythonモードで実行してみる。

“`
import pya3rt

apikey = “**************************

元記事を表示

IBM Cloud Object Storage(ICOS)に付属しているAsperaにSDK(Python版)を用いてファイルアップロードする

IBM Cloud Object Storage(ICOS)にファイルをアップロードする方法です。
今回はICOSに付属しているAsperaに対して、Python版のSDKを用いて操作を行います。

# 使用した環境
* macOS Mojave 10.14.6、Python2.7.10
* Windows7 Ultimate、Python2.7.16

3系でも良いのですが、現状SDKが3.6までしかサポートしていないので2系でチェックしました。

# Python版SDKのセットアップ
こちらを参考にセットアップ下さい。
[GitHub:IBM-Cloud/data-lake/upload/cos-upload](https://github.com/IBM-Cloud/data-lake/tree/master/upload/cos-upload)

pipのセットアップの後に、install.shを実行しますが、
Windows版については、私はファイルの中身を直接コピーして、コマンドを実行しました。

“`sh:install.sh
pip install –upgrad

元記事を表示

1時間でやってみるObjectDetectionAPIで画像解析

version: python 3.7.7
OS: macOS Catalina 10.15.3
tensorflow: 2.2.0-rc1

##  環境構築

python3系を利用します。

pythonのバージョンはpyenvなどを利用し、最新のものをインストールしてください。(pyenvについては他記事を参照してください。)
※今回は3.7.7を利用

pipのインストールとバージョンアップを行います。

“`
sudo easy_install pip

sudo easy_install –upgrade six

sudo pip install –upgrade pip
“`

必要なライブラリをインストールします。

“`
pip install Cython
pip install contextlib2
pip install pillow
pip install lxml
pip install jupyter
pip install matplotlib
“`

TensorFlowをインストールします。
※RC版を

元記事を表示

OTHERカテゴリの最新記事