Python3関連のことを調べてみた2019年11月01日

Python3関連のことを調べてみた2019年11月01日

Kerasでオートエンコーダを構築して、リンゴかリンゴじゃないか、という判別をさせたい

 MNIST、リンゴorバナナでKerasでの画像判別の仕組みの初歩は分かりました。でも、画像の判定をする時にはどれが「リンゴ」か「バナナ」か、だけではなくて「どっちでもない」が欲しい。
 難しい言葉で言うと、正常値のデータだけで異常値の判別をさせたい。
 これができれば、カメラで顔認証するアプリケーションも作れるのでは?というのが今回のテーマ。

#考え方
 ディープラーニングが話題になり始めた頃からある、オートエンコーダという仕組みを利用します。
 オートエンコーダは、入力されたデータを圧縮して、それを復元して出力するというもの。
 コンピュータで画像を扱ったことがある人なら分かると思いますが、解像度を小さくした後に元の解像度に拡大するような処理です。
 これだけだと、単純にデータを劣化させるだけなので無意味な操作なのですが、ポイントになるのは入力されたデータが何であろうと、学習したデータに復元しようとする、というところ。
 つまりリンゴの画像で学習させれば「絶対にリンゴに戻そうとするマン」が出来上がる。
 当然、入力された画像がリンゴでなければ上手く復元できないので、猫とか入れる

元記事を表示

完全初心者でも動かせるじゃんけんbotの作り方(解説)

#まずはじめに
大前提としてpythonの基礎知識が無いと少し難しいかもしれません。
全くないよ!~~Python?なにそれ美味しいの?~~って人は以下のサイトで少し勉強すると何となく理解出来ると思います。僕自身も初学者なので完璧に理解なんてしてませんしこう書いたらこう動くのか~~程度にしか分からないですが忘備録として残します。
まぁめんどくさい人は適当にコピペして動かしてください

– [Python3入門編 (全11レッスン)](https://paiza.jp/works/python3/primer)
– [Progate Python講座](https://prog-8.com/languages/python)

#筆者の環境
– Windows10
– PyCharm Community Edition
– pythonのバージョン (3.7.4)
– discord.pyのバージョン (1.2.4)

## 前提条件
お使いのエディターでpythonとdiscord.pyが動く前提で進めていきます
動かないよ!って方は他の方が上げて下さっている記事を元に動くようにして

元記事を表示

Atcoder ABC143,python,学習記録

#この記事について

azと申します。
pythonで[AtCoder](https://atcoder.jp/)をやっていくので、
学習記録を残していきます。
とりあえず1,2か月で四完目指して頑張ります。

##コンテスト概要(復習)
今回はABC143、A問からD問までをまとめます。
[AtCoder Beginner Contest 143](https://atcoder.jp/contests/abc143)

| コンテスト名 |AtCoder Beginner Contest 143 |
|:—:|:——————:|
|解法〇|A、B、C|
|解法✖|D|
##問題と解答
注:入力変数の制約はプログラム内に記述
### A – Curtain
#####問題について
(縦の長さは無視する。)
窓を2つの同じ長さのカーテンで覆う。

入力:2つの整数
出力:カーテンで隠されない窓の横の長さ

####試したことと考えたこと
(カーテン2つの長さ>窓)の時は0を出力すればいいことに気付けば
後は簡単でした。

####ソースコード
“`py

元記事を表示

AtCoder Beginner Contest 014 D – 閉路 (ダブリング 、二頂点のLCAの検出)

# AtCoder Beginner Contest 014 D – 閉路 (ダブリング 、二頂点のLCAの検出)

https://atcoder.jp/contests/abc014/tasks/abc014_4

LCA(lowest common ancestor)の計算、ダブリング。計算量は前処理のダブリングテーブルの構築に$O(n
\log n)$、各クエリごとに$O(\log n)$。

“`python
from collections import defaultdict, deque, Counter
from heapq import heappush, heappop, heapify
import math
import bisect
import random
from itertools import permutations, accumulate, combinations, product
import sys
import string
from bisect import bisect_left, bisect_right
from math

元記事を表示

pythonの素数プログラムについて

#はじめに
今日2つ目の記事。
先日、学校で素数を列挙するプログラムを課題として出されたときに、提出するプログラムは1つだが勝手に4パターンくらい考えて提出した。

そこで疑問に思った、どれが一番速いんだろう、、、。
やってみよう。
#環境
Windows10
python3.6.6

#素数を求めるプログラム
素数を求めるプログラムはたくさんあるが、今回の代表選手は4名
①リスト内包表記(boolで判定するプログラム)
②リスト内包(約数の個数で判定するプログラム)
③C言語などで使われるプログラム
④約数の個数で判定するプログラム

ルールは簡単!
それぞれの関数の引数maxに10000を与え、2から10000までの素数を求める時間を競う!
最初にtimeだけインポートしとく

“`python:prime.py
import time #時間の計算を行う
“`

##①リスト内包表記(boolで判定するプログラム)

“`python:prime.py
def prime_list_bool(max):
begin = time.time()

pr

元記事を表示

「マクドナルド(マック)」で「価格あたりのカロリー」が高いハンバーガーランキングを作ってみた

## 目次
* [マクドナルド(マック)で一番「得」な商品の定義](#section1)
* [調査方法](#section2)
* [結果(値段あたりのカロリーランキング)](#section3)
* [結局、コスパ上位のハンバーガーは?](#section4)
* [まとめ](#section5)

# マクドナルド(マック)で一番「得」な商品の定義

昼飯にとって最も重要なのは「コスパ」=「値段あたりのカロリー」です。

本当は小麦粉からすいとん等を作るのが一番ですが、外食を余儀なくされる機会も多いと思います。

代表的な良コスパ外食チェーン、「マクドナルド」でコスパの高い商品を調査してみました。

### 元ネタのブログ

* 価格あたりのカロリーが高い「マクドナルド(マック)」のハンバーガーランキング
*
https://0cell.blogspot.com/2019/10/blog-post.html

stackeditの

元記事を表示

pythonの標準ライブラリ

#はじめに
今日はpythonの標準ライブラリを一通り見てみたいと思います。
理由は、python検定の受験を考えているから。しかし、忙しくてそれどころじゃないかもしれない、、、。とりあえずやっていく!

#環境
python3.6.6
Windows10

#それでは
pythonのドキュメントを参考にアルファベット順に10個ずつまとめていきます。
また、今回はクラスや関数を作らないと実行できないものは省略してあります。

| | |
|:-:|:-:|
| abs(x) | 絶対値を返す |
| all(x) | すべてTrueならTrue |
| any(x) | どれか1つTrueならTrue |
| ascii(x) | str型でないものをstr型にして返す |
| bin(x) | 先頭に0bをつけた2進数を返す |
| bool(x) | 真偽値 |
| bytearray(x) | 0から256までのバイト配列を生成 |
| bytes(x) | 0から256までのバイト文字列を生成 |
| chr(x) | intで与えた値の

元記事を表示

PythonでPDFからPNGに変換する + α

# 概要

– `PDF => PNG(画像)`に変換するAPIを作りたかったのでPython3でやってみました
– `pdf2image`を使えばサクッとできます
– ソースは[こちら](https://github.com/nakamura-yohei-fixer/pdf-to-image)にあるので試したい方はどうぞ

# Packages

パッケージ以外にOS側に`poppler`が入ってないと動かないと思うので[こちら](https://texwiki.texjp.org/?Poppler#tafa7455)からインストールしておいてください

“`txt:requirements.txt
pdf2image
Pillow
wheel
“`

以下のコマンドで一気にインストールできます

“`shell
pip install -r requirements.txt
“`

# 実装

`PDF => PNG`と 必要になったので`PDF => PNG => Base64`もやってみました

## PDF => PNG

“`python
import base6

元記事を表示

Google Homeで記録したライフログを,ガントチャート風にグラフ化してくれるWebアプリを作った

## ライフログをガントチャート風にグラフ化してくれるWebアプリを作った
_人人人人人人人人人人人人人人_
> [LIFE LOG GRAPH GENERATOR](https://create-gantt-of-lifelog.herokuapp.com/) <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

### ざっくりとした説明

このような,`日時` と `内容` が記載されたライフログデータから...(折りたたまれています.)

“`
October 15, 2019 at 11:24PM 就寝
October 16, 2019 at 06:03AM 起床
October 16, 2019 at 07:08AM 外出
October 16, 2019 at 08:17AM 開発を開始
October 16, 2019 at 10:49AM 開発を終了
October 16, 2019 at 12:30PM 帰宅
October 16, 2019 at 12:59PM 読書を開始
October 1

元記事を表示

Python3+CleanArchitecture

# はじめに
[Python](https://www.udemy.com/course/python-beginner/) 学習のアウトプットとして、Python3 + CleanArchitectureのサンプルプログラムをコーディングしました。[Injector](https://github.com/alecthomas/injector) を使って、DIP(依存関係逆転の原則)を満たすようにしています。というか今の所それだけですmm

– (※) クリーンアーキテクチャ関連の理解に関しては、以下を参考にしています
– [クリーンアーキテクチャの右下の図@nrslibさん](https://nrslib.com/clean-flow-of-control/)
– [Clean Architecture 達人に学ぶソフトウェアの構造と設計](https://www.amazon.co.jp/Clean-Architecture-%E9%81%94%E4%BA%BA%E3%81%AB%E5%AD%A6%E3%81%B6%E3%82%BD%E3%83%95%E3%83%88

元記事を表示

多ラベル分類の評価指標について

一つの入力に対して、複数のラベルの予測値を返す分類問題(多ラベル分類, multi label classificationと呼ばれる)の評価指標について算出方法とともにまとめる。

例として、画像に対して、4つのラベルづけを行う分類器の評価指標の話を考えてみる。

モデルができたものとして、このモデルの評価を行いたい。
以下の表のような予測と真値であった。

|画像ID|予測|真値|
|—|—|—|
|1|1|1|
|2|1,2,3|1,2|
|3|1,2,3,4|1,2,3,4|

(注)「予測」と「真値」の列の番号はラベルの番号とし、画像ID1では、ラベル1に属すると予測し、真値もラベル1であったことを示す。

この結果のmacro-F1, micro-F1を計算する。

この後、計算方法とともにpythonでのコードの書き方も紹介する。pythonでは、ラベルを列とし、属する場合を1、そうでない場合を0とすると扱いやすい。

“`py
from sklearn.metrics import recall_score, precision_score, f1_sc

元記事を表示

ハロウィンなのでPythonで神隠ししてみる

##前置き
ハロウィンネタ第三弾。

– 第一弾: [ハロウィンなのでPythonにほげほげさせてみる](https://qiita.com/LouiS0616/items/b26883cdb9c51e1f986f)
– 第二弾: [ハロウィンなのでPythonを八つ裂きにしてみる](https://qiita.com/LouiS0616/items/d067589fbc2c5c61223f) :point_left_tone2: **自信作**


例えば、こんなコードがあったとする。世にありふれたFizzbuzzコードだ。

“`Python:何の変哲も無いFizzbuzz
def fizzbuzz(n):
if n % 15 == 0:
return ‘fizzbuzz’
if n % 3 == 0:
return ‘fizz’
if n % 5 == 0:
return ‘buzz’

return str(n)

for i in range(20):
print(fiz

元記事を表示

【質問】Python3 Tkinter スクロールバーについて

調べて試してみたのですがどうしてもわからないので、Tkinterを理解している皆様に教えていただきたいです。

#質問

treeviewを表として使っています。プログラム実行時にその表の1番下の行のデータを選択状態(フォーカスが当たっている状態)で表示したいです。
ただし、スクロールバーがtreeviewに対応しているので、スクロールバーも合わせて一番下に来るようにしたいです。

また、可能ならボタンを押すことで再び1番下の行のデータを表示したいです。

#試したこと
##試したメソッド
– “`set()“`・・・firstとlastの値を指定したことでスクロールバーは下に来た。が、スクロールバーは上に動かすことができない(上矢印と下矢印を押すことで表の表示範囲を動かすことは可能)。実行時の表は一番上表示のまま。
– “`focus_set()“`・・・用途が違う可能性。
– “`see“`・・・用途が違う可能性。“`Listbox“`では使えるが、Treeviewでは使えない可能性。
エラー:“`_tkinter.TclError: Item end not f

元記事を表示

PyInstallerで作成した実行可能ファイル(.exe)が動かないときの調査方法

# 事象

PyInstallerでexeを作って実行したが動かない。
VSCodeからは動く。
exe化するとローカルでも動かない。

# 調査方法

–noconsole”を外して、–debug allをつける。
–noconsoleをつけたままだと、大量のポップアップで泣く。
–debug allをつけることで、コマンドプロンプトに大量のログが出力されるようになる。

“`Python
pyinstaller myprogram.py –onefile –debug all
“`

“`
[12808] PyInstaller Bootloader 3.x
[12808] LOADER: executable is C:\******
[12808] LOADER: homepath is C:\******
[12808] LOADER: _MEIPASS2 is NULL

[6072] PyInstaller Bootloader 3.x
[6072] LOADER: executable is C:\******

[6072] LOADER

元記事を表示

Pythonでシーザー暗号(漢字含む)

# シーザー暗号
[シーザー暗号 – Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%BC%E3%82%B6%E3%83%BC%E6%9A%97%E5%8F%B7)
アルファベットを指定された文字数分ズラすという、原始的な暗号化手法です。

# 実装(アルファベット・数字のみ)

アルファベット、数字のみの場合はpythonの組み込み関数のROT13を使えばできます。
Wiki曰く、伝統的にこういう場合はシフト数は13らしいです。
13にしておけば、同じ関数で暗号化と複合化をこなせるからでしょうね。

“`python
import codecs
codecs.decode(‘Hello, World!’, ‘rot13’)
# ‘Uryyb, Jbeyq!’
codecs.decode(‘Uryyb, Jbeyq!’, ‘rot13’)
# ‘Hello, World!’
“`

# 実装(漢字含む)
今回は、漢字を含む文字列のデータのマスキングが必要だったので、自前で作りました。
アルファベットと数字はA-Z,a

元記事を表示

Django, 多対多関係モデルを用いて簡易アプリケーションを作る

#はじめに
最近個人的にアプリケーション開発していて一つ詰まった箇所として、**models.py**で作成したモデルを**templates**に表示させることがありました。多対多のリレーショナルデータベースのモデルの作成に関する解説は多く見かけ参考にさせていただきましたが、それを**htmlファイル**に表示する方法に関する情報がどうしても**Django初心者**の自分には分かりにくく、理解に時間がかかりました。今回はDjangoの初心者の方でも分かりやすく、**一つの簡易アプリケーション**を開発しながら**多対多関係モデル**の作成、表示方法について解説していきたいと思います。

##今回作成する簡易アプリについて
今回のテーマとして**多対多関係モデル**を扱いますので、まずはモデルを作る前にどのような**アプリ**を作るか書いていきます。分かりやすい例としてパッと出てきたものが**動物園**(上野動物園、旭川動物園など)のリンクを押すと**その動物園にいる動物**(象、キリン、アルパカなど)を表示してくれるアプリケーションだったので、簡易的なものになりますが、そのような*

元記事を表示

【Python】データ分析環境をコンテナで作るならAlpineベースイメージはやめとけ

Numpy/Pandas、scikit-learnを使うPython実行環境を整えようとしているあなたへ。

悪いことは言わない、alpineイメージを使うのは**やめとけ**。

# 結論から

**slim**イメージを使いましょう。
3.7系の最新であるバージョン`3.7.5`のベースイメージサイズの違いは以下の通り。

“`shell
$ docker images
python 3.7.5-alpine3.10 b11d2a09763f 8 days ago 98.8MB
python 3.7.5-slim 46cf279fff55 11 days ago 179MB
python 3.7.5 023b89039ba4 11 days ago 918MB
“`

# あれこれパッケージ追加するのにAlpineは不向き

Pythonでコンテナ環境を立ち

元記事を表示

日本※で一番※ポーカーが上手い※のは誰か計算してみた(TrueSkill)~評価編~

# 記事へのリンク

1. [理論編](https://qiita.com/syym88/items/6d19b24ce2eebed730d8)
2. [実装編](https://qiita.com/syym88/items/be75914c742dcdca33ae)
3. 評価編(←本記事)

# 本記事におけるお断り
本記事は筆者が自学自習のためにデータ取得から計算までを行ったものです。特定の団体や個人から許可許諾はとっていないため、もし内容に問題があるとお考えの場合にはご連絡いただければ幸いです。
また、タイトルにもある通り、単純に強い、上手いを判断するのが困難であるポーカーにおけるスキルの『推定』がやりたかったことです。
本記事を通じて少しでもポーカーに興味を持ってアミューズメントやオンラインでポーカーを始めたいと思う人が増えれば何よりです。

#実行結果
GitHubに計算した結果を格納しました。以下から参照&DL可能です。
列名等はReadMeをご覧ください。個人的な感覚では上二つがある程度良い感じの並び順だと思います
[TrueSkillのエクスポース、レーティング順](

元記事を表示

venv が動かないときの対応の一例

# 状況
`python -m venv $HOME/venv/3.6.8` などとしても、

“`
Error: Command ‘[‘/home/tabaru/venv/3.6.8/bin/python’, ‘-Im’, ‘ensurepip’, ‘–upgrade’, ‘–default-pip’]’ returned non-zero exit status 1.
“`

となり、venv の設定ができない。

# 環境
* `icc –version` とすると、Intel compiler が動く。
* `python –version` とすると、 `Python 3.6.8 :: Intel Corporation` などと出力される。python 3系は python3 としないと呼ばれないはずなのに。
* Ubunt 18.04 だが、おそらく distribution は無関係。
* Intel compiler の設定を直前に行っていた。

# 原因
環境変数 PATH 中で Intel python の bin ディレクトリが先に書かれていたため、

元記事を表示

Pygameを使ってテトリスを作った

# 初めに
2ヶ月ほど前に作ったテトリスです。供養のために記事として投稿しました。プログラムについての説明は気が向いたら追記する予定です。

# プレイ画面
![Screenshot from 2019-10-30 18-42-34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407395/6837bdbb-f264-9ca9-7cf6-08c3c0cfd2b4.png)
なんかそれっぽいですね

# プログラム本体
割とガバガバ設計なので、本家と比べると使用感が異なると思います。

実行にはpygameが必要なので、ない人はインストールしてください。

“`Python3
import pygame
from pygame.locals import *
import sys
import random
import copy

# 定数
MAX_ROW = 20
MAX_COL = 10

class Block:
def __init__(self, block_type):

元記事を表示

OTHERカテゴリの最新記事