- 1. 【Python】0からWebアプリ!ハンズオン(3)~API実装編~
- 2. pythonのprint関数と文字列について初心者向けに説明します。
- 3. ABC175
- 4. python pandasメモ
- 5. 【Python】新型コロナウイルスの各都道府県の状況がPDFしか公開されていないけどダウンロードはせずにスクレイプしてみた。
- 6. 2020年から始めるAzure Cosmos DB – Azure Synapse Link Demo (Part. 1)
- 7. 組合せ最適化による競馬必勝法
- 8. 昼飯データベースを作りたい【EP1-3】はじめてのDjango勉強編
- 9. 変数命名でよく迷うやつ
- 10. blender, python, 球の動作
- 11. プロ野球の実況ツイートからファンの民度を測ってみた
- 12. OpenCVのスーパーピクセル
- 13. 自分の資産推移を自動でまとめるプログラムを書いた話
- 14. グレースケールと輝度平滑化
- 15. FastAPIをマルチプロセス&SSLで動かすためのステップバイステップ
- 16. Codeforces Round #654 (Div. 2) バチャ復習(8/18)
- 17. AtCoder 174 BCD
- 18. Pythonでハノンっぽい楽譜を作ったお話
- 19. Python: 2次元データ分布状態の図化(カーネル密度推定)
- 20. Pandas 列名×行番号で要素を抽出する
【Python】0からWebアプリ!ハンズオン(3)~API実装編~
# 概要
Pythonで0からWebアプリを作る機会があったので、そのまとめとして!
この記事ではAPIの実装について書いています。# こんな方に読んでほしい
* プログラミング未経験だけどアプリ作ってみたい方
* 新人Webプログラマの方
* 経験者だけどPythonでWebアプリ書いたことない方# ゴール
HTML, CSS, JavaScript, Python, SQLを使ってCURD機能を持ったWebアプリを作成するのが目標です。# 必要なもの
* PC(Windows OS)
* インターネット回線
* わくわくした気持ち# 1. データベースにデータを用意する
まずはAPIからデータベースに接続し、データを取得してみようと思います。
そのために、pgAdminでテストデータを用意しましょう。
pgAdmin4を起動し、TodoDatabase > Schemas > public > Tables > todoを右クリックし、View/Edit Data > All Rowsを選択します。
pythonのprint関数と文字列について初心者向けに説明します。注: この記事は、pythonの環境が整ったことから始めています
##はじめに
はじめまして、この記事ではpythonで私が一番最初に覚えたことを書いていきたいと思います。##まずはhello world
これは、pythonを覚えるとき、初心者が一番最初に覚えることだと思います。
とにかく対話型コードに次のようにコードを書いてエンターを押してみてください。“`ruby:hello.py
print(“hello world”)
“`
実行してみてください。
そしたらこのように出るはずです。“`ruby:hello.py
hello world
“`これは、print関数を使って、ダブルコーテーションの中の文字を文字列として表示させただけです。文字列とは、文字が連なったものです。1文字だけでも文字列と読んだりします。ただし、文字列は、文字などで数とは違うので計算できません。
命令は、ただ単にhello worldと表示させろという命令です。##数字を使ってみよう
aさんは1+1の計算がしたいけどわかりません。pythonを使って計算することにしました
ABC175
AtCorder Beginner Contest 175 に参加しました。
ABCの3問ACでした。
Python3を使用しています。# A問題
まず雨(R)の数を求めます。
今回は連続した雨(R)の数を求めるので、RSRの場合は1と答える場合分けの処理を行います。
3日間の天気しか入力されないため例外は1つ考慮すれば十分です。“`python
import sys
def input():
return sys.stdin.readline()[:-1]def main():
s=input()
c = s.count(“R”)
if c == 2 and s[1] == “S”:
c += -1
print(c)if __name__ == “__main__”:
main()
“`
# B問題
*問題文ではi、j、kを選んだ棒の番号になっていますが、以下の解答では棒の長さになっています。
棒の長さリスト(L)から、3本の棒を選びます。
棒を選ぶ順番は影響しない、かつ長さ
python pandasメモ
pythonによるpandasの使い方を調べたので、そのメモ。
pythonによる実装も始めただったので、pythonの書き方の備忘録もある。プログラムの中でやっていること。真値と比較する値を取得。
各時間軸のベクターを取得し、その差分を確認。ここからプログラム
使用環境はpython3“`
import pandas as pd
import numpy as npclass Trajectory:
def __init__(self, csvData: pd.DataFrame):
self.csvData = csvData
self.true_x = self.csvData[‘true_x[m]’]
self.true_y = self.csvData[“true_y[m]”]
self.true_theta = self.csvData[“true_theta[degree]”]
self.tra_x = self.csvData[“trajectory_x[m]”]
【Python】新型コロナウイルスの各都道府県の状況がPDFしか公開されていないけどダウンロードはせずにスクレイプしてみた。
# はじめに
本記事は、先日デイリートレンドにて見かけた
[新型コロナウイルスの各都道府県の状況がPDFしか公開されていないのでAPIを作ってみた[Python]](https://qiita.com/tommy19970714/items/becd2c46d5942d6e9b80) by @tommy19970714
をPDFをダウンロードせずに実現できないかということで、
PDFの内容を取得 → JSON形式に加工
までをPDFのダウンロード無しで書いてみたものです。# PDFをダウンロードせずにどうやって中身の情報を得るか
`Tika`というPDFなどからテキストを抽出できるライブラリを利用します。
このライブラリはローカルのPDFからのテキスト抽出を紹介されていることが多いですが、実はネット上のPDFに対しても使用することが出来ます。[元記事](https://qiita.com/tommy19970714/items/becd2c46d5942d6e9b80)のコードによりPDFファイルのURLを取得し、
“`python
import urllib.reques
2020年から始めるAzure Cosmos DB – Azure Synapse Link Demo (Part. 1)
# はじめに
この記事は、[GitHub][GitHub] 上で公開されている Azure Synapse Link for Azure Cosmos DB のサンプルの解説記事です。
本家の記載は英語となっています。[こちら][GitHub-ymasaoka] のリポジトリにて日本語訳を行っていますので、どちらか好きな方にアクセスを行ってください。– 本家 (English): [Azure-Samples/Synapse][GitHub]
– 日本語訳 (非公式): [ymasaoka/Synapse][GitHub-ymasaoka]なお、Azure Synapse Link for Azure Cosmos DB のサンプルは、[/Notebooks/PySpark/Synapse Link for Cosmos DB samples/](https://github.com/ymasaoka/Synapse/tree/ja-jp/Notebooks/PySpark/Synapse%20Link%20for%20Cosmos%20DB%20samples) に用意され
組合せ最適化による競馬必勝法
## これなに
「[競馬必勝法をプログラム化](https://qiita.com/naonao_py/items/019b15876e3ef02d92f2)」を組合せ最適化で解いてみました。
– 考え方は「[うまめし.com 競馬必勝法](https://www.umameshi.com/info/0011.html)」を参考にしてます。
– プログラムについては、「[原油の製油の最適化 – モデル化のポイント](https://qiita.com/SaitoTsutomu/items/e3ef218b78fd859b4aeb#%E3%83%A2%E3%83%87%E3%83%AB%E5%8C%96%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88)」を参考にしてください。## 元データ
2013年9月20日名古屋競馬1レースの単勝と馬単の表です。
この表の各行ごとに馬券を何枚買うかを求めます。“`py
from ortoolpy import addbinvars, lpSum, model_min, pddef sam
昼飯データベースを作りたい【EP1-3】はじめてのDjango勉強編
#本稿は続きものです。
前回⇒[昼飯データベースを作りたい 【EP1-2】はじめてのDjango勉強編](https://qiita.com/EconUC/items/408ae1a7118fe8078369)
前々回⇒[昼飯データベースを作りたい 【EP1-1】はじめてのDjango勉強編](https://qiita.com/EconUC/items/96fc1cd2e866f8fc72ed)
初回のもの書き⇒[昼飯データベースを作りたい!【EP.0】](https://qiita.com/EconUC/items/cf1f69cfefb6c63e4c31)#前回までのおさらい
Djangoのチュートリアルに沿って、投票アプリケーションの作成を行いながらDjangoの基礎に触れてきました。
前回のラストでTemplateを用いた画面表示を作るところまで来ました。
今回はTemplateの続きからです。#Formの作成
前回、`index.html`の編集が終わりました。今回は`detail.html`にForm機能を搭載していくところから始めていきます。“`html:
変数命名でよく迷うやつ
#個人的変数命名
今後、どんどん追加していきたい。
コメントも反映します⭐︎##複数形
| 変数 | 解説 |
|:-:|:-:|
| index | インデックス (i, idx) |
| indexes | indexの配列 (ids) |
| articles | 記事の配列 |
| article_id | 記事のID |
| article_ids | 記事IDの配列, article_id + s |
| articles_id | いくつかの記事をまとめたID |
| 関数 | 動詞 |
| get_article | 一つの記事を取得する |
| get_articles | 複数の記事を取得する |##よく使う単語
| 関数 | 解説 |
|:-:|:-:|
| get_〇〇 | 〜を取得する |
| calculate_〇〇 | 〜を計算する |
| generate_〇〇 | 〜を生成する |
| display_〇〇 | 〜を表示する |
| format_〇〇 | 〜を整形する |
| fetch_〇〇
blender, python, 球の動作
blender, python, 球の動作
blender 2.8, python, の記事。続きです。今日やったのは立方体の配置、照明配置カメラ配置、着色。キーフレーム指定での球の動きと円柱の動き。球の着色に少し手間取りました。R,G,B,alphaと4つ数値を並べるのがわかるようでわからないまま。
twitterに1秒間の動画[blender 2.8, python. 動画1秒, 33kB](https://twitter.com/naohiko7/status/1295727667661037568) を投稿しています。画質は400px*300pxで荒いまま。
![qiita_s20200818.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690216/465ee2a6-84dc-bd92-7da1-f77ad9ec7b20.png)“`
import bpy
# nh06 ( キーフレーム応用で 円筒形と球形を動かす)# 既存 mesh, light, camera, みな削除
プロ野球の実況ツイートからファンの民度を測ってみた
# はじめに
> プロ野球(NPB)がある程度わかる人向けの記事です。
> ちなみにわたしは?ファンですが,特定のファンを悪く言う目的はない,ということを理解した上で見てください。以前,こんなニュースがありました。
> – [巨人の藤浪〝失礼動画〟流出騒動 球団が公式ツイッターで謝罪](https://news.yahoo.co.jp/articles/b75708d5787cee3a9572792452da030537afa10d “巨人の藤浪〝失礼動画〟流出騒動 球団が公式ツイッターで謝罪”)
> – [「おまえ」で呼ぶのは失礼? 中日の応援歌自粛に賛否 ](https://www.nikkei.com/article/DGXMZO47172240Q9A710C1CC0000/ “「おまえ」で呼ぶのは失礼? 中日の応援歌自粛に賛否”)プロ野球の応援マナーに関連したニュースが元となって,Twitterで議論が巻き起こるってたまにありますよね。ニュース自体に言及するというよりも,違うファン同士で「おまえらのほうがマナー悪いやんけ!」みたいな言い合い。よく見ます。
また,他球団
OpenCVのスーパーピクセル
OpenCVのスーパーピクセルについて紹介がなかったので書こうかと思いました。
説明は使い方をサンプルで示す方法で記述していきます。
アルゴリズムの説明、関数インターフェイスについては、ググってお調べただけましたら
幸いです。
ただ、コンストラクタの引数については記載しないと、まるっきりとりつきが無い感じが
しましたので記載しました。#スーパーピクセルについて
領域分割とかセグメンテーションアルゴリズムのことで、最初見たとき
その認識は無かったですが、資料を読んで分かった次第です。
OpenCVに実装されているスーパーピクセル機能は3種類あります。
- LSC (Linear Spectral Clustering)
- SEEDS(Superpixels Extracted via Energy-Driven Sampling)
- SLIC(Simple Linear Iterative Clustering)
さらに、3種類のアルゴリズムSLIC, SLICO, MSLICを引数に設定します。
<
自分の資産推移を自動でまとめるプログラムを書いた話
# はじめに
半年ほど前から株を始めたけど,自分の資産額がどのように推移してるかを全く管理してなかったので,自動でまとめるプログラムを作ったので公開したいと思います.# 証券会社HPから資産額をスクレイピングする
僕はSBI証券を使っているので,以下はSBI証券での資産額の取得法です.他の証券会社でもこの部分を変更すれば使えると思います(知らんけど).
ホーム画面から現金残高,ポートフォリオ画面から時価評価額(国内株と投資信託)を取得します.**ホーム画面の現金残高**
ココってところに金額が書かれているからセレニウムで取ってくる.このくらいサポートしてくれるAPIがあればいいんですが,ないので泥臭くHTMLをパースして取得します.
![Screenshot at 2020-08-18 21-37-41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/366930/86b7d7c9-4500-a603-e03a-db5416028e71.png)**時価評価額の取得**
ココってところをク
グレースケールと輝度平滑化
#実行環境
[Google Colaboratory](https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)#Google Colaboratoryで画像を読み込む為の準備
“`python:
from google.colab import files
from google.colab import drive
drive.mount(‘/content/drive’)“`
#必要なライブラリの読み込み
“`python:
import cv2 #opencv
import matplotlib.pyplot as plt
%matplotlib inline
img = plt.imread(“/content/drive/My Drive/Colab Notebooks/img/Lenna.bmp”)
#↑この記事からplt.imreadで読み込むことにしました。
“`#いろんな変換
“`python:
plt.figure(figsize=(9, 6), dpi=100,
FastAPIをマルチプロセス&SSLで動かすためのステップバイステップ
Flask並みに簡単なのにモダンな開発スタイルも可能なフレームワーク[FastAPI](https://fastapi.tiangolo.com)を、本番を意識した構成で動かす方法を調べたので共有したいと思います。
# 構成に関する要件と討ち手
「本番を意識した構成」と大きく出てみたものの、やりたいことは以下2点です。
– マルチプロセス構成の管理をしたい ? gunicornでマルチプロセス管理
– SSLをオフロード&証明書を一元管理したい ? Nginxでリバースプロキシ前者によりパフォーマンスや耐障害性を確保し、後者により運用しやすさやセキュリティを確保するようなイメージです。
# Uvicornで起動(基本形)
ASGIサーバーとしてUvicornを使用してFastAPIをシングルプロセスで起動するまでの手順です。はじめにライブラリのインストール。
“`bash
$ pip install fastapi uvicorn
“`インストールしたらファイル`run.py`を作成して以下の通りコードを記述してください。
“`python:run.py
f
Codeforces Round #654 (Div. 2) バチャ復習(8/18)
#今回の成績
![スクリーンショット 2020-08-18 12.03.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331393/4a25871a-eab2-16f3-e099-16f2cff29fdb.png)
#今回の感想
今回は感覚として非常に良い感じで解けていました。
しかし、途中に昼飯が入ったおかげで五完を逃しました。非常に悔しいです。
だんだん感覚が研ぎ澄まされてきている気がするので引き続き頑張りたいです。
夏休み中の目標のAtCoder青,Codeforces紫を目指して頑張ります。#[A問題](https://codeforces.com/contest/1371/problem/A)
偶数本存在する時は$n+1$の長さのスティックを作るように、奇数本存在する時は$n$の長さのスティックを作るようにすればよく、この時、同じ長さになるスティックの本数は$[\frac{n}{2}]$本になります。
作りうる長さのスティックを小さい順に考えることで証明できますが、ここ
AtCoder 174 BCD
# [B問題](https://atcoder.jp/contests/abc174/tasks/abc174_b)
ポイント– 累乗は**でした。^で計算しようとしてハマった
– 距離の計算でsqrt(x**2, y**2)とすると小数誤差が生じて等号の境界でぴたりと等号を満たせない可能性がある。代わりに以下が推奨
– 等号にせず、ごく小さいepsを大きく出るべき方に足すか小さく出るべき方で引く
– 両辺を二乗してsqrtを避け、整数で解く!!“`B.py
import math
N, D = list(map(int,input().split()))
cnt = 0
for i in range(N):
x, y = list(map(int, input().split()))
if (x**2)+(y**2) <= D**2: cnt+=1 print(cnt) ``` # [C問題](https://atcoder.jp/contests/abc174/tasks/abc174_c) アル
Pythonでハノンっぽい楽譜を作ったお話
#はじめに
みなさん、ハノンピアノ教本をご存知ですか?
ピアノ経験者の方は嫌な思い出がある方も多いかもしれません。
ハノンピアノ教本は、ピアノを弾く上でとても基礎的なことが学べる教則本です。
百聞は一見に如かずなので、ぜひ[演奏されている動画](https://www.youtube.com/watch?v=051Zm3SH2dI)や[楽譜](https://ameblo.jp/manana888/entry-11753162091.html)を見てみてください。
今回は、ハノンピアノ教本のなかでも、1〜20番のような曲を自動でつくることを目指しました。#使った言語やツール
使った言語は、**Python**です。
また、MITで開発されたPythonの音楽情報処理ライブラリである**music21**を使用しました。
実は、music21自体が楽譜を作成するわけではなく、MuseScoreやLilypondで楽譜は作成されます。
(ただし、実際に自分がMuseScoreやLilypondを触るわけではないので、その辺の知識はなくて大丈夫です。)
music21については、[このブ
Python: 2次元データ分布状態の図化(カーネル密度推定)
## はじめに
2次元分布するデータの分布状態を見たかったのでカーネル密度推定を “`scipy.stats.gaussian_kde“` でやってみた。成果図は以下の通り。(“`bw_method=‘scott’“`)![_fig_cor_test1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129300/38c99e62-de65-6544-0ad4-c5dde75e53b6.png)
ちなみに、単回帰分析は、以下の通り “`numpy“` でサラッとやっている。(色々やっていると、こういうコードがすぐに出てきて使えることは重要なので、あえて書き出しておく。)
“`python
def sreq(x,y):
# y=a*x+b
res=np.polyfit(x, y, 1)
a=res[0]
b=res[1]
coef = np.corrcoef(x, y)
r=coef[0,1]
return a,b,r
“`
Pandas 列名×行番号で要素を抽出する
### はじめに
loc,ilocなど、行名/列名,行番号/列番号を基に要素抽出は出てくるものの、
列名×行番号による抽出方法が上手く探せなかったため、メモ投稿です。## やりたかったこと
大元のデータフレーム(列名有り,行名無し)から、特定の要素を持つグループに分け、
各データフレームに対して1行ずつ参照して処理をしていく必要があった。その際、列の指定は出来るが行の指定が思うようにできないため、行番号で処理を試みた。
(reset_indexも考えたが、きっと列名×行番号での指定も出来るはず…)## 結論
atとindexを組み合わせ、df.at[df.index[行番号],’列名’] で抽出できる(↓の記事をきちんと読めば良かった…)
https://note.nkmk.me/python-pandas-at-iat-loc-iloc/### お試し
“`python:DataFrame
# 列名のみのデータフレーム作成
df = pd.DataFrame({‘person’:[‘a’,’b’,’c’,’a’,’b’,’c’],\