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

Python関連のことを調べてみた2020年12月29日
目次

Salesforce データの Power BI 可視化を全て Python で行う

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/142638/bb625cbf-cdf3-5a38-a262-8bb1ff2b163d.png)
#概要
SalesforceもPower BIも職人芸なところがあり、Pythonでデータ分析・予測を行う人からは手を出しにくい(あまり余計な技を覚えたくない)かと思いますが、蓋を開けてみるとPythonコードで全て料理できたので、記録しておきます。

#事前に
Power BI Desktopを使うのでWindowsです。
pyenv-winでversion管理していたらPower BI謎エラー沼にはまったので、MS StoreでPython 3.8を入れました。3.9だとcdataが入りません。
Power BI大人事情により、numpyもversion指定です。

“`powershell
> pip install seaborn sqlalchemy numpy==1.19.3
“`

#SalesforceデータをDatafra

元記事を表示

Flask を Cloud Nativeアプリケーション にする

この記事は、[求ム!Pythonを使ってAzureで開発する時のTips!【PR】日本マイクロソフト Advent Calendar 2020](https://qiita.com/advent-calendar/2020/azure-python) の 9 日目です(後から追っかけで書いています)。

—-
Flask を Cloud Nativeアプリケーション にするって話です。

※ Cloud Nativeアプリケーション開発のTips! でもあるのですが、Qiita の仕様で、いずれか一つの Advent Calendar にしか参加できないようなので、Pythonを使ってAzureで開発する時のTips!に参加しています。

## What is Flask?

Flaskは、Python 用のウェブアプリケーションフレームワークです。

## How to make Flask a Cloud Native application?

Flask を Cloud Nativeアプリケーション にする手順は簡単で、以下になります。

1. Flask で Webサイト

元記事を表示

[Django]JWTのメモ

Settings.pyでの設定

REST_FRAMEWORK

“`
REST_FRAMEWORK = {
‘DEFAULT_PERMISSION_CLASSES’: (
‘rest_framework.permissions.IsAuthenticated’,
),
‘DEFAULT_AUTHENTICATION_CLASSES’: (
#Simple JWTを読み込む
‘rest_framework_simplejwt.authentication.JWTAuthentication’,
), #
}
“`

ここでSimple JWTを読み込む

SIMPLE_JWT

“`
SIMPLE_JWT = {
#トークンの時間を5ふんに設定する
‘ACCESS_TOKEN_LIFETIME’: timedelta(minutes=5),
‘REFRESH_TOKEN_LIFETIME’: timedelta(days=1

元記事を表示

CTF入門したのでwriteup書いてみた

[iRidge Advent Calendar 2020](https://qiita.com/advent-calendar/2020/iridge) 4日目の記事です。

2020年はCTFを始めました。と言っても始めたのは10月頃なのですが、今でも常設問題をちょこちょこ解いています。

今回は印象に残っている問題のWriteupを残しておこうと思います。自分用の忘備録ですが、あわよくばやったことない人向けに面白さが伝わればいいなとも。

# picoCTF [Web Exploitation] Java Script Kiddie

picoCTFというのはカーネギーメロン大学のセキュリティ専門チームによって作成されている常設CTFサイトです。中高生向けの教育コンテンツらしいのですが、秒で解けるものから中高生時代の自分だったら絶対解けないだろうなというものまで、数多くの問題が揃っています。

その中のWeb Exploitationというwebサービスを題材にしたジャンルの、Java Script Kiddieという問題について取り上げます。興味ある人はぜひ先に解いてみてください

元記事を表示

Power Automate Desktop からOpenCVを使うときの注意点

#概要
Power Automate Desktop(以下PAD)を使ってGCPのText Detectionを行った後、PythonのOpenCVで画像の中の文字をモザイク処理してみました。
その際の注意点です。
![ezgif.com-gif-maker (4).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/680039/3990324c-c4ae-748c-00a2-170ac7f7256c.gif)
ナンバーがモザイク処理されています。
#前提条件
Windows10pro 20H2
Power Automate Desktop 2.2.20339.22608。
GCP Vison API

Python 3.8.5
pandas 1.1.4
numpy 1.18.5
opencv-python 4.4.0.46
.pyファイルが実行できること

ディストリビューションではなく[https://www.python.org/](https://www.python.org/)のインストーラーを使

元記事を表示

PyMySQLで任意のDictCursorを作って、NULLのときにNoneを返さない方法

# 前置き

PyMySQL使ってますか?
え?ORM使ってるからそんなもん使わない?

まぁまぁ、ORMはORMでめんどくさいときがあるじゃないですか。
チョクでSQL書いたら楽なときもあるでしょ?

# でPyMySQL

“`python
import pymysql.cursors

# Connect to the database
connection = pymysql.connect(host=’localhost’,
user=’user’,
password=’passwd’,
db=’db’,
charset=’utf8mb4′,
cursorclass=pymysql.cursors.DictCursor)

with connection.cursor() as curs

元記事を表示

matplotlib pyplotのquiver()とstreamplot()のちがい

quiverの仕様がわかりづらいのでメモしておく。

#前提
微分方程式Uまたは(「または」)Vが与えられている

これらの解軌道の振る舞いを知りたい

#plt.quiver(X,Y,U,V)
初期値とそこからの差分を指定することでベクトルを書いてくれる。
X,Yには初期値をmgridなどで設定
U,Vにはそれら格子点から刻み幅ぶん移動した際の「差分」→微分方程式の解軌道を知りたい場合はRunge-Kutta法やオイラー法などを使って数値的に解いてあげて、その際の差分の項または刻み幅$\Delta t$(定数,X-Tプロットの場合のみ)を設定する。
ベクトルの大きさはそのまま矢印の大きさに反映される。

#plt.streamplot(X,Y,U,V)
初期値に対応した**解軌道を勝手に計算してくれる**。正確さについては後述。
X,Yには初期値をmgridなどで設定するが、この際なぜかYを先に書かないと絶対にエラーがでる(ValueError: The rows of ‘x’ must be equal)。入れ替えればいいだけなので特に調査はしてないけど、パッとわかる方いたらコメ

元記事を表示

MacBook ProでPyAutoGUIの座標が正しく取れない?

# 動かない
Python + PyAutoGUIでMacBook Pro(15-inch, 2018)のDockにあるアイコンをクリックさせようと、こんなコードを書いたら動かなかった。

“`python:click.py
import pyautogui as pag

position = pag.locateCenterOnScreen(‘target_app.png’, confidence=0.9)
pag.click(position)
“`
※target_app.pngはDockのアイコンをスクリーンショットした画像

Dockが一瞬だけピクッと動いて、ターゲットのアプリケーションが起動しない。

Dockのアイコン位置の座標を調べたところ、locateCenterOnScreenで取得した値と、アイコンにマウスを当ててposition()で取得した値がぜんぜん違うことに気づいた。

**locateCenterOnScreenで取得した値**
“` x=3046, y=2335 “`

**pyautogui.position()で取得したマウスカーソルの値

元記事を表示

機械学習モデルを用いた顔画像データセット仕分け(#3)

#概要
UTKFaceデータセットを下記特徴ごとに仕分けする。
・問題なし
・グレースケール
・複数人が写っている
・加工処理されている

###仕分けの流れ
[前回作成した学習用モデル](https://qiita.com/dream88sound/items/12cfe5217ca705334a05)を使用し、UTKFaceデータセットのpart1フォルダの画像データを一枚ずつ判別

Googleマイドライブに下記フォルダを作っておき、判別された画像を保存していく
・normal
・grayscale
・several
・processing

###環境
Google Colaboratory(GPU)

“`csharp
# UTKFace part1 ZIP読み込み
z = zipfile.ZipFile(‘/content/drive/My Drive/part1.zip’)
imgfiles = [ x for x in z.namelist() if re.search(r”^part1.*jpg$”, x)]

for imgfile in imgfiles:

元記事を表示

ムービーをランダムに一定時間ずつChromeCastで再生する

ChromeCastはほっとけばランダムにGoogle Photosに溜めた写真を流してくれるので、家族で思い出話ができて嬉しい。ただ、写真だけしか流してくれないので、何とかムービーのほうを流すようにならないかなと思っていたけど、一向に機能追加されないorz。仮にスマホのアプリでムービーをキャストするのがあっても、Youtubeのプレイリストからランダムに全部再生する機能だけで、これらのアプリでは長時間のムービー(お遊戯会のムービーとか)が流れ始めたら最後、全部流すまで終わらないので、これじゃない感がある。pychromecastを使えば簡単にmp4を再生できそうだったので、サクッと作ってみた。

## 事前準備
– Linux環境 (自分はWSLを使ってる)
– HTTPサーバ(自分はapacheを使ってる)
– python3

## 動画の準備
WSLで見える適当なフォルダにムービーを入れておく。1,000個くらい入れたかな。これらのムービーはChromeCastで直接再生できるフォーマットである必要がある。対応していないムービーはffmpegで変換しておいて、タイムスタンプを揃

元記事を表示

RequestsモジュールのHTTPリクエストメソッドに必要な引数を理解せよ

どうも、遅刻魔の月歩人です。
この記事は[JSL(日本システム技研) Advent Calendar 2020年 14日](https://qiita.com/advent-calendar/2020/jsl)の記事です。

バックアップ用に購入したポータブルHDDが初期不良で交換した矢先に買い替えたmacも初期不良で画面が一部映らなくなり、絶望的な状況で書いています :innocent:

## この記事を書くに至った経緯

少し前RequestsでHTTP/IFを実装する場面で、HTTPメソッドを実行するときのパラメータを理解していなかったがためにリクエスト先でparseが失敗していたにも関わらず、「APIが繋がらない!」と騒いだことがありました。
自分や他のエンジニアが同じ轍を踏まないために備忘録として残そうと思ったのがきっかけです。

## まずRequestsが対応しているHTTPメソッドを把握

requests/api.pyより

* requests.get(url, params=None, **kwargs)
* requests.post(url, data=N

元記事を表示

AWS IoTにpub/subするPythonのライブラリ`awsiot`はデフォルトport=443使ってた。

# 概要
AWS IoTにpythonでアクセスしてみた。
awsiotでアクセスしたら、port=443使ってた。

# awsiot

これをそのままコピペ。
[Python を使用してデバイスから AWS IoT Core に MQTT メッセージを発行する](https://aws.amazon.com/jp/premiumsupport/knowledge-center/iot-core-publish-mqtt-messages-python/)

“`python
from awscrt import io, mqtt, auth, http
from awsiot import mqtt_connection_builder
import time as t
import json

# Define ENDPOINT, CLIENT_ID, PATH_TO_CERT, PATH_TO_KEY, PATH_TO_ROOT, MESSAGE, TOPIC, and RANGE
ENDPOINT = “xxx-ats.iot.us-east-2.amazonaws.com

元記事を表示

【SpotifyAPI】プレイリストで2020を振り返る – Part.1 プレイリストデータの取得

## はじめに

Spotifyで2020年に「最も聴いた楽曲」などをストーリ形式で評してくれる機能 “#2020WRAPPED” が公開されました。

SpotifyAPIでは、楽曲ごとの解析した音楽的なパラメータを返却してくれます。
それらのデータを含む楽曲リストを取得し、2020年に聴いた曲の傾向を分析してみましょう。

![スクリーンショット 2020-12-28 23.42.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348593/34bd1fe7-e432-55f8-df32-56cdede3eab5.png)

![スクリーンショット 2020-12-28 23.56.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348593/052f85d1-bd5e-28ec-314e-9eb1fe0e0e22.png)

## 動作環境
– Google Colaboratory
– Python 3.

元記事を表示

ローコード機械学習ライブラリ「PyCaret」を使って小売の需要予測をしてみた。

#概要
[フューチャー Advent Calendar 2020]((https://qiita.com/yottyann1221/items/a08300b572206075ee9f)) の22日目の記事です。

私は2019年7月に新卒でフューチャーに入社し、現在は小売プロジェクトで需要予測の業務に携わっています。

最近の業務では予測が外れた要因分析や、予測の外れ要因を学習データに追加することで精度が向上するかの検証などをしていて、仮説をクイックに検証する重要性を感じています。

そんな中で、PyCaretというローコード機械学習ライブラリの存在を知りました。
本記事ではPyCaretとウォルマートの売上データを使って、モデルの生成と売上の予測をしてみます。

#PyCaretとは何か
![pycaret.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/322279/b5d820c9-53bc-4b11-7b5c-69b842c4e496.png)

[PyCaret](https://pycare

元記事を表示

よくわからないけど、分かった気になれるDeep Learning(ゼロから作るDeep Learningをやってみた)

# はじめに
GWの連休中ふと思い立って[「ゼロから作るDeep LearningーーPythonで学ぶディープラーニングの理論と実装」](https://www.oreilly.co.jp/books/9784873117584/)を手に取り勉強&実装してみたので、感想と自分なりの理解をメモ。
これから本書を手に取って勉強し始める人にとって、理解の手助けや学習コストをどの程度見込めばいいのかの参考になればなと思いますが、時間たった時に自分が見返して思い出すためのメモなので読みづらい部分もあるかもしれません。。。
細かい数式は参考書を見て詳しく追えばいいと思うので、ふわっと「Deep Learningってそういう仕組みなんだ」っていうふうに概要を分かった気になれればいいなと思いながら書いています。

自分は本書を一通り理解し、付属のサンプルコードを少し拡張することで、
“ペイント”で手書きした数字の画像ファイルの数字判別を行うシステムを作ることができました。
(※著作権の問題が絡んできそうなので、ソースコードは公開していません。)
データサイエンティストのための分析:Qiita自己記事まとめ2020 (演習)

データサイエンティストのための分析:Qiita自己記事まとめ2020
https://qiita.com/kaizen_nagoya/items/ff51b03848908d38d7b3

のデータはいいね順。
ここではそのうち、Viewsの多い順で40切り出した。
また、その次に、vs/gsの比率の低い順で40切り出した。

特徴的なことは、Viewsの上位40と、vs/gsの上位40では、半分も共通な項目がないことである。

この3つの表からわかることを50字から400字で整理することを演習課題とする。

| views | 2020 | 2019 | Japanese title | Englis

元記事を表示

【pytorch-lightning入門】初めてのLit♬

丁度一年前に[pytorchの記事](https://qiita.com/MuAuan/items/a3b846b4cdae27189587)を書いた。
割と簡単に動かせたので、今回も簡単だろうと高をくくっていたので、ちょっと慌てた。
導入のページが、ちょっとな気がする。
でも、わかってしまうとむしろ参考①のアニメーションが秀逸なことに気が付いた。
ということで、これの解説しますかね。
※結局、やったことしか書けていない

【参考】
①[PyTorchLightning/pytorch-lightning](https://github.com/PyTorchLightning/pytorch-lightning)
②[STEP-BY-STEP WALK-THROUGH](https://pytorch-lightning.readthedocs.io/en/latest/introduction_guide.html#step-by-step-walk-through)
今回の環境は以下のとおりです。

“`
>python -m pip install pytorch-light

元記事を表示

隠れマルコフモデルを用いた異常検知を実装してみた

* 製造業出身のデータサイエンティストがお送りする記事
* 今回は隠れマルコフモデルを用いた異常検知を実装してみました。

##はじめに
今回は、汎用性の高い時系列分析モデルの隠れマルコフモデルを用いた異常検知手法を実装してみました。

##隠れマルコフモデルを用いた異常検知とは
今回は理論的な部分の詳細は割愛しますが、データの背後にある「状態」の系列を導入しう、モデルを構築するデータの発生確率を予測し、異常検知を行っていきます。下記に簡単に特徴を記載しておきます。

* 汎用性の高い時系列モデルである
* 観測できない隠れた状態を仮定しており、状態はそれぞれ異なる出力の確率分布を持ちます
* 状態の遷移確率や状態毎に得られる発生確率を計算することで複雑な時系列データの異常を検知できます。

今回使用するデータセットは下記です。

* qtdb/sel102 ECG datasetという、心電図データを用います。
* URL:http://www.cs.ucr.edu/~eamonn/discords/

pythonのコードは下記の通りです。

“`php
# 必要なライブラリーの

元記事を表示

Python数学シリーズ①(転置)

## 経緯
[深層学習の本](https://www.amazon.co.jp/%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92-Ian-Goodfellow/dp/4048930621)を読み進めていこうと思っているのですが、ひたすら文字を読んでると眠くなってしまうので、出てきた項目をpythonで実装しながら理解を深めていこうと思います。需要があるかはわかりませんが、シリーズ化していこうと思います(笑)。今回は転置です。最近、c++とcばかりでpythonを忘れてきているので、復習も兼ねてpythonで実装していこうと思います。

## 転置
本の定義(24ページ)では、左上の角から始まって右下までの主対角線と呼ばれる行列の対角線に対する鏡像であると言っています。詳しくは[こちら](https://risalc.info/src/transpose-matrix-properties.html)をどうぞ。

### 実装
簡単な方法はnumpyを使った方法があります。[こちら](https://note.nkmk.me/python-list-transpo

元記事を表示

Python数学シリーズ②(行列の掛け算)

## 経緯
[深層学習の本](https://www.amazon.co.jp/%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92-Ian-Goodfellow/dp/4048930621)を読み進めているのですが、ひたすら文字を読んでると眠くなってしまうので、出てきた項目をpythonで実装しながら理解を深めていこうと思います。需要があるかはわかりませんが、シリーズ化していています(笑)。今回は行列の掛け算です。pythonはライブラリが豊富なので、それに頼れば何も考えずに計算できるのですが、あえて自作しています。
***これは[adevent calendar](https://qiita.com/advent-calendar/2020/global_walkers)の自分の最後の記事です。カレンダーの最後は@bigface00さんが締めてくれます。***

## 行列の掛け算
行列の掛け算は下のようなイメージで計算できます。[参照元](https://atarimae.biz/archives/23930)
![Screenshot from 2020-1

元記事を表示

OTHERカテゴリの最新記事