Python関連のことを調べてみた2021年09月26日

Python関連のことを調べてみた2021年09月26日

SlackAPPを使ったインタラクティブBOT作成

# はじめに
この記事は**「Zoomライセンスの切り替えをSlackでやってみた」**の一環で投稿した記事です。

SlackAPPの作成から、APPからのメッセージ送信、スラッシュコマンドの利用、Interactiveメッセージを使ったAppの対話と、SlackAPPで使う上での基本的な部分を説明します。

https://qiita.com/matsutogen/items/9152ad13bf26337d1b57

# この記事で知れること
+ SlackAPPの作成方法
+ SlackAppからのメッセージ送信方法
+ スラッシュコマンドど実装方法
+ Interactiveメッセージ(Blockメッセージ)の実装方法
+ Interactiveメッセージを使ったAPPとの対話方法

# 1.Slack APPの作成
## ワークスペースにAppを追加

https://api.slack.com/apps/

にアクセスし、**Create New App** からAPPを登録します。

+ AppName:任意
+ WorkSpace:Appを登録したいワークスペース

元記事を表示

Zoomライセンスの切り替えをSlackでやってみた

# はじめに
昨今Zoomを使ったWeb会議が定常的に行われてるようなったんですが、有料ライセンスコスト削減のためライセンスを組織内で使いまわしているところは多いと思います。
僕が所属している組織でも使いまわしをしているのですが、先日ライセンスの切り替えを行っているライセンス管理者担当から「切り替える面倒」「なんとかできないの」と、挑戦的な要望を受けたのでSlack 経由でライセンスの切り替えるアプリケーションを作ってみました。

作成に伴ってSlackAPP、ZoomAPI、Herokuと色々利用方法を調べたので、備忘のために残しておくことにします。

# この記事から得れるコト

アプリの作成を通して、以下を知ることができます

+ Herokuの登録、デプロイ、Webサーバ公開方法
+ Slack APIを使ったインタラクティブBotの作り方
+ Zoom API(JWT)を使ったユーザリストの取得、有料ライセンスの切り替え

# 前提
普段、簡単なスクリプトは書くことはありますが、プログラミングのことはかなり暗いです。
今回Pythonでコーディングしましたが、ほぼ書い

元記事を表示

Herokuの登録・デプロイ・Webサーバ公開をやってみる

# はじめに
この記事は**「Zoomライセンスの切り替えをSlackでやってみた」**の一環で投稿した記事です。
この記事では、Herokuの登録・プログラムのデプロイ・Webサーバ公開をするところまでを説明します。

https://qiita.com/matsutogen/items/9152ad13bf26337d1b57

# 本記事で使っている環境
+ Windows10
+ VSCode
+ Python 3.7.1

# HerokuへのAPP登録
今回外部サーバとしてHerokuを使うことしました。
Herokuを利用するにはユーザ登録が必要になりますので、簡単にですが登録方法を説明します。

## Herokuアカウント作成

(1)以下のサイトより、必要事項を入力しHerokuアカウントを作成します。

https://signup.heroku.com/dc

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1955406/ab72419e-9eed-2af7-72

元記事を表示

ZoomAPI(JWT)を使ってライセンス切替をやってみる

# はじめに
この記事は**「Zoomライセンスの切り替えをSlackでやってみた」**の一環で投稿した記事です。
この記事では、ZoomAPI(JWT)の利用準備から、ZoomAPIでユーザ情報を取得、実際にライセンスの切替するところまでを説明します。

https://qiita.com/matsutogen/items/9152ad13bf26337d1b57

# 本記事で使っている環境
+ Windows10
+ VSCode
+ Python 3.7.1

# ZoomAPIとは
ZoomAPIは、APIを通してZoomを操作できるものです。ユーザ情報の取得や、ユーザ情報の変更、会議の作成などなど、様々なことがAPIでできます。

ZoomAPIを利用するのには、APIリクエストをZoomで認証される必要があり、認証方法として`OAuth` と `JWT` がサポートされています。
この記事ではSlack経由でAPIを利用することを想定しているので、`JWT`について説明します。

公式ドキュメンもあるので、詳細はこちらも参照してみてください。

https://marke

元記事を表示

基本情報のアルゴリズムをPythonで書いてみる(平成28年春)

基本情報の午後試験の壁といえばアルゴリズムとプログラミングです。特にPythonは過去問が少ないのが難点です。そこで、アルゴリズムをPythonでコーディングすれば一石二鳥ではないか!ということで今回の記事を書きました。本記事では平成28年春試験の問題を扱います。

#想定する読者

基本情報をPythonで受ける予定の人
午後試験のアルゴリズムがいまいち苦手な人
プログラミング初心者(私もPython2か月の初心者です)

#環境
Python3.9.6
Windows10 version21H1
エディタはVSCodeを使用しました。

#コード全容

早速ですが、コードの全容です。基本的には変数名は問題文と同じにしています。

“`Python
MemoMax = 5
DataMax = 25
Memo = [None]*MemoMax
MemoCnt = len(Memo)
Data = [None]*DataMax
DataLen = len(Data)
MemoCnt = 0
DataLen = 0

#MemoとDataを初期化する
def resetMemo():

元記事を表示

foliumで地図を表示するアプリをherokuにデプロイする

# 大まかな流れ
1. foliumでhtmlを生成
* herokuにアップロード

下記を参考にさせていただきました。

https://qiita.com/paulxll/items/121efb33930c73da1b4f

https://qiita.com/hozukikancho/items/b8d475e67a147cd54453

# foliumでhtmlを生成
### 地図を描画する最低限のプログラム

“` python
import folium

# 近鉄四日市駅の緯度経度
lat_lng = [34.967122324836694, 136.61851365521244]

f_map = folium.Map(
location= lat_lng,
zoom_start=16
)

f_map
“`

下はJupyter Labで実行した結果です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188786/ba430b29-bda

元記事を表示

インフルエンサー炎上に学ぶ、YouTube視聴者行動の分析

# はじめに
本記事は、**話題のニュースを分析シリーズ第2弾**となります([第1弾はこちら](https://qiita.com/c60evaporator/items/0b62795a19dd5af940f8#5-%E8%80%83%E5%AF%9F%E3%81%A8%E3%81%BE%E3%81%A8%E3%82%81))
以下にご留意頂ければと思います。

・ゴシップなテーマではありますが、内容は技術の共有を目的としているため、個人名・企業名等は伏せさせて頂きます
・本記事の内容は、自由に転載頂いて構いません
・本記事に対する問い合わせは、[私のTwitter](https://twitter.com/c60evaporator)までお願い致します

また、文中の**コードは[GitHubリポジトリ](https://github.com/c60evaporator/youtube-flaming-analysis)にもアップロード**しております

# 動機
2021年夏は、インフルエンサーの炎上が続発し、社会的に大きく取り上げられることとなりました。
炎上するとYouTu

元記事を表示

AWSでAIサービスを使ってみる〜第12回personalize編その②〜

##前回まで
前回まではpersonalizeのレコメンデーション機能を試すために、データの前準備とデータセットを登録するためのpythonファイルを確認しました。

前回記事です。
[AWSでAIサービスを使ってみる〜第11回Personalize編〜](https://qiita.com/AInosukey/items/1939cbac0ac5085f6463)

今回はAWSにpersonalizeで用いるロールの作成と、データの取り込みについて試して行きます。

##ロールを作成する
購入履歴のデータをPersonalizeに取り込むためにS3を利用します。Personalizeに対してS3にアクセスする許可を与えるためにロールを作成します。

以下はロールを作成するプログラムの全体です。

“`pers_create_role.py
import boto3
import json

iam = boto3.client(‘iam’)
role_json = {
“Version”: “2012-10-17”,
“Statement”: [
{

元記事を表示

SARIMAモデルでのTeamsレスポンス予測

#この記事について
Aidemyさんの卒業ブログのネタとして素人が時系列分析したものです。
車の運転でいうと、仮免で公道を走っているようなものなので、何かの拍子に本ページにいらっしゃった方は話半分に見て頂ければと思います。
理論等は置いといて、身近なデータでSARIMAモデルで予測をしてみた、、というものです。

#分析環境
Google Colab

#分析データについて
[Thousandeyes](https://www.thousandeyes.com/ja/)でTeams ‘https://teams.microsoft.com’ のhttpレスポンスを測定し、当該データでSARIMAモデルを構築。([ログ取得方法](https://qiita.com/ramutarafarm/items/da346c842e61953cd31c) )
期間:9/9 ~ 9/19の約10日
測定間隔:1分間隔
データ代理モデルによる機械学習モデルの説明

# はじめに

**代理モデル (surrogate model)** とは複雑な機械学習モデル(e.g., DNN, GBDT)を近似する簡単なモデル(e.g., パラメタ数の少ないDNN, 単純決定木, etc)のことを指します.代理モデルは推論の高速化・機械学習モデルの説明などさまざまな用途に使われています.

この記事では**代理モデルによる機械学習モデルの説明**をハンズオン的に紹介します.これは非常にシンプルかつ柔軟な手法ですが,アドホックな部分が多いためかハンズオン的な解説は見当たりませんでした.Christoph Molnar による [Interpretable Machine Learning]( https://christophm.github.io/interpretable-ml-book/) の [Global Surrogate]( https://christophm.github.io/interpretable-ml-book/global.html) に概要は示されているので機械学習に詳しい人はこちらを読めば十分かもしれません.関連するライブラリ

元記事を表示

Pythonを使って福岡県の人口予測をしてみたので、上手くいったことと上手くいかなかったことを振り返る

1.初めに
2. やってみたこと
 2-1. 目的
 2-2. プログラムと結果
3. 解説
 3-1.環境
 3-2.データ諸元
 3-3.予測方法
4.上手くいったこと
 4-1.google drive,Colaboratoryの利用
 4-2.教師用データとテスト用データの仕分けから制度の高いモデルの表示
 4-3.データの合成、グラフの表示
5.上手くいかなかったこと
 5-1.予測精度
 5-2.date型の取り扱い
6.最後に

**1.初めに**
このブログではpython初心者である筆者が福岡県の人口予測をpythonを用いて行ってみた結果を示しています。同じようにpythonを勉強する方の参考になれば幸いです。

**2. やってみたこと**
  **2-1. 目的**
  筆者は仕事の都合で福岡県に住んでますが、「福岡は人が増えた」と以前から住んでいる
  方は言われます。そこで福岡県の人口がどれくらい増えているのか、そしてpythonで
  どこまで予測できるのか試してみたいと思いました。
  

  **2-2. プログラムと結果**
  早速以下のプログラ

元記事を表示

ABC79 C – Train Ticket が解けた

https://atcoder.jp/contests/abc079/tasks/abc079_c

![abc79_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/983a946a-48ea-cfe5-4cb0-52faa3ae1d73.png)
![abc79_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/f96fe050-0bce-8ad2-a550-813aab57866d.png)
![abc79_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/37e047b1-6195-24ad-b8a7-4d2f52874cd7.png)

op は 2 種類しかないうえに、
op は 3 つしかない。2^3 だから全探索で余裕だ

“`TrainTicket.py
ABCD = inpu

元記事を表示

Singleton の使用例

## 概要

個人的には、Python での Singleton の使用頻度は非常に高い.

が、下記 URL にあるように Singleton の実装方法は何通りもあり、
どれが適切なのかが分からない.

・https://try2explore.com/questions/jp/10006686
・https://try2explore.com/questions/jp/10158296

私は次のように “静的”変数である `__share_state` を使う実装を拝借させてもらっている.[^1]

“`python
class Singleton(object):
_share_state = {}
def __new__(cls, *args, **kwargs):
obj = super().__new__(cls, *args, **kwargs)
# “静的”変数 _share_state へのポインタを obj.__dict__ に格納する
obj.__dict__ = cls._share_state
# obj を

元記事を表示

ABC83 C – Multiple Gift を解いた

https://atcoder.jp/contests/abc083/tasks/arc088_a

![abc83_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/4175301d-bb50-50a6-1506-cd782ba6c29e.png)
![abc83_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/09475485-7d29-cd50-d18e-202cacf632b1.png)
![abc83_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/319b65fc-8d43-3275-9783-23622b1a8147.png)
![abc83_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73

元記事を表示

【仮想通貨・株・FX】巷で人気のSuperTrendインジケーターをPythonで再現してみる

![スクリーンショット 2021-09-25 20.18.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688854/be2236c3-80f1-f5e5-e9b2-e46d07999203.png)

## 概要

記事タイトル通り、巷で人気のSuperTrendインジケーターをPythonで再現してみます。

現在における相場の方向性が視覚的にわかりやすく、なおかつトレンドが明確な曲面においては強力なパワーを発揮するため、ぜひシステムトレードなどに組み込んでみたいと思いました。

## SuperTrendインジケーターとは

SuperTrendインジケーターは、フランスの投資家であるOliver Seban氏が考案したトレンドフォロー型のインジケーターです。

参照記事: [Olivier Seban – The Inventor of the SuperTrend Indicator](https://financestrategysystem.com/olivier-seban-sup

元記事を表示

ABC86 C – Traveling で自分の成長を感じた

https://atcoder.jp/contests/abc086/tasks/arc089_a

![abc86_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/1e962333-adda-9225-1db8-01e5f0c8fb52.png)
![abc86_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/68b221b2-d812-678a-8e0e-54d18bc96724.png)
![abc86_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/3e05bab8-7a1f-23b9-dd7e-a7492e1d1efc.png)
![abc86_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73

元記事を表示

ABC87 C – Candies を解いた

https://atcoder.jp/contests/abc087/tasks/arc090_a

![abc87_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/a3459136-fda0-f524-6563-46907ece9bdc.png)
![abc87_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/0f62f3c5-3541-24b8-7946-2e33827fffa4.png)
![abc87_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/14538b59-5133-25a7-7a66-71c086f86f4d.png)
![abc87_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73

元記事を表示

【Python】slackのbotで遊んでみた

## 概要
pythonでslackのbotで応答する内容を設定する処理を作ってみました。

##前提条件
Pythonが既にインストールされていること。
slackのbot設定が完了していること。

##作成するファイル構成
今回作成するファイル構成は以下になります。

“`
run.py
slackbot_settings.py
time_now.py
greeting.py
plugins(ディレクトリ)
└mode.py
“`

##run.pyの実装
run.pyはbotを起動する処理を書いてます。

内容は以下になります。

“`py
# slackbot ライブラリのの呼び出し
from slackbot.bot import Bot

def main():
# ボットを起動する。
bot = Bot()
bot.run()

if __name__ == “__main__”:
main()
“`

slackbot_settings.pyの実装

slackbot_settings.p

元記事を表示

ABC93 C – Same Integers から学んだ

https://atcoder.jp/contests/abc093/tasks/arc094_a

![abc93_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/90d864d1-5a18-55b8-fd44-2b4bb5bbcecd.png)
![abc93_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/eb450237-8f77-b5ac-6c08-57fb8eef2368.png)
![abc93_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/3bcfe891-faa0-be79-97ab-3ce0e37028ab.png)

うーん。さっぱりや。
たまらず、解説ページを開く

https://www.youtube.com/watch?v=HDRfgn_UXLE

説明を聞い

元記事を表示

数理計画(python②)

いろいろ見てると、python-lulp ではなく python-MIP の方が良いとの記述を見かけたので調べてみた。

python3.8(32) では使用できないようなので思い切って、python3.8(64)に入れ替えてました。ついでに、VSCに変更しました。

“`sample.py
# coding: UTF-8
import sys

def GenPlan():
try:
Output = [100, 150, 0, 300, 0, 400, 200]
Before = 200
After = 100
MaxGen = 300
MinGen = 0
MAXHld = 500

# 最適計算
from mip import Model, minimize, xsum, INTEGER, OptimizationStatus

problem = Model()

#製造量
make = [

元記事を表示

OTHERカテゴリの最新記事