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

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

Herokuで [CRITICAL] WORKER TIMEOUTと出た時に対処したこと[python]

ローカル環境では動いていたのに、Herokuにデプロイするとなぜか動かない…

$ heroku logs -t –app アプリ名
でログを見てみるとこんな表記を発見。
2021-08-11T02:53:56.976537+00:00 app[web.1]: [2021-08-11 02:53:56 +0000] [4] [CRITICAL] WORKER TIMEOUT (pid:9)

タイムアウトしてるじゃないか。

https://devcenter.heroku.com/ja/articles/request-timeout
ここを見ると、どうやら30秒でタイム・アウトするらしい。
これを乗り越えるために必要なのはバックグラウンドジョブによる処理だ。

RQ を使用した Python でのバックグラウンドタスク
https://devcenter.heroku.com/ja/articles/python-rq

ということで、ここに書いてあるとおり、RQを使ってバックグラウンドジョブに投げる必要がある。

## ハマったこと

### ジョブが投げられているかどうかが分

元記事を表示

島根県松江市における気象予報値をCSVに保存し、Webサイトで閲覧できるようにしたので、これをPandasで読み込んで可視化してみる。

# はじめに

以下のサービスを利用して気象予報値を入手し、業務システムで利用しているのですが、生データを加工するのがなかなか大変。

http://www.jmbsc.or.jp/jp/

ということで、とりあえず直近に必要なデータとして、島根県松江市における2日後の気象予報値をCSVで保存して、毎日23:30に更新するという仕組みを作ってみたので可視化も試してみた。

気象予報のデータを加工するのは以下の記事をご参照下さい。

https://qiita.com/ysomei/items/12d6622bed030f6ac793

# CSVのダウンロード

以下のURLにてCSVのダウンロードが可能です。
毎日23:30時点における翌々日の1日分の1時間ごとのデータ24点が確認できます。

[data.csv](https://blueomega.jp/20210812_gRfm/data.csv)

各項目については、以下のURLをご参照下さい。

https://ods.n-kishou.co.jp/tech/blog/detail/1923

# 可視化

とりあえず、デー

元記事を表示

NeuralProphetを使ってみた

* 製造業出身のデータサイエンティストがお送りする記事
* 今回は時系列解析手法のNeuralProphetを使ってみました

##はじめに
過去に時系列解析に関しては何個か整理しておりますので、興味ある方は参照して頂けますと幸いです。

* [時系列解析](https://qiita.com/DS27/items/1e998a58488e76bfcbdc)
* [状態空間モデル](https://qiita.com/DS27/items/cd0e11c2b9eb097c606b)
* [時系列予測をGBDTで実装してみた](https://qiita.com/DS27/items/85abd5862367ff6eaadb)
* [時系列解析手法のSARIMAモデルを試してみた](https://qiita.com/DS27/items/b70aad44721dfa7ac5f7)
* [ProphetをOptunaでハイパラチューニングをしてみた](https://qiita.com/DS27/items/d539e797f533ebc87419)

##NeuralProphetとは

元記事を表示

GitHub App の認証を Python でする場合

# はじめに

DocsにはRubyスクリプトが掲載されていたのですが、Pythonを利用したかったためそのサンプルです

## GitHub App による認証

https://docs.github.com/ja/developers/apps/building-github-apps/authenticating-with-github-apps

“`ruby
require ‘openssl’
require ‘jwt’ # https://rubygems.org/gems/jwt

# Private key contents
private_pem = File.read(YOUR_PATH_TO_PEM)
private_key = OpenSSL::PKey::RSA.new(private_pem)

# Generate the JWT
payload = {
# issued at time, 60 seconds in the past to allow for clock drift
iat: Time.now.to_i – 60,
#

元記事を表示

PyTorchを使って学べるレシピ紹介

# はじめに

Axrossを運営している藤原です。

**[Axross](https://axross-recipe.com/recipes)** とは、エンジニアの”教育”と”実務”のギャップに着目し、「学んだが活用できない人を減らしたい」という想いのもと、ソフトバンクと社内起業制度にて立ち上げたサービスです。
現役エンジニアによる実践ノウハウを”レシピ”として教材化し、実際にプログラミングで実装を追体験しながら学ぶことができます。AI/機械学習をテーマにした、様々な業務領域やビジネスの課題解決に応用できる実践的な学習教材を160以上揃えています。(2021年8月時点)
Axross:https://axross-recipe.com
公式Twitter:https://twitter.com/Axross_SBiv
![Axrossアイキャッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/9f500e0e-a759-20e2-bb8b-480bbcfaaf9b.png)
今回は、

元記事を表示

Google Apps Scriptの関数をPythonから起動する

#Google Apps ScriptをPythonから起動してスプレッドシートのデータを、Gmailで送信したい

状況
・WindowsのPythonでスクレイピングをしている
・スプレイピング結果をGmailでお知らせする
・送信先や店舗名などマスタ情報はスプレッドシート上にある

環境
・python3.9 Windows10
・GoogleWorkspace Business Starter

まず考えたこと
①GmailAPIでメールを送信して、GoogleSheetsAPIでマスタ情報を取得しようか
→GmailAPIを使って送信者名を設定したり、htmlメールを送信する方法がわからない
→[GmailAPI Python Quickstart](https://developers.google.com/gmail/api/quickstart/python)
↑GmailAPIで送信者名を設定したり、htmlメールを送信する方法がわからなかった。どなたか教えてください。

②pythonのsmtplibを使ってGmailを送信しようか
→スプレッドシート

元記事を表示

【基本周波数で遊ぶ②】藤崎モデルのパラメータ逆推定をやってみる

#######################################################################
#目次
・[藤崎モデルのパラメータ逆推定をやってみる②](#藤崎モデルのパラメータ逆推定をやってみる)
・[実装](#実装)
 - [①前処理:補間](#前処理補間)
 - [①前処理:マイクロプロソディの除去](#前処理マイクロプロソディの除去)
 - [②ハイパスフィルタで分解](#ハイパスフィルタで分解)
 - [③フレーズコマンドの初期推定](#フレーズコマンドの初期推定)
 - [④アクセントコマンドの初期推定](#アクセントコマンドの初期推定)
 - [⑤最適化](#最適化)
・[結果](#結果)
・[終わり](#終わり)

#######################################################################
#藤崎モデルのパラメータ逆推定をやってみる②

今回は前回やった
「[【基本周波数で遊ぶ】藤崎モデルのパラメータ逆推定をやってみる](https://qiita.co

元記事を表示

YouTubeからサムネイルを集めてGANで画像を生成する

#経緯
今回、これを企画した理由はVtuberのさくらみこさんの夏休み自由工作に投稿するためです。

元記事を表示

Hit&Blow(ヒットアンドブロー)のソルバーをpythonで書いてた

## はじめに
先日、世界のアソビ大全をやっていたのですが、「ヒット&ブロー」っていうNumer0n(ヌメロン)みたいなやつが面白かったのでソルバーを作ってみました。

## 仕様
青→1 赤→2 緑→3 黄→4 紫→5 白→6
で4つの数字とヒット・ブローの判定結果を入力することで、正解の候補を出力します。

## コード
言語はPythonを使用しました。
※答えの同色はなしがデフォルトで設定されています。

“`python:solver.py
import copy

def same_number_check(lst):
for i in lst:
if lst.count(i) >= 2:
return True
return False

def h_and_b_check(a_lst, b_lst):
x = 0
y = 0
for i in range(4):
if a_lst[i] == b_lst[i]:
x += 1

元記事を表示

Python の列挙型を JSON Serializable にする方法

Python の列挙型はそのままでは JSON Serialize することができない。

“` python
from enum import Enum

class NUMBERS(Enum):
ONE = “one”
TWO = “two”
THREE = “three”
“`

“` python
import json

json.dumps(NUMBERS.ONE) #=> TypeError: Object of type NUMBERS is not JSON serializable
“`

この場合、JSON Serializable な型のサブクラスにすると解決する。

“` python
from enum import Enum

class NUMBERS(str, Enum):
ONE = “one”
TWO = “two”
THREE = “three”
“`

“` python
import json

json.dumps(NUMBERS.ONE) #=> “one”
“`

この

元記事を表示

にゃんこスイーパー

UbuntuのTerminalで動く、にゃんこスイーパーです。

ファイルに、chmod +x nyankosweeper.pyとして、実行権を付けて動かして下さい。

$./nyankosweeper.py [number of cats]として、動かします。
[number of cats]は、省略できます。省略すると、機雷の数は61個となります。

スペースキーで、開き、’z’キーで、マークを付けます。カーソルは矢印キーで動かします。
’q’キーで抜け出せられます。

pyinstallerで、コンパイルできます。コンパイルしなくとも、そもそも速度はあんまり問題ないですが。

“`nyankosweeper.py
#!/usr/bin/python3

import curses
import random
import locale
import select
import sys

xsize = 40
ysize = 23
vvram = [[0 for i in range(ysize)] for j in range(xsize)]
mask = [[“#” for

元記事を表示

初心者チームでkaggleコンペに参加して銅メダルを取った話

# 前置き
[SIIM-FISABIO-RSNA COVID-19 Detection](https://www.kaggle.com/c/siim-covid19-detection)というコンペ(5月18日〜8月10日)に参加して、銅メダルを取得することができました(116位/1324)。
そのときに行った勉強法や取り組み方をこの記事にまとめていこうと思います。
ちなみにTitanicを終えて、コンペに挑戦する方に向けて&自分の振り返りを兼ねてこの記事を書きます。

# 目次
* 今回チームで参加するとなったきっかけ
* チームのレベル感
* 勉強会しました
* コンペへの取り組み方
* 反省点
* 最後に

## 今回チームで参加するとなったきっかけ
私が機械学習を始めてからTwitterでも情報発信・情報収集などを行っていました。
そこでフォローしているkagglerの方々がコンペの話を楽しそうにしているところを拝見して、自分もこの方達と同じレベルでkaggleに参加したいと思い、「kaggle参加したい」とツイートしたのがきっかけでした。
一人がそのツイートに反応してくださ

元記事を表示

matplotlibとPyQtGraphのコードの比較

 まあ比較と題しておきながらPyQtGraph側は公式のサンプルコードを眺めてもらいますが.
# 環境
+ Mac mini(M1) Big Sur
+ Python 3.9.6(arm64)
+ Qt6, PyQtGraph 0.12.2
+ matplotlib 3.4.2

# 背景と目標
 計算が正常かをグラフにして確認したかったのですが,matplotlibの描画時間が本体の計算時間の10倍(体感)でやってられませんでした.そこで計算とその確認に時間を集中できるように高速(らしい)PyQtGraphに乗り換えた・・・・・・いのですが,読みにくいことで定評のあるmatplotlibの公式ドキュメントよりもPyQtGraphの方が役に立たなそう(サンプル見て覚えろなスタイル)だったので,まずはそのサンプルをmatplotlibで描き直してmatplotlib→PyQtGraphの対応関係を確認してみました.

# その前に
 対応関係だけ確認したい場合はこの章は無視して構いません.PyQtGraphにたどり着くまでに調べたことを簡素にまとめておきます.

## pythonで使え

元記事を表示

ゼロから作るDeep Learning, 斎藤康毅

今まで買ってよかった技術書を紹介しよう!
https://qiita.com/official-events/d409f91fc8b9b44cefb4
参加記事です。

人生で影響を受けた本100冊。Youtube(3)
https://qiita.com/kaizen_nagoya/items/16af53acbb147a94172e

# 97. ゼロから作るDeep Learning
Pythonで学ぶディープラーニングの理論と実装, 2016/9, 斎藤 康毅
512ru2i5gyL._SX352_BO1,204,203,200_.jpg

https://bookmeter.com/books/11128002
https:/

元記事を表示

PythonのPDF作成用ライブラリを試してみた。

PythonでPDFを出力する必要があり、試した内容をメモしたいと思います。
試したライブラリは以下の2つです。
・ReportLab
・xhtml2pdf

※試した内容はすべてLinux(CentOS7)で実施しています

# ReportLab
ReportLabには無料版(ReportLab open-source)と有料版(ReportLab PLUS)あります。
PLUSだとtemplating toolsなど追加機能があるようです。
グラフや表も描画できます。
BSD License

参考

Pythonで日本語をPDFに出力する(ReportLabを利用)


https://www.reportlab.com/
https://www.reportlab.com/docs/reportlab-userguide.pdf
https://www.reportlab.com/chartgallery/

“`bash:前準備
$ python3 -m venv myenv1
$ source myenv1/bin/activate

元記事を表示

線形回帰 用語集

# はじめに

オライリージャパン様の***scikit-learn, Keras,TensorFlowによる実践機械学習***の4章、モデルの訓練について学んだことをメモするための記事になります。

# 線形回帰
## 正規方程式

$$\theta = (X^TX)^{-1}X^Ty$$
で与えられる式のこと。
$$目的変数 = (X^TX\theta)-X^Ty$$
$X\theta$は仮定関数のこと。
これを目的変数 = 0で解くと正規方程式の形になる。

“`python
import numpy as np
import matplotlib.pyplot as plt

X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
plt.scatter(X, y);
“`
![Imgur](https://i.imgur.com/gYDz5cZl.png)

“`python
# 切片の追加
X_b = np.c_[np.ones((100, 1)), X]
# linalg.in

元記事を表示

kaggleで初メダルを獲得しました!!!(4ヶ月でExpertになれました)

## はじめに
[Google Smartphone Decimeter Challenge](https://www.kaggle.com/c/google-smartphone-decimeter-challenge/overview)に参加し,銅メダルを獲得することができました.(CommonLit Readability Prizeコンペでも銀メダルを頂きました.)
銅メダルを取るまでの流れを記載していきます.**一例として,見て頂ければ幸いです.**

## 目次
+ [バックグラウンド](https://qiita.com/yoneyoneclub/items/2bb22e1e7e0242d696b9#%E3%83%90%E3%83%83%E3%82%AF%E3%82%B0%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89)
+ [inclassコンペへの参加](https://qiita.com/yoneyoneclub/items/2bb22e1e7e0242d696b9#inclass%E3%82%B3%E3%83%B3%E3%83%9A%E3%

元記事を表示

Pythonでオーディオスペクトラム表示

PythonでPyAudio、NumPyを使って
マイクから拾った音をリアルタイムでオーディオスペクトラム表示するものを作ってみました。

## 実行例

![Microphone-Test3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538393/98cf9265-31ab-4eac-e034-2a7d6982c74a.gif)
![Microphone-Test4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538393/cd8fecee-940b-0481-2195-1962235be3fc.gif)

## 動作確認環境

* Python : 3.8.10
* NumPy : 1.21.1
* PyAudio :0.2.11
* opencv-python : 4.5.3.56

Windows10環境だと、PyAudioをインストールしようとして
`pip install pyaudio` をしても失敗

元記事を表示

PythonistaのためのC++記法入門: それC++ではどう書くの4 ~queue / stack / deque~

[PythonistaのためのC++記法入門: それC++ではどう書くの3](https://qiita.com/nctp/items/919eb1464de6e8684da5)の続き。今回は競プロでよく用いられるようなデータ構造。

# queue / stack / deque

基本は`push(値)`してデータを格納、`pop()`でデータを取り出す。
Pythonとは異なり`pop()`した値を**他の変数に代入することはできない**(`auto val = q.pop();`とはできない)。
アクセスできる位置に制約がある代わりに非常に高速なアクセスが可能。

FIFO型かLIFO型かによって*先頭*の定義が変わり、それにより先頭へのアクセス方法が`front()`もしくは`top()`となる。この先頭要素へのアクセスが非常に高速であるのがこれらのコンテナの特徴。`Deque`は両端および*中間要素へのアクセスが可能*だが中間要素へのアクセスは高速ではない。

PythonではQueue / Stack単体に該当するものはなく、これらをまとめたDequeが利用できる。その

元記事を表示

PythonistaのためのC++記法入門: それC++ではどう書くの3 ~tuple / dict(map) / set~

[PythonistaのためのC++記法入門: それC++ではどう書くの2](https://qiita.com/nctp/items/bda68b81d124e4f47d9f)の続き。今回はPythonでも頻繁に利用する`tuple`や`dict`などをC++ではどう書くか見ていく。

# tuple / dict / set

## tuple

C++では要素数によって`pair`と`tuple`があるが、Pythonでは要素数に関わらず一律`tuple`として扱われる。Pythonの`tuple`はイミュータブル(変更不可)であるために不変のデータの格納に向いているとよく言われる。

### Pythonだとこう書いた

“`python
# 要素数2のtuple
p = (“math”, 4) # ()はなくても可

# 要素へのアクセス
subject = p[0]
score = p[1]

# アンパックの基本
subject, score = p # 代入する変数の数と要素数が一致していないといけない

# 要素数3のtuple
score = (“Bob”,

元記事を表示

OTHERカテゴリの最新記事