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

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

製薬企業のプログラミング初心者のための環境構築

# はじめに

ここでは、主に製薬企業でプログラミングを使った業務を行うために必要な環境構築について書いています。
基本的にはケモインフォマティクスやバイオインフォマティクスなどにおける機械学習に利用することを想定しています。
また、使用するパソコンは、Windows 10を想定しています。

# Anacondaのインストール

Anacondaをインストールすると、Pythonとともに、科学計算でよく使われるライブラリ(よく使う関数などをまとめて利用できるようにしたもの)一式が同時にインストールされ、すぐに実務で使うことができます。

まず、[Anacondaのダウンロードページ](https://www.anaconda.com/distribution/)にアクセスします。
そこで、下の図の赤枠で示しているように、Windows用のインストーラーを選択します。

![Anaconda download.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517951/876b0e96-987d-41d

元記事を表示

TimeStampedModelのすヽめ

# はじめに
[Two Scoops of Django1.11](https://twoscoopspress.com/products/two-scoops-of-django-1-11)に記載されていたモデル定義をする際のベストプラクティス?について書きます。

# TL; DR
* [作成日時]・[更新日時]を持つ抽象モデルを定義し、各モデルに継承させる

# はじめに
一般的に、ほとんどのモデルには「作成日時」および「更新日時」のフィールドを持たせると思います。
例えばこんな感じ。

“`python:models.py
import timezone

from django.db import models

class Book(models.Model):
title = models.CharField(verbose_name=’タイトル’, max_length=20)
created_at = models.DateTimeField(verbose_name=’作成日時’, default=timezone.now)
modif

元記事を表示

【python3】変数名をキーとして文字列のformatを行う

# 実装した関数

“`py
from inspect import currentframe,getargvalues

def varfmt(target,*argv):
return target.format(**getargvalues(currentframe().f_back).locals)
“`

【※追記※】@shiracamus さんより、python3.6以降なら以下の書き方でOKとのコメントを頂きました。
ありがとうございます!

“`py
def HogeAaPrint(hoge, aaa):
print(f”{hoge} {aaa}”)

HogeAaPrint(10, 20)
“`

[参考]
https://qiita.com/AnchorBlues/items/f7725ba87ce349cb0382
https://docs.python.org/ja/3/library/inspect.html

# example
“`py
from inspect import currentframe,getargvalu

元記事を表示

リアクションによる役職の付与、剝奪

#まずはじめに
この記事は海外の開発者様**[Anson](https://github.com/ansonfoong?tab=repositories)**様のコードを日本語で少し分かりやすく解説した物になります。また、ご本人様への確認を取り許可を頂いている為二次配布を禁止し、個人利用にのみ使用可能とします。

[元ソースの掲載ページ](https://github.com/ansonfoong/ReactionPy)
[ご本人様の解説動画](https://www.youtube.com/watch?v=MgCJG8kkq50)

#概要
ここ最近DiscordのBot開発にのめり込んでいるのですが、よく大手のサーバーに入っているbotで**リアクションを付けると役職が付与される**アレ、どうすれば上手く実現できるのかなぁ…と悩みつつcommand.commandsのやつを調べたりなんやらと色々探してみたはいいものの、**まっっっっっっったくと言って良いほどしっくりくるpython用の日本語の記事が無かった**んですよね。なので私が調べ見つけた海外の開発者**Anson**様

元記事を表示

Pythonメモ1 -sort()の注意点-

Pythonを学習する中で、特にこれは注意すべきだと思ったポイントを、「Pythonメモ」というテーマでQiitaに記事を上げていこうと思います。
今回は、sort()について整理していきます。

1.sort()とは

2.sort()とsorted()の違い

3.sort()、sorted()を使う上での注意点

4.出典

##1. sort()とは

そもそも、sortは日本語でどういう意味なのでしょうか。

**sort**(名)種類、人、もの
**sort**(動)分類する、区分する

(出典) [sortの意味・使い方・読み方 | Weblio英和辞書](https://ejje.weblio.jp/content/sort)

Pythonのsort()は、動詞の意味である「分類する、区分する」という意味から転じて、リストの要素の順番を並べ替える役割を持ちます。並べ替え方は、**アルファベットのみの要素の場合はアルファベット順**、**数値のみの要素の場合は昇順**に並べ替えます。
以下のコードに、その例を示します。

“`Python:アルファベットのリスト

元記事を表示

PyPlotを使って、散布図の上にカラーテーブルのようなものを重ねる。

少し複雑な散布図を書いたときにその散布図のキャプションが見にくかったから、表形式で出力したいと思った。
やってる記事が見つからず、結構時間を溶かしたのでメモ代わり。
~~意外と需要あるんじゃないかと思ってる~~
~~後、コードは適当…~~
もっと簡単な方法があればコメント等くださるとありがたいです。

#環境
* Python 3.6.2
* pyenv-virtualenv
* macOS 10.15

#最終目的
こんな感じの表が作りたい。
(以下の表は特に意味のない、散布図です。)
![pic_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225002/76022a8a-37e1-86a8-e4b6-fbe5f20f7a41.png)
作り方は、表を散布図とテーブルの2つ作ってそれを重ねるという風にした。

#そもそもPyPlotについて
PyPlotの仕様については以下の記事が非常にわかりやすい
[matplotlib の figure(図) と axes(座標軸)-python](ht

元記事を表示

Pythonの数値、文字列、リスト型(Python学習メモ①)

# Pythonの型

## 数値
ポイント

* 除算(`/`)は常にfloatを返す
* 切り下げ除算を行ってint型を得たい場合は `//` 演算子を使う
* 剰余を得たい場合は`%`を使う
* 演算対象の型が混同していた場合は、整数は浮動小数点数に変換される
* 対話モードでは、最後に表示した式を変数「`_`」に代入してあるので電卓と使用するのに楽
* Pythonでは整数型、浮動小数点数型以外にも、十進数(Decimal)や有理数(Fraction)などがサポートされている
* 複素数もサポートされており、虚部を表現するのに接頭辞`j`または`J`を使用して`3+5j`などとする

“`
# 足し算
>>> 2+2
4

# 引き算と掛け算
>>> 50 – 5 * 6
20
>>> (50 – 5) *6
270

# 割り算
>>> 17 / 3
5.666666666666667
>>> 17 // 3
5

元記事を表示

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

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事