- 1. Pager Duty APIで月間アラート履歴を自動で確認する。
- 2. WindowsでRPLiDAR使いたい症候群
- 3. Pythonで関数のグラフを書く方法
- 4. デプス画像から三次元点群を構築の高速化(Python,numpy)
- 5. 【Emacs】Ubuntu22.04でJediを入れたらTypeErrorが起きた話
- 6. 【Python】型ヒント入門編
- 7. python学習 – 1日目
- 8. 【AtCoder解説】PythonでABC254のA,B,C,D,E問題を制する!
- 9. PyenvでAtcoder用のPythonバージョンを管理する
- 10. scipy.stats: クラスカル・ウォリス検定 kruskal
- 11. scipy.stats: ウィルコクソンの符号付順位和検定 wilcoxon
- 12. pythonでのsqlite3データベース作成
- 13. xml.etree.ElementTree で XML の基本的なことを少し触ってみる
- 14. scipy.stats: マン・ホイットニーの U 検定(ウィルコクソンの順位和検定) mannwhitneyu
- 15. scipy.stats: コルモゴロフ・スミルノフ検定 kstest
- 16. pip search で ERROR: XMLRPC request failed [code: -32500] の解決法
- 17. Python3 基本構文
- 18. PHPのソケット通信(Client)でESP32と疎通してみる
- 19. GCP(Google Cloud Platform)のFunctionsにおけるOPENCVの使い方
- 20. Python で Twitter の位置情報収集
Pager Duty APIで月間アラート履歴を自動で確認する。
# はじめに
現職ではAWSをメインに扱うクラウドインテグレーターでエンジニアをしております。
お客様毎によって異なるAWSアカウントを構築、運用しております。
オプションとして監視契約を従量課金の料金体系にする試みがありました。現職の監視ではCloudWatchのアラートをPager Dutyに連携して通知する仕組みを利用しています。
そこでPager Duty APIを利用して対象AWSアカウントの月間アラート件数を毎月自動で取得する設定を行いました。
コーディングには勉強中のPythonを使いました。
Pager DutyのAPIの日本語記事が少なかった事、自分の忘備録として記載致します。
改善点や何かありましたらコメントを頂けると嬉しく思います。# Pager Dutyとは
PagerDutyは様々な監視ツールと連携して、システムのインシデントを一元管理するツールです。
現職での主な利用用途はCloudWatch AlarmのSNSから通知を受け取りエンジニアのPager Dutyアプリに通知させる目的です。
Pager Dutyアプリでは電話のように音がなるのでメー
WindowsでRPLiDAR使いたい症候群
私の先輩でもともとRPLiDAR A1M8を使っている方がいました.
そのお方は,Linuxでの環境構築に半年かかっていたそうで、、、
それに対し,私はそんな強い忍耐はなく,LinuxではなくWindowsで使用できないものかと考えました.・・・その結果,できました!!
なのでその手順というか過程をここに書き残しておこうと思います# ~第一章 環境~
今回使用するPCはWindowsを想定しています.
Windows10でも11でも動作すると思われます.
お手元のPCでPythonの環境を準備して下さい.
ちなみに私はPython 3.7.9でした.(Python3であれば動くのかな?)https://github.com/Roboticia/RPLidar
上記のURLからソースコードをDLしてください
“`
pip install rplidar-roboticia
“`今回はWindowsなのでsudoのないコマンドで大丈夫です
これが終わったら,お好みのディタを開いて
pythonファイルを作成し,下のソースコードをコピペしてください
“`main
Pythonで関数のグラフを書く方法
# x-y座標でグラフを書く方法
自分の覚書として書く。
## 一つのグラフ
下のグラフは`arrange`を用いて $y=\sin x$ のグラフを $x-y$ 平面に $\Delta x=0.01$ おきに $0$ から $2\pi $ までプロットしたものである。
`linspace`等を用いる方法もある。“`python
import numpy as np
import matplotlib.pylab as pltx = np.arange(0, 2*np.pi, 0.01)
plt.plot(x,np.sin(x))
plt.title(‘y=sin x’)
plt.xlabel(‘x’)
plt.ylabel(‘y’)
plt.show()
“`
デプス画像から三次元点群を構築の高速化(Python,numpy)
# デプス画像から三次元点群を構築の高速化(Python,numpy)
## この記事について
—
初めまして、KEROと申します。
ロボット工学や画像工学などこと研究してます。
外人ですか、もっと日本語で技術のことを話しできるため、日本語で技術blogを書き始めた今日はPyhonでデプス画像から三次元点群を構築のことついて話します。
【Emacs】Ubuntu22.04でJediを入れたらTypeErrorが起きた話
# 起こったこと
– Ubuntu22.04
– Python 3.10.4
– GNU Emacs 28.1の環境で
“`bash
pip install jedi epc
“`したあと、emacs上で`company-jedi`パッケージをインストール。
で、pyファイルを開いて編集すると、補完がされない。Messageバッファでログをみると、以下のエラーメッセージを発見。
> jedi deferred error : (error “\”TypeError(‘Script.__init__() takes from 1 to 2 positional arguments but 5 positional arguments (and 1 keyword-only argument) were given
# 解決
emacsパッケージの方が、jedi(pythonライブラリ)の最新バージョン0.18に対応していないみたい。
古いバージョンをインストールしたら解決。“`
pip install jedi==0.17.2
“`参考:htt
【Python】型ヒント入門編
# この記事で書くこと
この記事ではpythonの型ヒントについて簡単に説明していきます。# 型ヒントとは?
型ヒントとは、関数の引数と返り値の型を書いておくものです。
型ヒントは、あくまで注釈であり、あってもなくても、Pythonの実行時にはなにか特別効果があるわけではありません。(別に最悪なくても良い☺︎)
ただ、注釈を書いておいて置くことにより、コードの改修時や、チーム開発で他のメンバーがコードを見た時にわかりやすいようにすることができます。
なるべく記載した方が良いでしょう☺︎# 型の種類
基礎的な方になりますのでなるべく全部暗記できるようにしましょう。
私はbytesを使ったことがなかったのでこの記事書いてて初めて知りました…| 名称 | 型 |
|:—————–|:——————|
| 整数 | int |
| 浮動小数点数 | float |
| 文字列 |
python学習 – 1日目
# はじめに
python初心者がこっそり学習する。
まずはなるべく毎日30分でも触ることが目標。# pythonの環境構築
こちらは別記事で実施する予定。
環境構築で挫折したくないので。。
今回は構築しなくても、ブラウザでpython実行できる[Google Colaboratory](https://colab.research.google.com/)を利用する。
[使い方](https://www.python.jp/train/experience/colab.html)の記事を参考にしました。# pythonのバージョン
python3を使用する。
ちなみにpython2系は2020にサポート終了済み。
私のようにこれから始める方は、python3系を選ぶのが良いと思います!# Pythonのコーディングルール
[PEP8](https://pep8-ja.readthedocs.io/ja/latest/)をまずは参考にするのが良さそう。# コメント
コメントは、コードが実行される時に無視されるもの。
メモやコードの説明に使う。
コードの全行にコメントつけ
【AtCoder解説】PythonでABC254のA,B,C,D,E問題を制する!
**ABC254**の**A,B,C,D,E問題**を、**Python3**でなるべく丁寧に解説していきます。
ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。
– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増えるご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!
**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM**
PyenvでAtcoder用のPythonバージョンを管理する
## 動機
AtcoderではPythonのバージョンが最新でなかったり、使用できるライブラリが限定されていたりして、ローカル環境とは勝手が違います
現在(2022/06/04)Cpythonでのバージョンは`3.8.2`でPypyでのバージョンは`3.6.9`(Pypy自体は `7.3.0` )ですが、
自分の場合は、AHCの時にPypyで3.8から追加された`typing.Literal`を使おうとしてWAしたことが2回あるので、いい加減に手を打つことにしました今回は仮想環境は`pyenv local`だけで擬似的に対応できそうだったので使わないことにしました
## 環境構築
最初に言っておきますが、
ローカルでPypyを使うWindowsの方はこの方法はつかえない(後述)ので、ローカルではCPythonを使うことになりますここからはWin10の場合の説明です
Mac等の場合はリンクを貼るだけにします### Pyenvのインストール
[Macの場合はこちら](https://github.com/pyenv/pyenv#homebrew-in-macos)Wind
scipy.stats: クラスカル・ウォリス検定 kruskal
# scipy.stats: クラスカル・ウォリス検定 `kruskal`
独立標本の代表値の差の検定を行うノンパラメトリック検定である。
`kruskal(*args, nan_policy=’propagate’, axis=0)`
“`python
from scipy.stats import kruskal
import numpy as npx = np.array([2.9, 3.0, 2.5, 2.6, 3.2])
y = np.array([3.8, 2.7, 4.0, 2.4])
z = np.array([2.8, 3.4, 3.7, 2.2, 2.0])
“`“`python
kruskal(x, y, z)
“`KruskalResult(statistic=0.7714285714285722, pvalue=0.6799647735788936)
“`python
a = np.array([41, 36, 12, 18, 28, 23, 19, 8, 7, 16, 11, 14, 18,
scipy.stats: ウィルコクソンの符号付順位和検定 wilcoxon
# scipy.stats: ウィルコクソンの符号付順位和検定 `wilcoxon`
`wilcoxon(x, y=None, zero_method=’wilcox’, correction=False, alternative=’two-sided’, mode=’auto’, *, axis=0, nan_policy=’propagate’)`
`zero_method` はデフォルト以外に 2 つあるが,一般的ではないのでデフォルトのままがよいであろう。
`mode` は `’auto’`, `’exact’`, `’approx’` の 3 通りであるが,`’exact’` か `’approx’` を明示的に指定したほうがよい。
`correction` は `mode=’approx’` のときに連続性の補正をするとき `True` を指定する。デフォルトは `False`。
`alternative` はデフォルトで両側検定 `’two-sided’`。片側検定の場合には対立仮説の方向により `’greater’` か `’less’`
“`pytho
pythonでのsqlite3データベース作成
# 目的
SQLiteでデータベース、テーブルの作成、編集をしてみたかったので、試してみました。
後に記事にしますが、これを使用して、物品管理ができるプログラムを作成していきます。# 開発環境
Python version:3.9.7
OS: windows 10.0# プログラム
データベース名は、“`book_list.db“`、テーブル名は、“`bookitems“`にしています。
“`make_table“`では、テーブルの作成と値の設定しています。“`reset_status“`では、デーブル内で設定したstatusを初期状態に戻す操作をしています。この操作は、“`bookitems“`が作成されていない時に実行すると走行するようにしています。“`make_db.py
import sqlite3def make_table(cur):
# make the table
cur.execute(
‘CREATE TABLE bookitems(name TEXT , code INTEGER, status
xml.etree.ElementTree で XML の基本的なことを少し触ってみる
# 目的
[Windows 10 + Excel2016_x86 VBA で XML の基本的なことを少し触ってみる](https://qiita.com/tabizou/items/10eb832352a6b31888c7)
で使用したXMLファイルをPythonで基本的な操作を実行してみる。対象となるXMLデータ(addr2.xml)
“`xml
東京都/世田谷区/池尻/四丁目/35番
池尻4-35-25
wgs1984
4
池尻4-35-
139.673965
35.654259
scipy.stats: マン・ホイットニーの U 検定(ウィルコクソンの順位和検定) mannwhitneyu
# scipy.stats: マン・ホイットニーの U 検定(ウィルコクソンの順位和検定) `mannwhitneyu`
“`python
from scipy.stats import mannwhitneyu
“``mannwhitneyu(x, y, use_continuity=True, alternative=’two-sided’, axis=0, method=’auto’, *, nan_policy=’propagate’)`
– `use_continuity` : `method` が `’asymptotic’` の場合は,デフォルト(`True`)で連続性の補正を行う。
– `alternative` : デフォルトで両側検定 `’two-sided’`。片側検定の場合には `’less’`, `’greater’`。
– `method` : デフォルトは `’auto’` であるが,明示的に指定するほうがよい。
* `’asymptotic’` : 同順位補正をして標準正規分布で漸近検定。
* `’exact’` : 同順位補
scipy.stats: コルモゴロフ・スミルノフ検定 kstest
# scipy.stats: コルモゴロフ・スミルノフ検定 kstest
“`python
from scipy.stats import kstest
“``kstest(rvs, cdf, args=(), N=20, alternative=’two-sided’, mode=’auto’)`
★ 1 つの連続変数の分布(分布関数 $F(x)$)が特定の分布関数 $G(x)$ と同じかどうかの 1 標本検定
★ 2 つの連続変数の分布(分布関数 $F_1(x)$,$F_2(x)$)が同じかどうかの 2 標本検定引数
– rvs : 配列,文字列,関数
* 確率変数の観察値の一次元配列(ベクトル)
* 関数(キーワード引数 `size` を持つこと)
* 文字列の場合は `scipy.stats` での関数名(乱数生成のために使われる)
– cdf : 配列,文字列,関数
* 確率変数の観察値の一次元配列( この場合は `rvs` も一次元配列で,2 標本検定が行われる)
関数(累積密度関数 `cdf` を計算する)
pip search で ERROR: XMLRPC request failed [code: -32500] の解決法
# 結論
“`sh
$ pip3 install pip-search
$ pip_search mecab
“`:::note warn
インストールするパッケージ名は `pip-search` であるのに対し、コマンド名が `pip_search` であることに注意してください。
:::# 起きたエラー
pipで検索しようとしたら、エラーが発生しました。
“`sh
$ pip3 search mecab
ERROR: XMLRPC request failed [code: -32500]
RuntimeError: PyPI’s XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.
“`インストールは問題なくできていました。
“`sh
$ pip3 install numpy
Successfull
Python3 基本構文
# Python3 基本構文
Pythonを書く機会があったのでよく使う構文をまとめます。
## 0. インデント
Pythonではインデントを落とした部分が処理ブロックになるので、`if 条件:`や`for ~ in ~:`などの後はインデントを落としましょう。
## 1. 変数定義
Pythonは動的型付け言語なので、変数宣言時に型宣言は必要ありませんが、**定義した変数が何型(整数, 浮動小数, 文字列, 真偽値, …)なのか常に意識して書く**と、コーディング時にキャスト(型変換)が必要かどうかの判断が容易になったり、他言語でも型で苦労することは無くなると思います。
“`python
# ==================================
# ————- 変数定義 ————
# ==================================# Integer(整数)型
num1 = 10
num2 = -3# Float(浮動小数)型
num3 = 1.5
nu
PHPのソケット通信(Client)でESP32と疎通してみる
# はじめに

こんな感じのを作る
各バージョンはこちら
“`sh
$ apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2022-03-16T16:53:42$ php -v
PHP 7.2.34-28+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Nov 19 2021 06:36:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group$ cat /etc/os-release
NAME=”Ubuntu”
VERSION=”18.04.6 LTS (Bionic Beaver)”
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME=”Ubu
GCP(Google Cloud Platform)のFunctionsにおけるOPENCVの使い方
# GCPのFunctionsで開発をする際に困ったOPENCVの使い方メモ
## 1.本記事について
:::note
本記事は著者がGCPでOPENCVを利用して画像処理をしようとしたときにもがいた先にたどり着いた解決方法を記したものです。
なお、社会人になりたてで、開発経験がまだ薄いので、間違ったりしてるところがあればご教授お願い致します。
:::
## 2.本記事で使ったもの
- Functions
- GCPの中にあるツールの一つでサーバレス開発で使用する。
https://cloud.google.com/functions?hl=ja
- storage
- GCPの中にあるツールの一つでデータの保管、トリガーとして利用したりできる。
https://cloud.google.com/storage?hl=ja
- OPENCV
- よく使われる画像処理関係のオープンソース
https://opencv.org/
- GoogleVi
Python で Twitter の位置情報収集
# はじめに
一身上の都合で、緯度・経度からなる手軽なGIS(Geographic Information System)データが欲しいという状況になった。そこで注目したのが、Twitter の位置情報付きのつぶやきである。あるキーワードに該当するような位置情報付きのつぶやきを集めれば、それは立派なGISデータになる。そこで、Twitter API に登録し、できる限り無料枠内で tweet の情報を集める方法を紹介したいと思う。# Twitter API の認証情報の取得
こちらについては、すでに既存の記事に詳しい方法が載っているので、そちらを参考にしてほしい。– [Twitter APIで遊んでみた ~1. 各種キーの申請と取得~](https://tech-lab.sios.jp/archives/21238)
– [2021年度版 Twitter API利用申請の例文からAPIキーの取得まで詳しく解説](https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/)上記の記事にもあるが、Tweet の