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

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

Pythonでできるだけ短いコードで素数を求める

#はじめに
[この記事](https://qiita.com/ryuichi1208/items/f9e6ac2b99bbe4fc82d3)をみて僅か七行でテトリスができるのかと感動した。
しかし私は全くjavascriptができないので、意味が分からない。(というか構文は理解できるが、何をしているのかがわからない)
しかし、ショートコーティングをするとなんかかっこいいということに気付き、Pythonでもそんなやつができるのかもしれないと思ってやってみたので紹介してみる。
あと語彙力がないので、文が変になっていても許してください。
#普通に素数判定アルゴリズム
まずは普通に素数判定プログラムを組んでみる。(実行速度は考慮しない)

“`python
JudgeNum=int(input(“数?”))
prime=True
for i in range(2,JudgeNum):
if JudgeNum%i==0:
prime=False
print(prime)
“`
実行結果

“`
数?5
True
“`

これが普通の答えである。これをほかの人に見せ

元記事を表示

OpenModelicaで感染症の数理モデル「SIRモデル」を実装する

# SIRモデルについて
2020年4月7日にCOVID-19の流行に伴う緊急事態宣言がされた際、北大の西浦先生が接触率を20%減、60%減、80%減した時の試算をグラフで示されていました。
この時使われた「SIRモデル」とはどういうものか調べてみたところ、Python や R で計算されている例があり、同じ式を [OpenModelica](https://openmodelica.org/) で実装できるのではと試してみたところ、シミュレーションできましたので記事にしておきます。

なお、この計算で得られた結果はCOVID-19の実際の状況を反映しているものではなく、医療従事者でもないエンジニアが仮のパラメータでモデル化しただけのものであることをお断りしておきます。

モデル化にあたり、以下のサイト、記事を参考にさせていただきました。

**感染病の数学予測モデルの紹介 (SIRモデル)**
https://qiita.com/kotai2003/items/3078f4095c3e94e5325c
**微分方程式と感染症数理疫学**
https://www.ms.u-tokyo.

元記事を表示

Pythonの応用: データ可視化その2: matplotlib

# 1種類のデータを可視化する

## グラフにデータをプロット

“`python
Matplotlib(マットプロットリブ)
# データを視覚化するための機能が豊富です。
“`

“`python
matplotlib.pyplot.plot(x軸に対応するデータ, y軸に対応するデータ)
# グラフのx軸(横軸)とy軸(縦軸)にデータを対応させて簡単にグラフを作成することができます。
“`

“`python
matplotlib.pyplot.show() # 作成したグラフを画面に表示
“`

## グラフの表示範囲を設定
matplotlib.pyplotを用いてグラフを作成する際
グラフの表示範囲は自動で設定されます。

それぞれの軸に割り当てたデータ(リスト)のmin()およびmax()が
表示範囲の最小値と最大値になるため、データのすべての部分が自動で可視化されます。

グラフの一部だけを表示したい場合もあります。その場合は
下記のプログラムを使用します。

“`python
matplotlib.pyplot.xlim([始まりの値, 終わりの値])

元記事を表示

MacのPython開発環境を見直してみたら色々大変だったので備忘録メモ

Pythonは非常に優れた汎用プログラミング言語です。OSを問わず機械学習の分野は言うに及ばず、クラウドやWebプログラミングの分野にまで利用されています。また仮想環境管理ツールを導入すれば、複数のバージョンを使い分けたい場合に仮想環境を構築して管理出来ます。筆者は学生時代から愛用しているAnaconda[^conda]の`Conda Env`を使ってきました。ところがここで困った問題が有ります。Macユーザーの方でHomebrewをお使いの方は御存知だと思いますが、Hombrew[^brew]とAnacondaの相性は最悪です。また、Conda Envは仮想環境の共有やリモート管理(Gitなどで管理)が考慮されておらずとても不便です。本記事ではそんなPythonの開発環境を見直してみようという試みについてまとめました。

# Anaconda @ Macの問題
1. Homebrewとの相性問題
2. 仮想環境情報の共有やリモート管理が難しい

## Homebrewとの相性問題
Homebrewの状態が見える`brew doctor

元記事を表示

Pythonで定期的にクリックイベントを発生させ、テレワーク中仕事以外のことをしよう!

#はじめに

昨今、コロナウイルスの影響で全世界的にテレワークが行われていると思います。
さらに、多くの企業がSkype for Businessなどを導入しており、プレゼンス状態が共有されている状況だと思います。

その中でプレゼンス状態を適正に保ちながら、別のことをするためのPythonコードを作成しました。

#できること
5分に一回、デスクトップ座標(1,1)をクリックする。

#ソースコード
“`click.py
import pyautogui
import datetime
import schedule
import time
import random
import os

os.environ[“OMP_NUM_THREADS”] = “1”

def job():
dt_now = datetime.datetime.now()
print(dt_now)
pyautogui.click(1,1,1,1,’left’)
print(“click!!”)

schedule.every(5).minutes.do(job)
while True:

元記事を表示

Matplotlibのgridspecで複数の図の大きさを調整する

[一覧表に戻る](https://qiita.com/h398qy988q5/items/4af78a3afe73b6f38419)

サンプルや時系列データの傾向を把握するとき、以下のように左側に散布図(+実線)、右側にヒストグラムをプロットすると便利です。そんな時にグラフの幅を`matplotlib`で調整するときは`gridspec`を使います。上側にもヒストグラムを追加したい場合は[seabornのjointplot](https://seaborn.pydata.org/generated/seaborn.jointplot.html)を使うと便利でしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278468/8cc60c48-21b3-c310-85b1-25bd5d434102.png)

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

元記事を表示

エラー率0.4%のFace Landmark回帰モデル

Face Landmarkを求める問題です。FaceBoxを入力し、目(瞼輪郭)の中心2点、鼻筋2点、鼻の下3点の座標を、求める。

![family (59)_light22.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210659/18d7f98b-7121-139f-aca4-dec75846c832.jpeg)![family (46)_flip_crop_13_7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210659/be3a5d14-296f-93b0-418e-2eba7706452b.jpeg)![family (32)_light10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/210659/ccf9b719-12a5-ee8c-5150-b9af1191a96a.jpeg)![family (88)_rota

元記事を表示

Python の 2to3 で一気に変換メモ

## Windows 10 で python の変換ツール 2to3.exe を動かしてみました。

“`dos:2to3.bat
@echo off
set PATH=%Python3のパス%\Scripts;%PATH%
set CNV=2to3.exe
set OPT=-w
set LOG=.\2to3.log

for /r “.\” %%A in (*.py) do %CNV% %OPT% %%A
“`
を変換対象のフォルダに配置し、“`2to3.bat > 2to3.log 2>&1“`で実行します。

変換前のファイルは、*.py.bak で保存されていました。

今回は、ここまでです。

元記事を表示

Pythonを使ってOpenCVで画像を『二値化』してみた

## 二値化 とは
2値化とは、画像を白と黒の2階調に変換する処理のことです。
2値化では、あらかじめ閾値(しきいち、threshold)を決めておき、画素の値が閾値より大きければ白、小さければ黒に変換します。
参考:[2値化とは何? Weblio辞書](https://www.weblio.jp/content/2%E5%80%A4%E5%8C%96)

## 準備

環境はGoogle Colaboratoryを使用します。
Pythonのバージョンは以下です。

“`python
import platform
print(“python ” + platform.python_version())
# python 3.6.9
“`

## 画像を二値化してみよう
では、早速コードを書いていきましょう。
まずは、OpenCVをインポートします。

“`python
import cv2
“`
さらに、Colaboratoryで画像を表示するため、以下もインポートします。

“`python
from google.colab.patches import cv2_im

元記事を表示

RでNAを含む列を簡単に削除したい

データ処理の前段階はデータを読み込むところから。ここで、手持ちのデータを読み込むと、しばしば空の列ができたり長さが揃っておらず不要な列ができて削除したいことがあります。次の表を読み込んだとします。

| a | b | c | d |
| —- | —- | —- | —- |
| 1 | 2 | 3 | NA |
| 2 | 3 | 4 | NA |
| 3 | 4 | NA | NA |

“`{r}
df <- data.frame(a = c(1,2,3), b = c(2,3,4), c = c(3,4,NA), d = c(NA,NA,NA)) ``` ``` > df
a b c d
1 1 2 3 NA
2 2 3 4 NA
3 3 4 NA NA
“`

## dplyr::select_ifを活用する

“`{r}
library(dply

元記事を表示

Django Heroku デプロイ2

#前提
前回の記事「Django Heroku デプロイ1」の続きです。
https://qiita.com/yusuke_mrmt/items/1a3ee727d119617b2d85

#デプロイ
ここまでで、アプリをデプロイする領域を確保できたので、実際にデプロイまでいきます。

##デプロイまでの流れ
デプロイを行うにあたり、事前に以下の項目を設定する必要があります。

1、Heorku用の設定ファイルの作成
2、アプリケーションサーバーのインストール
3、django-herokuインストール
4、データベースの設定
5、許可ホストの設定
6、静的ファイルの設定
7、開発環境の設定と本番環境の設定の分離

上記となります。順に設定していきます。

###1、Heorku用の設定ファイルの作成
プロジェクトのディレクトリ直下に下記の2つのファイルを追加します。
■runtime.txt の作成
runtime.txt は、Herokuで使用するPythonのバージョンを指定するファイルです。
プロジェクトのディレクトリ直下( manage.py と同じディレクトリ)

元記事を表示

AtCoder Beginner Contest 112 過去問復習

#所要時間
スクリーンショット 2020-04-18 13.48.33.png

#感想
前に解いたことがあってC問題が難しかった記憶があるなあと思いながら解いてました。制約緩いので三重ループ回せるのに気づけば余裕。

#[A問題](https://atcoder.jp/contests/abc112/tasks/abc112_a)

初めのinputの値で場合分けするパターンはあまりないので少し注意が必要です。

“`python:answerA.py
x=int(input())

if x==1:
print(“Hello World”)
else:
a,b=int(input()),int(input())
print(a+b)
“`

#[B問題](https://atc

元記事を表示

【Django ORM】values() と only() の違い

# Django ORMでの`values()`のエラーで嵌った話

Django ORMには`.objects.values()`と`.objects.only()`という`values()`と`only()`という似たようなメソッドがあるが、少しハマったので備忘録として。

ことの発端は↓のようなコードを書いたとき次のようなエラーが出たことから。

“`python
president1 = Company.objects.values(*fields)[0].president
# => エラー: AttributeError: ‘dict’ object has no attribute ‘president’
“`

ここでは`Company`というモデルからDjango ORMの`values()`メソッドを使って、
特定のフィールドだけを抽出して生成されたクエリセット(複数のオブジェクトが入ったイテラブルなデータ型でPythonのリストのようなもの)の最初の要素の`president`フィールドの値を取得しようとしています。

しかし、

元記事を表示

【Python】JOI 2007 本選 3 – 最古の遺跡(①高校数学ベクトル、②「in リスト」は激遅)【AtCoder】

[レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】](
https://qiita.com/e869120/items/eb50fdaece12be418faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7%B4%9A%E8%80%85%E3%81%8C%E8%A7%A3%E3%81%8F%E3%81%B9%E3%81%8D%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-100-%E5%95%8F)(@e869120さん)

こちらの7問目!
難しい!!!
頑張って理解できたので解説〜

#[JOI 2007 本選 3 – 最古の遺跡](https://atcoder.jp/contests/joi2007ho/tasks/joi2007ho_c)
先にACコードから↓

“`python:test.py
def I(): return int(input())
def TI(): return tuple(map(int,input

元記事を表示

【Flask & Bootstrap】じゃらんレビューを解析 〜じゃらん Analyzer〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587891/0f8cbc7f-08ba-53a4-ff71-12672d4c7e80.png)
# 目的
じゃらんレビューを解析するWebアプリ。
Webアプリの実装は、FlaskとBootstrapを使用。
[じゃらん Analyzer](https://jarananalyzer.herokuapp.com/)のWebページは[こちら](https://jarananalyzer.herokuapp.com/)。

詳しい解説とコードは[【Flask & Bootstrap】じゃらんレビューを解析 〜じゃらん Analyzer〜](https://www.aiprogrammers.net/entry/2020/04/12/031510)をご覧ください。

元記事を表示

【Flask & Bootstrap】歌詞の内容をWord Cloudで可視化 〜Lyrics Word Cloud〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587891/95c1ba8d-2298-ea6d-0f3f-b9894f4ac226.png)
# 目的
歌詞の内容を、Word Cloudで可視化するWebアプリ。
Webアプリの実装は、FlaskとBootstrapを使用
[Lyrics Word Cloud](https://lyricswordcloud.herokuapp.com/)のWebページは[こちら](https://lyricswordcloud.herokuapp.com/)。

詳しい解説とコードは[【Flask & Bootstrap】歌詞の内容をWord Cloudで可視化 〜Lyrics Word Cloud〜](https://www.aiprogrammers.net/entry/2020/04/12/025810)をご覧ください。

元記事を表示

【PyTorch】チュートリアル(日本語版 )④ 〜TRAINING A CLASSIFIER(画像分類)〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587891/9a7b365d-b844-9f98-664a-e698778d4746.png)
# 目的
PyTorchのチュートリアル[「What is PyTorch?」](https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py)を参考にPyTorchで画像分類について学ぶ。

具体的には、

– ニューラルネットワークの構築
– lossの計算
– ネットワークの重みの更新
について学習する。

詳しい解説とコードは[【PyTorch】チュートリアル(日本語版 )④ 〜TRAINING A CLASSIFIER(画像分類)〜](https://www.aiprogrammers.net/entry/2020/04/18/152115)をご覧ください。

元記事を表示

【PyTorch】チュートリアル(日本語版 )③ 〜NEURAL NETWORKS(ニューラルネットワーク)〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587891/b7b6b786-359a-0427-e572-a3a95df8e77b.png)
# 目的
PyTorchのチュートリアル[「What is PyTorch?」](https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py)を参考にPyTorchでニューラルネットワークの構築と学習について学ぶ。

詳しい解説とコードは[【PyTorch】チュートリアル(日本語版 )③ 〜NEURAL NETWORKS(ニューラルネットワーク)〜](https://www.aiprogrammers.net/entry/2020/04/18/035524)をご覧ください。

元記事を表示

【PyTorch】チュートリアル(日本語版 )② 〜AUTOGRAD〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587891/1fe538f0-5de4-3fff-18ed-418a164d178b.png)
# 目的
PyTorchのチュートリアル[「What is PyTorch?」](https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py)を参考にPyTorchでAUTOGRADの扱いになれること。

詳しい解説とコードは[【PyTorch】チュートリアル(日本語版 )② 〜AUTOGRAD〜](https://www.aiprogrammers.net/entry/2020/04/13/232357)をご覧ください。

元記事を表示

【PyTorch】チュートリアル(日本語版 )① 〜テンソル〜

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587891/07c31cbf-40ba-d7cd-03da-483afa4bcf87.png)
# 目的
PyTorchのチュートリアル[「What is PyTorch?」](https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py)を参考にPyTorchで特有のテンソルの扱いになれること。

詳しい解説とコードは[【PyTorch】チュートリアル(日本語版 )① 〜テンソル〜](https://www.aiprogrammers.net/entry/2020/04/13/014852)をご覧ください。

元記事を表示

OTHERカテゴリの最新記事