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

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

Pythonで、デザインパターン「Chain of Responsibility」を学ぶ

GoFのデザインパターンを学習する素材として、書籍「[増補改訂版Java言語で学ぶデザインパターン入門](https://www.hyuki.com/dp/)」が参考になるみたいですね。

ただ、取り上げられている実例は、JAVAベースのため、自分の理解を深めるためにも、Pythonで同等のプラクティスに挑んでみました。

# ■ Chain of Responsibility(チェーン オブ レスポンシビリティ・パターン)
「Chain of Responsibility」という英単語は、「責任の連鎖」を意味します。
このパターンは、ある要求の受取り対象となる複数のオブジェクトに鎖状の関係を構築し、要求を処理する事が可能なオブジェクトに渡るまで、順次、構築した鎖状の関係に沿って要求を受流していくパターンです。
このパターンを適

元記事を表示

【Python】sympyで方程式を解く

# はじめに
三次方程式を楽に解きたい…
三次方程式の解の公式は、ものすごく長いものとなってしまいます。興味がある方は[こちら](http://hooktail.sub.jp/algebra/CubicEquation/)
これをプログラムで解けないかと検索したらPythonにsympyというモジュールがありました。本当にすごい。

# 環境
どちらも動きました

– windows 10
– Python 3.7

– Ananconda
– Python 3.7
– Jupyter notebook

# 使い方
## インストール
Anacondaの環境には既にインストールされていますがそうではない場合pipでインストールしましょう

“`
pip install sympy
“`

## 方程式を解く
とりあえず方程式を解きたいんだ!という方はこちら
`Symbol`で文字を定義して、`solve()`で方程式を解くことができます。
以下の3次方程式を解きます。

“`math
3x^3 + 2x^2 + x + 10 = 0
“`

べき乗は

元記事を表示

tensorflow 2.0でImportError: DLL load failed が出て苦労した話

## 結論
Stack Overflow の以下の記事を参照してください。

https://stackoverflow.com/questions/59593972/tensorflow-2-0-on-windows-sse2-how-do-you-stop-importerror-dll-load-failed

## 詳細
tensorflow 2.0
python 3.5
Windows 10

“`
import tensorflow as tf
“`
の箇所で下記のエラーが発生しました。

“`
Failed to load the native TensorFlow runtime.
“`

はじめ、公式ホームページを見たのですが詳細な情報は書いておらず途方に暮れていたところ
tensorflow 2.0 では tensorflow-gpu 無しで GPU を使えることを思い出し
CUDAのバージョン不一致を疑ったりしていました。

でも、結局は Visual C++ のバージョンが古いことが原因でした :frowning2:

機械学習は本当に環境構築が大変です

元記事を表示

pyqtdeployでPythonコンパイル

#はじめに
Pythonのプログラムをバイナリ配布しようとするとpyinstallerもnuitkaもちょっと物足りない。
Qtはクロスプラットホームでバイナリをビルドでき、pyqtdeployを使えばPythonでもバイナリが作れるらしい。
ということで安直に始めてみたが意外と日本語の記事がないので書いてみた。

#pyqtdeploy
https://www.riverbankcomputing.com/software/pyqtdeploy/intro

#デモをビルドする(sysrootのビルド)
https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/demo.html

###下準備(Windows環境での今回の構成)
ディスクの空き10GB程度
Visual Studio Community Edition 2017
Perl(ActivePerl, StrawberryPerl等。PATHを通しておく)
Python2.7(Qtのビルドに必要:anaconda/minicondaではなくインストーラー版)
Py

元記事を表示

自分を大蛇丸と信じて止まない一般男性が、ウマになる関数を作って優勝する投稿です。

プログラミング言語でPythonっていう蛇の言語があるんだけど
[蛇語(パーセルタング)](https://harrypotter.fandom.com/ja/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%AB%E3%82%BF%E3%83%B3%E3%82%B0)ができなくても扱えるらしいわ

ということで今回は
Pythonでウマになる関数を作って
優勝していくことにするわね

## UTF-8の4バイト文字

まずは動物の絵文字の解説から始めるわね

UTF-8で動物の絵文字は「F0 9F 90 80」から「F0 9F 90 BC」あたりにあるらしいわ
理由は知らないけどね~

一覧にしてみるとこんな感じよ

| 16進数 | 10進数 | |
| ———– | ————— | — |
| F0 9F 90 80 | 240 159 144 128 | ? |
| F0 9F 90 81 | 240 159 144 129 | ? |
| F0 9F 90 82 | 24

元記事を表示

機械学習④ ニューラルネットワークの実装(NumPyのみ)

#はじめに
 この記事は [機械学習③ 活性化関数の紹介・実装](https://qiita.com/squarekzmlviy/items/302fa84103212b91997e) の続きになります。
 今回はニューラルネットワークの実装をNumPyのみ使用し実装する記事です。以下の内容リンクと重複する点の説明を省いている箇所があるので、併せて読んでいただけると幸いです。
[機械学習① パーセプトロン基礎の基礎](https://qiita.com/squarekzmlviy/items/b6bcb75fdae2b76ae7b6)
[機械学習② パーセプトロンの活性化関数](https://qiita.com/squarekzmlviy/items/6d3b4aae12fc2c159e81)
[機械学習③ 活性化関数の紹介・実装](https://qiita.com/squarekzmlviy/items/302fa84103212b91997e)

#参考
参考文献:[O’REILLY JAPAN ゼロから作るDeep Learning](https://www.oreilly.

元記事を表示

Re:ゼロから始める競技プログラミング生活 第1章1『C++しか使えない』

#はじめに
本記事はプログラミング若葉マークを胸に貼ったエンジニア志望の私、OTがAt.Coderで出題された競技プログラミングの問題を死に戻り(リトライ)を繰り返して解いていく、涙なしでは読めない長編Part式の記事となっております。
途中で絶望して失踪するかもしれませんが、せめて就職が決まるまではやっていきたいと考えています!!

#まずは簡単なプロフィール
名前:OT
プログラミング歴:3ヶ月(TECH::EXPERT63期)
使える言語: Ruby(Railsで簡単なWebサイトを作れるレベル)、C#(Unityで簡単なオセロを作れるレベル)、Python(“Hello World”レベル)
好きな芸能人:ガッキー

#最初の敵
では、何の文脈もありませんが早速問題を解いていきます。笑
最初なので一番簡単なA – Roundingで経験値を積んでいく算段。
では、記念すべき第一問目どーん!!

**問題文**
X,Aは0以上9以下の整数です。
XがA未満の時0、A以上の時10を出力してください。

**制約**
0≤X,A≤9
入力は全て整数である

…めちゃくちゃ簡単

元記事を表示

アンドロイドで画面に書いた数字を判別する画像認識アプリを作る(PyTorch Mobile)[アンドロイド実装編]

#今回作成するアプリ
画面に書いた数字を認識する画像認識アプリをPytorch Mobileとkotlinで作る。
**モデル作成編(Python)**と**アンドロイド実装編(kotlin)**の全2回に分けます。

今回のandroid studio のプロジェクト Github : https://github.com/SY-BETA/NumberRecognitionApp/tree/master

まだpythonでモデルを作ってない方は[アンドロイドで画面に書いた数字を判別する画像認識アプリを作る(PyTorch Mobile)[ネットワーク作成編]](https://qiita.com/YS-BETA/items/077b5b8d3163fb7de800)で作ってください。

もしくはpythonの環境がないアンドロイドエンジニアの方やモデル作るのがめんどいという方は学習済みモデルを挙げているので、
Github: https://github.com/SY-BETA/CNN_PyTorch/blob/master/CNNModel.pt から学習済みモデルをダウンロード

元記事を表示

アンドロイドで画面に書いた数字を判別する画像認識アプリを作る(PyTorch Mobile)[CNNネットワーク作成編]

#今回作成するアプリ
画面に書いた数字を認識する画像認識アプリをPytorch Mobileとkotlinで作る。
**CNNネットワーク作成編(Python)**と**アンドロイド実装編(kotlin)**の全2回に分けます。

Python環境がないアンドロイドエンジニアの方やモデル作成がめんどいって方は[アンドロイドで画面に書いた数字を判別する画像認識アプリを作る(PyTorch Mobile)[アンドロイド実装編]](https://qiita.com/YS-BETA/items/15a4a2c64360f91f8b3a)へ行って実装編で学習済みモデルをダウンロードして進めてください。

Githubに今回のpythonコード挙げてます
Github: https://github.com/SY-BETA/CNN_PyTorch

これ↓

元記事を表示

HerokuにFlaskアプリをデプロイする

# 概要

Herokuに最小のFlaskアプリをデプロイするまでの手順を記載します。

# 前提条件

* Herokuに登録していること
* Heroku CLIが導入済みであること
* 仮想環境は利用しない
* 下記がインストールされていること
flask(pip install flask)
gunicorn(pip install gunicorn)

# 手順

## 必要なリソースを作成

プロジェクトファイル置くディレクトリを作成し、ディレクトリに移動する。

“`bash
$ mkdir flaskonheroku
$ cd flaskonheroku
“`

必要なファイルを作成する。

“`bash
$ touch app.py Procfile
“`

app.py を下記の通り編集する。

“`python
# -*- coding: utf-8 -*-
from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def index():
return

元記事を表示

PythonでシンプルなgRPC

## 概要
– PythonでgRPCのシンプルな処理を作成する。
– RESTのように何らかの値をリクエストして、結果を返す処理を作ってみる。

## 全体の流れ
1. grpcio-toolsのインストール
2. `.proto`ファイルを作成して、コンパイルする。
3. 自動生成されたソースを使ってserverとclientのソースも作る。
4. テスト

## 1. grpcio-toolsのインストール
“`bash:pipでインストール
$ pip install grpcio-tools
“`

## 2. protoファイルの作成
“`proto:simple.proto
syntax = “proto3”;

package simple;

// request
message SimpleRequest{
string name = 1;
string msg = 2;
}

// response
message SimpleResponse{
string reply_msg = 1;
}

// interface
servic

元記事を表示

Python detailEnhanceFilter(詳細強化フィルタ)を用いた靄(かすみ)除去

## 背景
撮影した写真などが意図せず霞む場合があります。そのため、霞画像に対して画像処理を用いて霞を除去したいというニーズがあります。

実際に下記のサイトを拝見するとAdobeの製品にも霞除去機能があります。
site: https://blogs.adobe.com/japan/cc-adobe-stock-contributor-j-curbon-lightroom-how-to-goto-2/

今回はPythonとOpenCVを用いて簡易な靄除去方法をご紹介します。

## detailEnhanceFilter

今回はOpenCVのNon-Photorealistic Renderingに実装されているdetailEnhanceFilterを使用します。

ライブラリの詳細は下記サイトにてご確認ください。
https://docs.opencv.org/master/df/dac/group__photo__render.html

## 実装
“`image_processing.py
from PIL import Image
import numpy as np

元記事を表示

【Python】Qiita 週間いいね数ランキング【自動更新】

# 他のタグ

– [Python](https://qiita.com/kou_pg_0131/items/9d7f2ffeafb36cf59a77)
– [JavaScript](https://qiita.com/kou_pg_0131/items/eaa7ac5b62a0a723edbb)
– [AWS](https://qiita.com/kou_pg_0131/items/e24b6279326a462d456c)
– [Ruby](https://qiita.com/kou_pg_0131/items/72c3d2e896bdc3e1a6b3)
– [Rails](https://qiita.com/kou_pg_0131/items/93b9e7f7d143e9ce650e)
– [Docker](https://qiita.com/kou_pg_0131/items/ae11fca7d2eba445b037)
– [Vue.js](https://qiita.com/kou_pg_0131/items/2774e02c6eea5c830d99)
– [PHP](htt

元記事を表示

requirements.txtの自動生成 〜Pythonスクリプトから依存パッケージを抽出する〜

# この記事の概要

– `dephell` コマンドを使うと Python パッケージの依存関係記述ファイルの相互変換ができる
– setup.py から requirements.txt を作るとか
– プロジェクトの Python パッケージの `import` を読み取って適切なフォーマットに変換できる
– 依存関係が掲載されていないプロジェクトでも使えるのでオススメ

# はじめに

データの前処理や可視化はどうやったの?みたいな話で Jupyter Notebook が残っているけど、特に requirements.txt とか setup.py が残ってない、みたいなケースがままあると思います。

もはや依存関係のバージョンの同定は不可能ですし、ほとんどの場合システムに組み込むとかしないので「動けばいい(再現すればいい)」のですが、そもそも動かすために依存するライブラリの一覧を作るのが一苦労です。ノートブックを開いて[^1]、import 文からサードパーティのライブラリを特定して、requirements.txt を作る単純作業になります。

[^1]: ほとんどの

元記事を表示

[Python3 入門 15日目]7章 文字列(7.1.2〜7.1.2.2)

##7.1.2 書式指定
###7.1.2.1 %を使ったスタイル

– 古いスタイルの書式設定は string % dataという形式を使う。
– %と型指定子の間には、幅の上限、文字数の上限、配置、パディングを指定できる。

“`py

#文字列
>>> “%s” % 42
`42`
#10進整数
>>> “%d” % 42
`42`
#16進整数
>>> “%x” % 42
`2a`
#8進整数
>>> “%o” % 42
`52`

#10進float
>>> “%f” % 7.03
`7.030000`
#指数形式float
>>> “%e” % 7.03
`7.030000e+00`
#桁の大きさによって変わる%g (10進floatまたは指数形式float)
>>> “%g” % 7.03
`7.03`
#整数とリテラルの%
>>> “%d%%” % 100
`100%`

>>> actor = “Richard Gere”
>>> cat=”Chester”
>>> weight=28
#文字列の挿入
>>> “My wife is favorite actor

元記事を表示

ねこSQL_Python書き下し

# 第2章_ひとつのテーブルを扱う(pp.23~125)

第2章_その1_データを取り出す

“`
df_customers.loc[:,[‘CUSTOMERNAME’]]
“`

第2章_その2_複数の列を指定する

“`
df_products.loc[:,[‘PRODUCTNAME’,’PRICE’]]
“`

第2章_その3_列に別名をつける

– 方法1_DataFrameの引数:columns

“`
pd.DataFrame(df_products.loc[:,[‘PRODUCTNAME’,’PRICE’]].values,columns=[‘商品名’,’単価’])
“`

– 方法2_renameメソッド

“`
df_products.loc[:,[‘PRODUCTNAME’,’PRICE’]].rename(columns={‘PRODUCTNAME’:’商品名’,’PRICE’:’単価’})
“`

元記事を表示

書籍「15Stepで踏破 自然言語処理アプリケーション開発入門」をやってみる – 2章Step07メモ

# 内容
[15stepで踏破 自然言語処理アプリケーション入門](https://www.amazon.co.jp/dp/4865941320) を読み進めていくにあたっての自分用のメモです。
今回は2章Step07で、自分なりのポイントをメモります。

# 準備
– 個人用MacPC:MacOS Mojave バージョン10.14.6
– docker version:Client, Server共にバージョン19.03.2

# 章の概要
– 機械学習システムの予測精度を様々な指標で定量評価する
– 既存のシステムに改良を加える場合に、かえって性能低下を起こしていないことを評価によって保証し、安心してシステムをアップデートできる
– 過学習について理解し、発生を防ぐ

# 07.1 学習データとテストデータ、そして過学習と汎化
学習によって、識別器が学習データに対して過剰に適合してしまうことを**過学習**と呼ぶ。

学習データに含まれる特徴ベクトルを100%識別できるようにすると、無視しても良いノイズまでも正しく識別できるように細かい識別面になってしまう。
学習データ以

元記事を表示

初めて全力で取り組んだ機械学習コンペを振り返る

#はじめに
先日、とある機械学習コンペに参加した。週末を何度もつぶす程全力でやってみた。その結果、入賞には至らなかったものの上位3%に入ることができ、自信につながった。まだまだコンペ経験が少ないため、今後考えが変わるかもしれないが、まずは現時点でこの経験を振り返り、メモとして残しておく。

#参加の動機
機械学習については本を読んだり動画を見たりして勉強はしているものの、自分のスキルがどの程度か客観的に知りたいと思ったため。

#前提
コンペの内容は詳しくは言えないが、テーブルコンペである。以下の戦闘環境で戦った。

### ハードウェア(1台)
– CPU i7-8700 3.70GHz
– メモリ 16GB
– GPU NVIDIA GetForce GTX 1060 6G

### ソフトウェア
– Windows 10
– Python 3.6
– scikit-learn 0.21.2
– tensorflow 1.13.2
– keras 2.3.1
– xgboost 0.9
– lightgbm, catboost etc..
– PyCharm(開発環境)

#

元記事を表示

Tkinter事始め

# はじめに

– [tkinter](https://docs.python.org/ja/3/library/tk.html)の使い方を調べた備忘録です。

# 経緯
– [簡単なHello Worldプログラム](https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program)が簡単ではなかったので…。
– 少しずつ理解していきたい。

“`py:a-simple-hello-world-program.py
import tkinter as tk

class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()

def create_widgets(self):
s

元記事を表示

PC環境でInference Engine Python APIを使ったOpenVINO

# 概要
[こちら](http://jellyware.jp/openvino/)のサイトにRaspberry Pi と Neural Compute Stick を使ったOpenVINOでのPython APIコードのチュートリアルが書いてありますが、PCのみの環境で行う場合には少し変更や追加が必要なので、そのメモを書きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/69327/08be909a-5d24-d4b2-df27-4f881885bd78.png)
画像引用元:[OpenVINO™ でゼロから学ぶディープラーニング推論](http://jellyware.jp/openvino/)

必要なのは以下3つの項目です

>- ターゲットデバイスの変更
>- FP16をFP32へ変更
>- ライブラリ読込みの追加

# ターゲットデバイスの変更

Neural Compute Stickを意味する `MYRAID` から `CPU` に変更するだけ。これは簡単。

元記事を表示

OTHERカテゴリの最新記事