- 1. Bottle製のアプリをHerokuへデプロイする方法
- 2. BottleとVueで作成したアプリ(ローカル開発編)
- 3. WebアプリとWebサイトに関する現在までの理解
- 4. PandasのDataFrameでappendの代わりの方法
- 5. Python学習の基礎・覚え書き
- 6. scipy.stats: 適合度の検定 chisquare
- 7. M1 MacminiでTensorFlowを使った画像分類
- 8. python3 MySQL すべてのデータベースのすべてテーブル件数を取得する。
- 9. ICRA 2022: DodgeDrone Challengeに参加した話
- 10. Lambdaの説明とlambdaのlayersの作り方
- 11. DjangoでHello Worldを表示する
- 12. scipy.stats: 関連2標本の平均値の差の検定 ttest_rel, ttest_1samp
- 13. scipy.stats: 独立2標本の平均値の差の検定 ttest_ind
- 14. 【Python】ezdxfを使ってみよう#5~実践!自動作図編~
- 15. scipy.stats: Fisher の正確検定 fisher_exact
- 16. Python3: QRCode の生成と読み取り
- 17. ubuntu NGiNX uwsgi php-fpm 連携
- 18. 【AtCoder解説】PythonでABC253のA,B,C,D,E問題を制する!
- 19. ValueError: Unknown activation function:swish
- 20. 文字表示付きQRコードの作成
Bottle製のアプリをHerokuへデプロイする方法
# Introduction
## きっかけ
ふと自分自身のサービスを作成してみたくて、Webアプリをインターネットにデプロイしてみようと思いました。普段の仕事でAWSを用いた業務アプリはいくつも作ってきました。しかし個人アプリ程度[^1]でAWSを使うのもどうか?と考え、AWSを使わず(なるべく安価で)構築してみようと考えました。とかなんとか考えて作業をしていくわけですが、作業をしていく中でだんだんとこの選択が愚かしいことだったと理解していきます。結論から言うと、Webの世界の茫漠さとAWSの圧倒的な便利さに驚嘆するわけなのですが、この時の自分はわかっていませんでした。[^2]
なお今回の記事は三部作となっております。
WebサイトとWebアプリの違い
Webアプリの開発(ローカル)
Webアプリの公開(Heroku) <-イマココ です。 本記事の内容において上記の解説は省略しております。あらかじめご了承ください。 なおWebアプリとWebサイトに関する ~~未熟さ、~~ 当時の知識レベルはこちらの記事にまとめました。 https://qiita.com/Se
BottleとVueで作成したアプリ(ローカル開発編)
## きっかけ
Pythonでプログラムを書いていると、フロントエンドからの入力部分が割と簡素なものになりがちです。
普段自分で使っているJupyter labなどは最低限の入力画面を作成できますので、他人に見せるときもそれなりの見栄えで紹介できます。しかし自分の作成したPythonプログラムはTerminalからだったり、Pythonコードを修正していじることが多かったため、他人に入力してもらいづらいです。操作性や見栄えが悪いからといって、HTMLやCSSを書くのは億劫です。
個人的には、フロント周りをなんかこういい感じに作成して、最小限の努力でそれなりの見栄えを手に入れたいと思います。色々調べた結果、とっつきやすそうなVueで簡単に作成します。[^1]しかしバックエンドとフロントエンドの接続は、今までAWSを前提としたAmplify等でしか実装したことないため、個人で試すには十分そうなPythonのフレームワークであるBottleを用いて簡単に開発してみようと思いました。
なお今回の記事は三部作となっております。
WebサイトとWebアプリの違い
Webアプリの開発(ロ
WebアプリとWebサイトに関する現在までの理解
# Introduction
> こちらは継続的な記事で、少しずつ加筆します。
## きっかけ
過去インターネットのサービスをいくつも利用してきました。現在はWebエンジニアとして働いています。しかし、未だにWebサイトとWebアプリの境界線がフワッとしています。自分自身のポートフォリオを作成したいと考えてもう3~4年経過しています。ブログは書いたことありますし、こうしてQiitaでも執筆しています。文章ならばいくらでもインターネット上に公開した経験はあります。しかし自分自身で作成したPythonファイルをインターネット上に公開するのはどうすれば良いのでしょう。(過去に業務でクラウドを用いてWebアプリをいくつも作成した経験はあります。)
サーバーレス開発を何度もしている人間が、サーバーを用いたWebアプリ開発で四苦八苦した記録をここに残します。
結論は、AWSマジパネェッス。です。
要するに下記の隔たりがどれほどの隔たりなのかを検証する記事となっています。
ローカル環境へのデプロイと、Webへのデプロイの間にはどれほどの違いがあるのかを検証する記事となります。過程はこの
PandasのDataFrameでappendの代わりの方法
# PandasのDataFrameでappendの代替
## FutureWarning
pandasのDataFrameに対してappendを用いると以下のような警告がされる。
いつかなくなるメソッドだからappendではなくconcatを使ってね、とのこと。
“`text
FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version.
Use pandas.concat instead.
“`## appendを使用する目的
カラム名だけで値は空のDataFrameを用意して、カラムを追加していきたい。
## 結論
コード
“`python
# カラム名のみの空DataFrameを作成
cols = [‘col_{}’.format(s) for s in range(9)]
df = pd.DataFrame(index=[], columns=cols)
# >> Empty DataFrame
# >
Python学習の基礎・覚え書き
# はじめに
この記事は、Pythonの自己学習で学んだこと(基礎的なこと)を書き留めておく覚え書きです。
環境構築手順や、アプリケーション作成のノウハウなどについては触れていませんので、あらかじめご了承ください。
## 実行環境
* MacOS 11.6.2
* Python 3.9.7# 基礎編
## 変数
### 変数宣言
変数名を書くだけで使用できる。キーワードは不要。
“`Py
x = 100 + 123
x.bit_length() # ビット数を取得
“`
“`:output
8
“`
### None
`None`は、何もない状態を示す。Javaで言えば`null`のようなイメージ。## 演算
### 除算結果の小数点以下を切り捨てる
“`Py
20//3
“`
“`:output
6
“`
### べき乗
“`Py
3**2
“`
“`:output
9
“`
### 文字列の繰り返し
文字列型の値に対して乗算を行うと、その文字列を繰り返す。
“`Py
msg1 = ‘hello’
msg2 = ‘!’
print(msg1, ms
scipy.stats: 適合度の検定 chisquare
# scipy.stats: 適合度の検定 chisquare
Help では “Calculates a one-way chi square test” と書いているが,一般的には適合度の検定である。[^1]
[^1]: `scipy.stats.binom_test`, `scipy.stats.power_divergence`, `scipy.stats.chi2_test` との関連についても述べる。
カテゴリーデータの集計の結果,度数分布が特定の分布にしたがっているかどうかの検定である。
特定の分布としては,
– 一様分布
帰無仮説:各カテゴリーの頻度は同じである $H_0: p_i = 1/k,\ \ i=1,2,\dots,k$
– その他の分布
帰無仮説:各カテゴリーの頻度は特定の割合(母比率 $\pi_i$)である $H_0: p_i = \pi_i,\ \ \sum \pi_i = 1,\ \ i=1,2,\dots,k$“`python
from scipy.stats import chisquare
“``chisqu
M1 MacminiでTensorFlowを使った画像分類
# 参考
– [Getting Started with tensorflow-metal PluggableDevice](https://developer.apple.com/metal/tensorflow-plugin/)
– [Making your own TensorFlow model for image classification](https://github.com/tensorflow/hub/tree/master/tensorflow_hub/tools/make_image_classifier)# 概要
tensorflowを使用した画像分類を試してみます。今回使用するのは`tensorflow-macos`です。
`tensorflow-metal`もインストールしてみましたが、うまく動作しなかったため後日再チャレンジします。# 目次
[環境](#環境)
[仮想環境の用意](#仮想環境の用意)
[pipのアップデート](#pipのアップデート)
[tensorflow-macosのインストール](#tensorflow-macosのイン
python3 MySQL すべてのデータベースのすべてテーブル件数を取得する。
### 環境
“`
$ cat /etc/os-release
NAME=”Amazon Linux”
VERSION=”2″
ID=”amzn”
ID_LIKE=”centos rhel fedora”
VERSION_ID=”2″
PRETTY_NAME=”Amazon Linux 2″
ANSI_COLOR=”0;33″
CPE_NAME=”cpe:2.3:o:amazon:amazon_linux:2″
HOME_URL=”https://amazonlinux.com/”$ python3.9 -V
Python 3.9.13
“`
### 必要なパッケージ
・pip install mysql-connector-python“`python:get_all_table_count.py
#!/usr/local/bin/python3.9
import mysql.connectordef convertTuple(tup):
str = ”.join(tup)
return strdef tableCount (HOST:str,
ICRA 2022: DodgeDrone Challengeに参加した話
# はじめに
以前書いた記事も面白いのでぜひご覧になってください!
[AWS Robot Delivery Challenge 2022 に出場できなかった話](https://qiita.com/KyoBashi/items/153aff5ce8af7111b537)# DodgeDrone Challenge とは?
詳しくは[こちら](https://uzh-rpg.github.io/icra2022-dodgedrone/)DodgeDrone Challengeとは、ロボットの国際学会である[ICRA2022](https://www.icra2022.org/)の中で行われたドローンの制御を競う研究目的のコンテストです。シミュレーターが用意されていて、その中で自分の書いたコードを動かしてドローンを飛ばします。
コンテストは終了しましたが、ソースコードは公開し続けるそうなので興味を持った方はぜひ動かしてみてください!!
# ルール
動く球状の障害物が多数配置されているフィールド内でドローンが初期位置から60m先に到達するとゴールとなります。State bas
Lambdaの説明とlambdaのlayersの作り方
## lambdaとは
AWS Lambda は、サーバーレスでイベント駆動型のコンピューティングサービスであり、サーバーのプロビジョニングや管理をすることなく、事実上あらゆるタイプのアプリケーションやバックエンドサービスのコードを実行することができます。インフラストラクチャのプロビジョニングや管理をすることなくコードを実行コードを書いて、.zip ファイルやコンテナイメージとしてアップロードするだけです。
### サーバーレス
サーバーではなくて、その場でコードを実行する環境です、trigger(s3,SQSなど)で実行しても良い、定期実行もCloudwatchイベントからでも出来ます、サーバーと違って使ってる分だけを支払いします。同時実行も1秒で1000件まで出来ますのでインフラが楽です。
### 使い方
Lambdaを作るには割と簡単です!名前と言語とアーキテクチャを選べたらもうコード修正とテストが出来ます。
名前はエンドポイントになりますので気をつけてお名乗りください。
環境としては色々の言語は出来ます。
![Screen Shot 2022-05-27 a
DjangoでHello Worldを表示する
# 1. はじめに
PythonのWeb開発フレームワークとして人気のDjango(ジャンゴ)で「Hello World」を表示していきます。
開発環境はWindows上に仮想環境を構築し、仮想マシン(Ubuntu)で行います。# 2. 開発環境
OS: Windows 10 Pro
VirtualBox: 6.1
Vagrant: 2.2.19
仮想マシン: Ubuntu 20.04.4 LTS
Python: 3.10.4
Django: 4.0.4# 3. Djangoとは
DjangoはPythonで実装されたWebアプリケーションのフレームワークの一つです。
Instagramやmozillaなどの有名なサイトでDjangoが使われています。
オープンソースで多数の機能が含まれおり、効率的に開発を進めることができます。# 4. 環境構築
まずはWindows上に仮想環境を構築し、仮想マシン(Ubuntu)にPythonとDjangoをインストールします。## 4.1. VirtualBoxインストール
Virtual
scipy.stats: 関連2標本の平均値の差の検定 ttest_rel, ttest_1samp
# scipy.stats: 関連2標本の平均値の差の検定 ttest_rel, ttest_1samp
# 1. テストデータの生成
“`python
import numpy as np
x = np.array([63.6, 62.9, 41.1, 54.0, 45.0, 39.8, 62.4, 37.8, 45.5, 47.9])
y = np.array([69.7, 50.2, 48.7, 59.4, 52.8, 54.9, 76.9, 66.4, 50.1, 48.8])
“`# 2. 関連2標本の平均値の差の検定 `ttest_rel`
“`python
from scipy.stats import ttest_rel
“``ttest_rel(a, b, axis=0, nan_policy=’propagate’, alternative=’two-sided’)`
デフォルトで両側検定である。特に指定するなら `alternative=’two-sided’` を指定する。
帰無仮説は「2 つの対応のある標本の母平均は等しい」である
scipy.stats: 独立2標本の平均値の差の検定 ttest_ind
# scipy.stats: 独立2標本の平均値の差の検定 `ttest_ind`
# 1. 関数定義
`ttest_ind(a, b, axis=0, equal_var=True, nan_policy=’propagate’, permutations=None, random_state=None, alternative=’two-sided’, trim=0)
あまり使われない引数もあるので,一応説明を加えておく。
– equal_var : 等分散を仮定するか?
デフォルトは `True` で,二群の分散が等しいと仮定する検定を行う。`False` を指定することで,二群の等分散を仮定しない Welch の方法による検定を行う。
– nan_policy : `nan` の取り扱いかた
* ‘propagate’: 結果として `nan` を返す
* ‘raise’: エラーを発生させる
* ‘omit’: `nan` を除いたデータで検定する
– permutations : 並べ替え検定
0 また
【Python】ezdxfを使ってみよう#5~実践!自動作図編~
ここまで図形の描画と寸法線の描画をまとめました。
それらの応用として、実際の構造物を作ってみましょう!前章はこちら:[#4~寸法編~](https://qiita.com/Rai-see/items/04a5733e77f791cdaa09)
## 実践!自動作図! ##
pythonで自動作図する優位性を考えて、規格の異なる構造物を同じコードで作成することに挑戦!U型トラフ(U字溝)をサンプルにして挑戦してみます。
U型トラフの規格は下記のHPを参考とします。http://www.sckk.jp/product/road/uu.html
カリオストロ級のspaghetti codeとなりましたが、非プログラマのやることと思ってお付き合いください。:spaghetti::spaghetti::spaghetti:
## 前提事項 ##
– これまでの作図メソッドの振り返りを兼ねますので、座標などの管理が合理的でない点が多々あります。座標管理の合理性の追求は次章以降とするつもりです。
– 寸法値b,eを採用し正確な再現をすると三角関数などが登場し可読性が低下するため無視
scipy.stats: Fisher の正確検定 fisher_exact <-- 使うな!!
# scipy.stats: Fisher の正確検定 fisher_exact <-- 使うな!! この際,はっきり言おう。 **Fisher の正確検定は,決して使ってはいけない**。 そもそも,Fisher の正確検定の前提は,実際に使われている場面とかけ離れている。 代替案というか,Fisher の正確検定を使わないで,「**連続性の補正をしない$\chi^2$検定を使いなさい**」ということに尽きるようだ。 それを受け入れられない人は,いろいろ自分で調べてみよう。その上で使いたい場合は自己責任でどうぞ。 ということで,**以下は読む必要なし**。 --- `fisher_exact(table, alternative='two-sided')` 引数には 2×2 分割表を与える。デフォルトで両側検定である(`alternative='two-sided'`。他に `'less'`,`’greater'` が指定できる)。 戻り値は「オッズ比」と 2 変数が独立であるという検定結果(両側検定)の $p$ 値である。 以下の分割表について検定する。 `
Python3: QRCode の生成と読み取り
Ubuntu 22.04 で必要なライブラリーのインストール
“`bash
sudo apt install python3-qrcode
sudo apt install python3-pyzbar
“`## 生成 ##
“`py:generate_qrcode.py
#! /usr/bin/python
#
# generate_qrcode.py
#
import sys
import qrcodetext_in = sys.argv[1]
file_png = sys.argv[2]
img = qrcode.make(text_in)print(type(img))
print(img.size)img.save(file_png)
“`実行例
“`text
$ ./generate_qrcode.py https://ekzemplaro.org out01.png
(330, 330)
“`## 読み取り ##
“`py:read_qrcode.py
#
ubuntu NGiNX uwsgi php-fpm 連携
[・準備](#準備)
[・phpfpmのインストール](#php-fpmのインストール)
[・NGiNXの設定](#NGiNXの設定)
[・php-fpmの設定](#php-fpmの設定)
[・起動](#起動)# 準備
・以下の記事を参考にさせていただいた都合上、uWSGIとnginxの設定はこの記事のとおりであるという前提になってしまいますが、 ご了承ください。https://qiita.com/Ningensei848/items/e91fbeef5f03685a7a0b
# php-fpmのインストール
まず、以下の二つのコマンドで
リポジトリをインストールします
“`
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej / php
“`
php-fpmをインストールします
“`
$ sudo apt install php7.4-fpm
“`
追加モジュールインストールします。
“`
$ sudo apt install php7.4-comm
【AtCoder解説】PythonでABC253のA,B,C,D,E問題を制する!
**ABC253**の**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**
ValueError: Unknown activation function:swish
### ValueError: Unknown activation function:swish が出た時
### 原因:
レイヤーが入っていないため、エラーが起きる
参考記事:https://github.com/qubvel/efficientnet/issues/62### 解決法:
– モデル作成時の既存のレイヤーを入れる↓
“`
from efficientnet.keras import EfficientNetB0
“`
– 自作のレイヤーを入れる↓
[こちらの記事](https://qiita.com/kiakiraki/items/2ec24f13ee870e13a0fb) を参考にする
文字表示付きQRコードの作成
# 目的
csvファイルに書き込んだ文字情報とURLを使って文字表示付きのQRコードを作成します。下記サイトを参考にさせていただきました。
[Pythonによる文字表示付きQRコードの大量生成](https://qiita.com/Kosuke_Matsui/items/abc379e4486eeacd283e)# 開発環境
Python version:3.9.7
OS: windows 10.0# イメージ
![スクリーンショット 2022-05-30 9.15.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176158/b5d84f68-ffb9-c598-44cb-7a8f51aa5336.png)
表示したい文字と生成したいQRコードのアドレスをcsvファイルとして準備します。
PySimpleGUIを使って、csvファイルを選択し、処理をして、my_qr_codeのフォルダにQRコードを保存できるようにします。# プログラム
プログラムは、[git](https://g