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

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

画像に合わせて点を打つ

ログに記録されたタッチ座標をそれに対応する画面イメージにひたすらプロットする
・・・という苦行が発生したのでそれを自動化する。

“`py
import matplotlib.pyplot as plt
from PIL import Image

# Figureとaxの準備 … matplotlibの定型的な処理
fig = plt.figure(figsize=(8, 6))
fig.patch.set_facecolor(‘white’)
ax = fig.add_subplot(1, 1, 1)

# 画像だと(0,0)が左上に来て, y軸の正の方向が下を向くのでinvert_yaxis()
ax.invert_yaxis()

# xとyはログから入手したタッチ座標。左上、中央、右下を指定しておく
x = [0, 400, 200]
y = [0, 300, 150]

# タッチ座標をプロットする
ax.scatter(x, y, c=’red’, s=20)

# 背景に画面イメージを出す
im = Image.open(“aaaa.png”)
ax.imsh

元記事を表示

pythonでデータ分析2

##pythonでデータ分析のつづき:初心者ですが
***
データの読み込み
`train = pd.read_csv(“train.csv”)`
***
データの中身を見る
`train.head()`
***
データの行数・列数を見る
`train.shape`
***
yの平均値と中央値を見る
`train[“y”].mean()`
`train[“y”].median()`
***
trainのyの折れ線グラフを描いてみまる
`train[“y”].plot()`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282938/44d5a316-dacf-760d-20a3-54b207567eb8.png)

元記事を表示

【勉強メモ】FastAPIでGeoJSONベクトルタイルサーバーを構築

# 動機、概要

[GeoDjango](https://docs.djangoproject.com/ja/3.1/ref/contrib/gis/)などで例えば[ここ](https://blog.bitmeister.jp/?p=3511)のような形で、DBのテーブル(PostGIS利用)から情報を取得してベクトルタイルサーバーとして動かせる機能があるらしい。

似たようなことをPythonのマイクロWebフレームワーク(ここでは[FastAPI](https://fastapi.tiangolo.com/)を使用)で出来ないかと思い、色々調べたので自分用にメモ。

なお、理想的には[PostGIS](https://postgis.net/docs/manual-2.4/postgis-ja.html)であったり、NoSQLであればMongoDBの[Geospatial Query](https://docs.mongodb.com/manual/geospatial-queries/)辺りを使ったシステムの構築を行い、配信形式もGeoJSONだけでなくより実用的なバイナリベクト

元記事を表示

#1 Djangoのwebアプリケーションをデプロイするまで(AWSのEC2でインスタンス構築編)

## インスタンスの作成の仕方
###ステップ1
AWSのEC2を選択し、この画面に移動します。
画面右上の矢印がある所をクリックします。(ここはリージョンというものを選択する所です。)
*特にこだわりが無ければどこでもいいですが、EC2を使用する前はここを必ずチェックしましょう。
「インスタンスの作成」をクリックします。
![インスタンス作成画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/617421/9d4f1e6a-2db9-45e8-51b8-c1a62b789d69.png)

###ステップ2
「インスタンスを作成」をクリックすると、この画面に移動すると思います。
ここで仮想サーバを決めます。
今回はUbuntu Server 18.04 LTS (HVM), SSD Volume Type – ami-0bcc094591f354be2 (64 ビット x86) / ami-0bc556e0c71e1b467 (64 ビット Arm)を使います。
![ステップ1マシンイメージ.pn

元記事を表示

Python製WebアプリケーションをDockerで運用する

前回:[EmbyをDockerで運用する](https://qiita.com/F_clef/items/8563fbcc8da3edc9c81c)
これはそろそろDockerを使えるようになりたい筆者の試行錯誤の軌跡です。

# Python製WebアプリケーションをDockerで
前回はメディアストリーミングサービスのEmbyをコンテナに移行しました。
![Untitled(11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/227222/e79881af-36e0-7fce-a34f-acf98441a895.png)

今回はPython製Webアプリケーションを展開できるDockerイメージを作り、
Web Socket使用のアプリケーションとDjangoアプリケーションをDockerに移行します。
ついでに静的コンテンツもコンテナに移動し、VMサーバーを閉じます。
![Untitled(12).png](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

犬ですが何か?Django–forms.pyを使ってPOST送信の巻

#Formクラスを使ってみる

どーも!柴犬ぽん太です。散歩中に電車が見えると追いかけたくなって走り出すのですが、リードがあるのでその場でクルクル回って目が回ります。そんなときは逆回りすると治りますのでみんなも試してね!ワン!

## forms.pyを作成する
さて、今日はforms.pyを作成して、この中でFormクラス定義をするように変更します。

“`wan/forms.py
from django import forms

class WanForm(forms.Form):
dogname = forms.CharField(label=’名前’)
email = forms.EmailField(label=’email’)
age = forms.IntegerField(label=’年齢’)
message = forms.CharField(label=’メッセージ’)
“`

## views.pyを変更する
次に、views.pyを次のように書き換えます。

“`wan/views.py
from django.shor

元記事を表示

Python の非同期処理/コルーチンを、Node.js との比較を通じて学ぶ

Python は `asyncio` モジュールを import してコルーチンを定義することにより、非同期処理を実装していくというスタイルの言語です。
**コルーチン**とは一旦処理を中断したあと再開できるような構造のことで、一旦処理が行われたら完了するまで止まらない構造である**サブルーチン**と対比されるものです。

今回は、私が以前から馴染んでいた Node.js の `Promise` や `async/await` と比べて Python の非同期処理の書き方がどのように異なるのか、という点にスポットを当てて考えてみようと思います。

なお、Python のソースコードは公式ドキュメントの [コルーチンと Task](https://docs.python.org/ja/3/library/asyncio-task.html) におおむね準拠しています。

## コルーチン

Python では `async def` 文でコルーチンを定義します。

“`python:Python
import asyncio

async def main():
print(‘

元記事を表示

AtCoder ABC177

# 総括
ACはA問題だけ。
終了直後にB問題をACできた。

## A – Don’t be late
問題に沿って書いた。算数の授業を思い出す。

“`Python
D,T,S = map(int,input().split())
if D / S <= T: print("Yes") else: print("No") ``` ## B - Substring 終了直後にACできた。 ```Python S = input() T = input() sl = len(S) tl = len(T) ans = tl for i in range(sl - tl + 1): flag = 0 tmp = 0 for j in range(tl): if S[j + i] == T[j]: tmp += 1 ans = min(ans,tl - tmp) print(ans) ``` ## C - Sum of product of pairs 解説の累積和を参考にしてACできた。 `

元記事を表示

AtCoder Beginner Contest 177 参戦記

# AtCoder Beginner Contest 177 参戦記

## [ABC177A – Don’t be late](https://atcoder.jp/contests/abc177/tasks/abc177_a)

2分で突破. 書くだけ.

“`python
D, T, S = map(int, input().split())

if D > S * T:
print(‘No’)
else:
print(‘Yes’)
“`

## [ABC177B – Substring](https://atcoder.jp/contests/abc177/tasks/abc177_b)

5分で突破、WA1. + 1 を忘れて死亡. ずらしながら違う文字が何文字があるかを調べて、最小値を取れば OK.

“`python
S = input()
T = input()

result = float(‘inf’)
for i in range(len(S) – len(T) + 1):
t = 0
for j in range(len(T

元記事を表示

AWS Lambda python「デプロイパッケージが大きすぎてインラインコード編集を有効にできません」の回避方法

AWS Lambda を python で書いています。パッケージを入れてZIPでアップロードすると、「デプロイパッケージが大きすぎてインラインコード編集を有効にできません」と出て、インラインコード編集が使えません。
これを回避する方法を紹介します。パッケージを別にして AWS Lambda レイヤーに登録します。
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253995/1430b86d-a15a-ff1e-64c5-e38f6f6829af.png)

# 方法

## 1. python パッケージをフォルダにまとめます

“`
pip install xxx -t ./python/
“`
上記のように書くとpythonというフォルダにパッケージがまとまります。

## 2. AWS Lambda レイヤーにアップロード

![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253995/9ac4

元記事を表示

UnityでPythonの処理を非同期で実行した後にC#処理を行う

#やりたいこと
UnityでPython処理→C#処理の順で実行したい
#この記事を書いた理由
Pythonで書いたチャットシステムをUnityで動かそうとするとC#のProcessという処理が必要になる。
しかし、Processで重い処理を同期的に行うとUnityが固まってしまう!
Processで非同期処理を行うとPythonの処理の後にC#の処理が実行できない!

#実現方法

“`C#
//出力されたデータを保存する変数
private StringBuilder output = new StringBuilder();

public void Python()
{
//新規プロセスの立ち上げ
var p = new Process();
//プロセスの設定
p.StartInfo.FileName = pyExePath; //Pythonファイルの場所
p.StartInfo.UseShellExecute = false;
p.StartInfo.Crea

元記事を表示

ディープラーニングのモデルとパラメータの意味

# 概要
 本記事ではディープラーニングを初めて使う人向けモデルとパラメータについて説明します。

 モデルとは何なのか、パラメータとは何なのか、どうしてこの二つでAIが作れるのかを読者に理解してもらうことを目的としています。

# 前提知識
– 数学における関数の知識
– $y = ax + b$ は直線を表す
– $y = ax^2 + bx + c$ は放物線を表す

# どのようにAIはできるのか
 ディープラーニングなどのAI開発において、AIは必ず**入力と出力を必要とします**。例えば画像認識AIであれば、入力は認識する対象の画像、出力は認識した動物の名前となります。

 入力をx、出力をyとしたときyとxの関係式、つまり$y = f(x)$となるような$f(x)$を見つけることでAIを作成することができます。

# 実際の例
 実際にAIを作る手順を簡単なデータで見せていきます。表を見てください

| 握力[kg] | ボールの飛距離[m] |
|—–:|—-:|
| 35 | 71 |
| 45 | 92 |
| 38 |

元記事を表示

アメダスのページにグラフを表示するChrome拡張機能を作りました

# 拡張機能「アメドス」

![sks1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367033/d0e916bf-f5a8-65dc-c774-b6da5419dab7.png)

[Chrome ウェブストア](https://chrome.google.com/webstore/detail/%E3%82%A2%E3%83%A1%E3%83%89%E3%82%B9/kmbellanocphagkgnbgkeoopdflhnbdo?hl=ja)
[GitHub](https://github.com/opzriv/amedos)

# できること

– 気象庁のアメダスの毎正時の観測データのページ(例:[東京(トウキョウ)](https://www.jma.go.jp/jp/amedas_h/today-44132.html?areaCode=000&groupCode=30))に**グラフを表示**します。表示内容は今日と昨日の気温と、今日または昨日の降水量です。
– グラフの上に**過去の観

元記事を表示

ゆっくりに青空文庫を読んでもらう: もっと精確に

[前回](https://qiita.com/Mechanetai/items/6bdc2710d3a507703ef1)はPythonを使って、ゆっくりに青空文庫を読んでもらうことに成功しました
しかし、ルビを考慮せず読ませてしまったので、読み上げの精度がかなり低いという難点がありました
今回はその点を修正していきます

#今回の流れ

やりたいことは
**青空文庫のURLを投げると、読みの辞書登録を済ました上でゆっくりが読み上げてくれる**ことです
そこで、以下の流れを作っていきます

![Untitled Diagram.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349064/40c261fe-2873-a925-3445-be37e6a8478b.png)

# 図書カードのURLからファイルのURLを取得

青空文庫には図書カードというページがあり、そこから本文が記載されたWebページに飛んだり、各種ファイルをDLできたりします

![tosyoka-do.PNG](https://qii

元記事を表示

【シストレ入門】為替と株:暴落時の挙動♬

同じなんですね??

お辞めになるというアナウンスと共に、為替も株も一斉に下落しました。

そのとき、理由は分かりませんが、為替と株の時系列データが同じ挙動を示していることをまとめておこうと思います。
そして、データサイエンス的に、こういうときどういう分析をすれば良いのかを考えたいと思います。
※本記事に関して、素人のまとめなので内容は自己責任で取り扱い願います
###やったこと
・為替暴落データ
・株価暴落データ
・ある一つの分析
・もう一つの分析
・類似性の要因について
###・為替暴落データ
始まったのは、ニュースが報じられた時刻とほぼ同じ
8月28日14:06
兆し;14:06:05.367
開始:14:07:17.348
終了:14:07:45.083
以下のグラフはこの下落のあとの為替の推移のグラフです。
どのグラフもほぼ同じ曲線になっており、データサイエンティスト的には興味をそそられます。
※為替だけが同じような曲線を描くのは全て対円の値なので円がこのように動いたということでひとまず解釈できます
![zarjpy.png](https://qiita-image-stor

元記事を表示

TkinterでMVC

## はじめに
この記事でのMVC(Model-View-Controller)は、以下の方針で機能を切り分けることを指します。
**Model**: ViewもControllerも知らない。ただ実直に計算を行う。
**View**: ModelもControllerも知らない。美を追求するのみ。
**Controller**: ModelとViewの両方を知っている神様的ポジション。ModelとViewの橋渡しをする。

何番煎じか分からないですが、
意外と上の方針に則るMVCの情報が少ないと思ったため記事にします。

## いきなりコード

“`python
import tkinter as tk

class Model:
def __init__(self):
self.val = tk.IntVar(0)

def add_one(self):
self.val.set(self.val.get() + 1)

def reset(self):
self.val.set(0)

class Vi

元記事を表示

RSSを読み込んで自動的に定期ツイートしてくれるDockerImageを作って公開した。

# はじめに

RSS定期ツイートをiftttで実装してやっていたのですが、制限が厳しかったため自作しました。

# 完成品

https://hub.docker.com/r/hashito/tweetrss

“`sh
docker run -it –rm \
-e RSS_URL=https://news.google.com/rss/search?hl=ja&gl=JP&ceid=JP:ja&q=twitter \
-e CONSUMER_KEY=x \
-e CONSUMER_SECRET=x \
-e ACCESS_TOKEN=x \
-e ACCESS_TOKEN_SECRET=x \
-e ‘ADD_TEXT=”#rss2tweet”‘ \
hashito/tweetrss

“`

上から

* RSSのURL
* TwitterのCONSUMER_KEY
* TwitterのCONSUMER_SECRET
* TwitterのACCESS_TOKEN
* TwitterのACCESS_TOKEN

元記事を表示

【Python】曜日を取得する(英語&日本語)

# Pythonで曜日を取得する方法

Pythonで曜日を取得する方法について調べたので、備忘録としてのまとめです。

以下、参考にしたページです。

>
– [How do I get the day of week given a date?](https://stackoverflow.com/questions/9847213/how-do-i-get-the-day-of-week-given-a-date)
– [Pythonで日付から曜日や月を文字列(日本語や英語など)で取得](https://note.nkmk.me/python-datetime-day-locale-function/)

大きく分けると2通りの方法があるようです。

– `datetime`モジュールの`strftime()`メソッドを使う方法
– `datetime`モジュールの`weekday()`メソッドと`calendar`モジュールの`day_name`を使う方法

それぞれ詳しく見ていきます。

## `datetime`モジュールの`strftime()`メソッドを使う方法
dat

元記事を表示

画像分類(mnist)のモデル構造を保ったままautoencoderをくっ付け、endtoendに精度の改善を行う。[tensorflow , keras , mnist , autoencder]

# 目的
使用するデータ数が少ない場合にも精度を上げる方法がないか考える
##### 制約
+ 改良前のモデル構造は保つ
+ endtoendに学習できるようにする(autoencoderとcnnを一つのモデルとして作る)
+ ganやその他data augmentationを行わない。
+ データにはmnistを使い、各ラベル100枚ずつ100*10の1000枚で行う

データの取り出しやモデルのfitの書き方は記述しないので、データの取り出し方は[こちら](https://qiita.com/kzrn3318/items/148cd0accf48e40ddac5)、fit,compileの書き方は[こちら](https://qiita.com/kzrn3318/items/d792cdd42d485662037c)を参照してください。
##### コード全体は[こちら](https://github.com/kzrn3318/Comparison-of-a-simple-cnn-model-and-a-model-with-cnn-in-the-middle-layer-o

元記事を表示

Vue.js + AWS Lambda + dynamo DBでチャット機能を作ってみる【AWSの設定編】

今回はチャット機能を実装したので、備忘録として記事を残していきます。

AWS Lambdaの作成を行った後にフロント側の設定の記事を上げていこうかと思います。
AWS側は`API Gateway + Lambda + DynamoDB`の構成で作成していきます。
※ 2020/08/29時点での作成画面

## API Gatewayの設定

### ①API GatewayからAPI作成

API Gatewayから `APIの作成`を押下し、
WebSocket APIを作成していきます。
![1_API_gateway.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/305412/14c0f24e-72a4-7648-3b59-6e31206d2117.png)
![2_API_gateway.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/305412/556b0e7c-ad20-e8d1-5917-02dd47c

元記事を表示

OTHERカテゴリの最新記事