- 1. リモートカメラシステム(MQTT ブローカーの検証)
- 2. ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data’
- 3. python3 リスト内包表記のデバッグ
- 4. GCPのCloud ShellのPython2.7.16をPython3.7.3に移行する
- 5. AtCoder参加記録 No.2 ーABC214
- 6. AtCoder参加記録 No.1ーABC195
- 7. AtCoder参加記録 No.0
- 8. pythonを使ってnetatmoのapiを叩く
- 9. 多くのPythonコードに型アノテーションしてみたので色々所感を書いてみる
- 10. SitarHarmonicsさんが書いた「物体の動き」を可視化する処理に、一般物体認識器の解析結果を重ねて表示するコードをMP4動画で動かして成功した件
- 11. 【ソース公開】コロナが怖いので冷蔵庫で生存報告するシステム作った
- 12. OpenAI Gymで環境を自作しKeras-RLで強化学習させてみた
- 13. SESAME3をWEB API経由で操作する
- 14. フィボナッチ螺旋をPython3+matplotlibで描く
- 15. Tkinterでダイアログをカスタマイズする方法
- 16. Python で文字列の末尾の改行を削除する
- 17. pythonでネタ進捗バーを作ってみた。
- 18. Pythonのバージョンを簡単に切り替えられる!pyenvのチートシート
- 19. 【PyPI 】Pythonの自作ライブラリをpipに公開する方法
- 20. データサイエンスでコンサルティング
リモートカメラシステム(MQTT ブローカーの検証)
次のシステムを構築するための検証です。
[Grove IoT スターターキット for SORACOM で作るリモートカメラシステム](https://qiita.com/ekzemplaro/items/541b82908cec46f6aa7b)>画像の受け渡しが MQTT ブローカー経由でできるか。
>画像ファイルは、計測した数値データと較べて、かなり大きい。以下のプログラムを作成しました。
>jpg を JSON に変換するプログラム
>JSON を publish するプログラム
>subscribe で JSON を受け取るプログラム
>JSON を jpg に変換するプログラムjpg を JSON に変換するプログラム
“`py:jpg_to_json.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# jpg_to_json.py
#
# Aug/17/2021
#
# ——————————————————————
ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data’
### 実行環境
Ubuntu 20.04.2 LTS
Python3.8### 状況
pipenv install コマンドを実行し、仮想環境を作成しようとしたときにエラー“`sh
Creating a virtualenv for this project…
Pipfile: /home/youichi_io/work/Pipfile
Using /usr/bin/python3.8 (3.8.10) to create virtualenv…
⠹ Creating virtual environment…ModuleNotFoundError: No module named ‘virtualenv.seed.via_app_data’✘ Failed creating virtual environment
[pipenv.exceptions.VirtualenvCreationException]:
Failed to create virtual environment.
“`### 思い当たる要因
以前、Anacondaをインスト
python3 リスト内包表記のデバッグ
“`python:python3
def debug(w):
print(f’word:{w}’)
return wlist_debug = [“apple”, “lemon”, None, “cat”, “inu”]
list_debug = [debug(s) for s in list_debug]
print(list_debug)
“`“`text:out
word:apple
word:lemon
word:None
word:cat
word:inu
[‘apple’, ‘lemon’, None, ‘cat’, ‘inu’]
“`
GCPのCloud ShellのPython2.7.16をPython3.7.3に移行する
##GCPでPython3が使いたい!
LINEBOTかLINE NotifyをGCPでPythonを定期で動かして作ろうとしていました。
そこでGCPのCloud Shellを使うことになりました。
###Cloud ShellのPythonのバージョン確認
Cloud ShellのPythonのバージョンを確認してみると…“`shell:cloud_shell
$ python -V********************************************************************************
Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
See https://cloud.google.com/python/docs/python2-sunsetTo suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command wil
AtCoder参加記録 No.2 ーABC214
#ABC214
今回参加したABC214についての参加記録2021年8月14日(土)のAtCoder Beginner Contest 214でした。
https://atcoder.jp/contests/abc214
##結果
A,B問題を正解
レート:16→28 (+12) Highest!
順位:7073/ 8405
時間: A問題53:33 B問題70:09
パフォーマンス:90##詳細
###A問題
[問題](https://atcoder.jp/contests/abc214/tasks/abc214_a)提出コード(AC)
“`python:A問題.py
a = int(input())
if a>=212:
print(8)
elif a>=126:
print(6)
else:
print(4)
“`[提出コード詳細](https://atcoder.jp/contests/abc214/submissions/25045449)
###B問題
[問題](https://atcoder.jp/contests/
AtCoder参加記録 No.1ーABC195
#ABC195
自分のモチベーションと記憶用にAtCoder参加記録を付けることにしました初参加は2021年3月13日(土)のパナソニックプログラミングコンテスト(AtCoder Beginner Contest 195)でした。
https://atcoder.jp/contests/abc195
##結果
A,C問題を正解
レート:0→16
順位:5007/7679
時間: A問題55:58 C問題97:08
パフォーマンス:330##詳細
###A問題
[問題](https://atcoder.jp/contests/abc195/tasks/abc195_a)提出コード(AC)
“`python:A問題.py
m ,h =map(int,input().split())
if h%m==0:
print(‘Yes’)
else:
print(‘No’)
“`[提出コード詳細](https://atcoder.jp/contests/abc195/submissions/20892291)
###B問題
[問題](https://a
AtCoder参加記録 No.0
##挨拶
始めましてこんどうです。
プログラミングもQiitaも初心者ですが自分用に記録をつけようと思います。
AtCoder参加記録を付けるうえでもし参考にする人がいたとき用に自分の経歴について書いておこうと思います。##バックグラウンド
国立大学工学部化学系大学3年生
プログラミングは大学2年の時に趣味で始める
大学2年の後期に[東京大学の公開講座GCI 2020Winter修了](https://gci.t.u-tokyo.ac.jp/gci-2020-winter/)
大学3年生の4月にITパスポート取得
TOEIC 560点取得 (2021年7月)##これまでの学習
プログラミングを始めようと思ったきっかけは、コロナで時間が余ったこと、プログラミングができたらかっこいいな、知識があって損はないよね!というすごく漠然とした理由で学習し始めました。
私は基本的に独学でプログラミングを学習しました。
すらPyや独学プログラマーで言語の基礎を学習したのち、データ分析に興味をもち東京大学で機械学習の講座をしているとのことなので参加しました。
また、[サポーターズ](https:
pythonを使ってnetatmoのapiを叩く
## netatmoとは?
室温とか湿度とかを計測するIoTの機械です。
この機械の中央管理のServerがあり、APIが生えており、こちらのAPIを利用します。
本記事ではAPIをpythonで叩くところまでを実施します。https://www.netatmo.com/en-us
## どのようなデータが取れるのか?
まずは管理画面のスクリーンショットを添付します。
![スクリーンショット 2021-08-13 18.05.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/217551/7ceaddf9-29bf-b533-e059-d2fbd6f48fd3.png)
上の画像はnetatmoの管理画面のスクリーンショットです。
左枠にある、気温、湿度、気圧、CO2濃度、騒音を取得できます。
またこれら追加してAPIの場合には、緯度経度のデータも取得できます。## データ取得の方法
認証はOAuth2が使われてい使われているため、[Netatmo ウェザーステーションのAPIを使
多くのPythonコードに型アノテーションしてみたので色々所感を書いてみる
「JavaScriptをTypeScriptへの移行してみた」的な記事を結構見かける一方で、Pythonの型アノテーション関係で近い移行記事などはあまり見ないので「Pythonで型アノテーションってどうなの?」という点などを雑多に記事にしてみました。
# 今まで型アノテーションを使ってきた状況と規模感・前提など
– お仕事では50万行程度の残存するPythonコードで8割強くらいのカバレッジです。ファーストコミットから7年目くらいなので、Python2系から3系へ移行 → 型アノテーションの利用を本格的に開始…としてきたので途中からの型アノテーションの導入です。
– プライベートでは「[apysc](https://github.com/simon-ritchie/apysc)」と「[numdoclint](https://github.com/simon-ritchie/numdoclint)」というPyPI(pip)登録してある2つのライブラリで型アノテーションしてあります。numdoclintは途中からの型アノテーションの利用の開始、apyscは最初から型アノテーションを使う
SitarHarmonicsさんが書いた「物体の動き」を可視化する処理に、一般物体認識器の解析結果を重ねて表示するコードをMP4動画で動かして成功した件
__前回の記事__の続きです。
__( 前回の記事 )__
https://qiita.com/electronics_diy721/items/114fd7ee50afb8e28d26
__前回__は、SitarHarmonicsさんがウェブサイトで公開しているコードの全体を復元して、動画の各コマに登場する__物体の移動の方向と速さを、線の向きと大きさで可視化して表示__するコードを動かしてみました。
__今回__は、そうした処理と__同時に一般物体認識器を並行処理で走らせる__ことで、動画を再生しながらリアルタイムに__次の3つの情報__を、もとのフレーム画像に書き込んで表示させることに成功しました。
1. __各物体の運動ベクトルの可視化__
1. __各物体の(フレーム画像内での現在)位置を四角枠(矩形)で囲んで表示__
1. __各物体のラベル名を表示__###実行結果
“`bash:Terminal
% python3 mp4_movie_file_motion_vector_with_object_detection.py –file_path
【ソース公開】コロナが怖いので冷蔵庫で生存報告するシステム作った
備忘録がてら
# 目次
1. [きっかけ](#きっかけ)
1. [構想](#構想)
1. [成果物](#成果物)
1. [買ったもの](#買ったもの)
1. [そのほか使ったもの](#そのほか使ったもの)
1. [ラズパイのセットアップ](#ラズパイのセットアップ)
1. [電子工作](#電子工作)
1. [LINE Notifyの登録](#line-notifyの登録)
1. [開発](#開発)
1. [システム構成](#システム構成)
1. [プログラム](#プログラム)
1. [システムの監視](#システムの監視)
1. [システムの自動起動](#システムの自動起動)
1. [さいごに](#さいごに)
1. [参考サイト様](#参考サイト様)# きっかけ
一人暮らしなので
コロナ
↓
人知れず死ぬ
が怖いので危篤状態の検知+生きていることを逐次報告できるシステムを作ろうと思った。
# 構想
やりたいことは
– 自宅にセンサーを取り付けて、24時間検知
– 日常生活の動作から検知できて、シ
OpenAI Gymで環境を自作しKeras-RLで強化学習させてみた
強化学習の勉強のためにゲーム環境を自作してみました。その際、苦労したことをメモとして残します。
#動作環境
今回使用した主なプログラムを下に記載します。
* Windows10Home
* Anaconda 4.10.3
* Tensorflow 2.5.0
* Keras-RL2
* OpenAI Gym
* Pygame 2.0.1#ゲームの内容
今回作成したゲームは「地球帰還ゲーム」です。宇宙船を操縦し地球に帰るだけの**しょぼい**ゲームです。
![ufo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593076/02b09e84-6f4d-9015-3ef8-36712eee954b.png)
左の小さい白い三角形が宇宙船で、右の水色の丸は地球です。宇宙船は上か下に進路を少しだけ変更できますが、速度は変えることができません。宇宙船が画面外に出るか、進路を上げすぎて真上を向くか、もしくは真下を向くと、ゲームオーバー(失敗)です。無事、宇宙船を地球に到達させることができれば、ゲームク
SESAME3をWEB API経由で操作する
いろいろあって会社オフィスの1FにSESAME3を導入しました。
SESAME3+スマホの組み合わせでも十分便利だけど、やっぱりWEB API使いたい!
というわけで始めました。
(1Fだけはスマホで開けてね、って言っても社内から反発ありそうだし…)さほど難解なところもないので、[公式ページ](https://doc.candyhouse.co/ja/SesameAPI)を見ながら進めれば大丈夫です。
(載せたコードもほぼ公式そのままです)## 導入環境
– Raspberry Pi 4
– Ubuntu Server 20.04 LTS
– Python 3.9.6
– [SESAME3](https://jp.candyhouse.co/collections/frontpage/products/sesame3)
– [SESAME3用 Wifiモジュール](https://jp.candyhouse.co/collections/frontpage/products/new-wifi?variant=33274961363007)## WEB
フィボナッチ螺旋をPython3+matplotlibで描く
# はじめに
美しいフィボナッチ螺旋を自分で描いてみたかったのです。
螺旋は、原点Oを始点としてまず右下に伸び、反時計回りに描くようにしました。
# 環境
– Python 3.9.6
– matplotlib 3.4.2
– MacOS 11.5.2# 手法
項ごとに、以下のように処理し、あたかも1本のグラフであるかのように見せています。
1. 90度の弧を描く
2. 各項の値を弧の半径とする
3. 弧を90度ずつ回転させる
4. 弧の中心をオフセットする1本のグラフとして、x・yの変域を細かく設定して描く方法もあるのでしょうが、今回はその方法は採っていません。
# コード
### モジュールのインポートとグラフ周りの設定詳細は割愛。
グラフの範囲は縦横-25から25にしています。draw_areaで定義しています。“`python
# 使用するモジュールのインポート
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches#
Tkinterでダイアログをカスタマイズする方法
## 概要
GUIオブジェクトを作っていく中で、既に用意されているダイアログだけでなく、
ユーザー自身でカスタマイズしたダイアログを使用したくなる場面があります。カスタマイズ可能なダイアログとして、Tkinterには**simpledialog.Dialog**があります。
カスタマイズ方法について、本記事で解説いたします。
## 環境
Python3系
## デフォルト状態のダイアログ
何もカスタマイズしない状態では、**simpledialog.Dialog**に**OK**と**Cancel**のボタンしかありません。
![tkinter_demo_dialog.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302006/c4e60046-7c34-3db5-6621-38952923223d.jpeg)
上記は**root**ウィンドウです。**ダイアログ表示**ボタンを押すと以下のダイアログが表示されます。![tkinter_demo_simple_dialog_no_c
Python で文字列の末尾の改行を削除する
#急ぐ人向け
`str_line.rstrip(‘\r\n’)` を使いましょう。
“`ptyhon
line_content = string_line.rstrip(‘\r\n’)
“`
(注: Perl の `chomp` と異なり、元の文字列を保持する非破壊操作です。)#以下、この記事を書いた理由(愚痴)
誰もが通ると思われる道だが、きっかけは「文字列を splitlines してから iterate するの、効率悪いんじゃね?」って思ったこと。
“`python
for line in string_content.splitlines():
print(line)
“`google って調べて、
[stack overflow] (https://stackoverflow.com/questions/3054604/iterate-over-the-lines-of-a-string) の質問と回答にたどり着いた。そこの回答を見て、「改行が `\r\n` の場合に対応するにはどうしたらいいか」
で Bing で「python chom
pythonでネタ進捗バーを作ってみた。
# 動機のお話
簡単にいうと、進捗バーを作成したくなりました。
tqdmというパッケージを使えば簡単にできるっぽいのですが、それでは面白みがありません。
せっかくアスキーアートというものがあるのだから、暇な時間はそれを映したいなと思い、いろいろ試すことにしました。## 必要な知識
まず、進捗バーを表示する際に知っておくべきことがあります。
それは、表示カーソルの動かし方です。
以下のコードを見てください。“`python:sample1.py
import time
for i in range(10):
time.sleep(1)
print(“\r{}”.format(i),end=””)
“`
これを実行すると、表示される数字が上書きされます。
注目すべきは二つ。
- 1. end=””
- これはprint関数のオプションにある、終端文字の指定で、デフォルトは”\n”(改行文字)です。
そのため、これを””(文字なし)に変更すると、行を下に動かさずに出力できるようになります。
Pythonのバージョンを簡単に切り替えられる!pyenvのチートシート
pyenvでトラブルがあったこともあり、[README.md](https://github.com/pyenv/pyenv/blob/master/README.md)と[Command Reference](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md)を読んだので、備忘録として使い方をまとめてみました!
###### 参照元
– 2021年7月27日が最終更新の[README.md](https://github.com/pyenv/pyenv/blob/master/README.md)
– 4月9日が最終更新の[Command Reference](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md)# そもそもpyenvとは
– いくつもあるPythonのバージョンをPCに複数入れて、その時々で切り替えて使いえたらいいな
– バージョンをいくつも入れ過ぎてカオスになってきた!整理したい!という時に活躍する、複数バージョンを整理して管理でき
【PyPI 】Pythonの自作ライブラリをpipに公開する方法
# 自作Pythonライブラリを全世界に公開
Pythonでライブラリをインストールする際は“`
pip install [ライブラリ名]
“`
というコマンドを使うことが多いですが、
多くの人は以下のようなイメージを持っているかと思います。**「pipで公開してるライブラリってシリコンバレーのランチ無料のオフィスで働いてる凄いエンジニアが作ったんでしょ?」**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/18f71b3b-0ccb-6ed9-b3df-954d451bdd29.png)
このように敷居が高そうに見えるpipですが、実は**一般人でもライブラリを公開することができます**
何を隠そう、一般人の味方!す○家で牛丼ランチ(500円)を食べている僕でもアップロードできました。
一般ピープルでも全世界にライブラリを公開できるのは感慨深いです。公開方法を紹介している記事はいくつかありますが、どこかしらの必要工程が抜けているものが多いように感じた
データサイエンスでコンサルティング
初めまして、Panamixkedaと申します。Qiitaもですし、技術系の投稿をアップするのは今回が初めてです。
数年間こそこそとデータサイエンス関連の勉強をしておりまして、アウトプットもしていこうかなと思った次第ですね。(ぶっちゃけ、きっかけは転職しようと思ったからです)
データサイエンスにビジネスサイドからも学問的サイドからも興味があります。kaggleは計算量をほとんどかけない範囲でしたことがありますが、実務経験はありません。その他のスキルや興味についての紹介を、とりあえずキーワードレベルで済ませるなら、
Python/sklearn/PyTroch/テーブルデータ/画像処理/自然言語処理/強化学習/マルチモーダル
といったところでしょうか。括りの粒度の問題なのか、なんか胡散臭いですが。これから色々と発信していきますのでおいおいわかって頂ければと思います。どうぞよろしくお願いいたします。
ちなみに、**本記事の対象者は、ある程度データ分析知識がある方で、できればデータ分析人材を採用したりしたい方です。**もっと学問的/各論な記事だったり、データ分析が専門外である人にも向