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

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

kerasの環境設定とtensorflow1.xのバージョンの問題について

環境:macOS catalina, pipenv, pyenv, vs code

Kerasの昔のサンプルコードを試そうと思って、詰まったのでメモ。
https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py
最近、kerasを始めた方だと、環境構築の情報やkerasの基本概念の說明用のサンプルコードが以前のままになっているケースがあるので要注意です。

#以前のKeras(TensolFlow1.x)
kerasは、以前、Tensorflow1.xをバックグラウンドにしてい動いており、
少し前のkerasのimportのコードは下記のような記述になっています。

“`python:python
import keras
“`

この記述でimportするためには、KerasとTensolflow1.x(最終盤は1.15)の両方をインストールする必要がありました。

“`terminal:console
pip install tensorflow==1.15
pip install keras

元記事を表示

浮動小数点数の問題をどう回答するか

AtcoderのABC169にて素晴らしい問題が出ました。
浮動小数点数に関する問題です。

##業務では
業務では「decimal型」を使用しています。
実際の製品開発では処理速度がいらないなら、動作の安定したフレームワーク、ライブラリを使うのが正解です。
ミスを少なく、素早く組めるとは素晴らしいです。
人件費削減=利益率です。

##競技プログラミングでは
タイムアタックである以上、直感で組めることは大事です。
これからは「decimal型」がさっと使える言語で回答します。
流行ではpythonかなと思います。
C#はマイクロソフト環境なのでmac使いの自分には向いていないのと求人の数が少ないです。

###[B – Multiplication 2](https://atcoder.jp/contests/abc169/tasks/abc169_b)
問題文はAtCoderを参照してください。

“`C++:C++
#include
#include
#include
#include
#include

元記事を表示

えっ、私のPython、遅すぎ?〜brewでインストールしたpython@3.8が何故か遅かった話〜

結論は表題の通りで、公式のものを入れたら速くなりました。**変数アクセスで数割程度。**
理由は分かっていません。(dockerではspectre対策で遅くなる、みたいな話もあったので、ビルド時の何らかの最適化とかかなと思うのですが、不明です…)

以下、ストーリーをお送りします。

# ストーリー

ある晴れた日、”Lieteral”という記述がPython3.7でエラーを起こしたのを目にした私は、Python3.8で追加された機能のPEPを見ていました。

Literal types
https://www.python.org/dev/peps/pep-0586/
TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys
https://www.python.org/dev/peps/pep-0589/
Adding a final qualifier to typing
https://www.python.org/dev/peps/pep-0591/

へー、と思って調子に乗った私は、ついでに3.9で追

元記事を表示

pythonでソートアルゴリズム -バブルソート

#はじめに
プログラミング初心者がソートアルゴリズムを自分なりに理解し、コーディングしてみたものの忘備録になります。
間違いもあるかもしれませんがご了承ください&ご指摘いただけると助かります…。
ここでは、**バブルソート**を扱います。
参考にした本と記事はこちら
→https://www.codereading.com/algo_and_ds/algo/
→https://book.impress.co.jp/books/1118101057

#バブルソート
基本となるソート。値の比較の様子が泡が上がっていくように見えるのでバブルソートという。
隣同士の要素を比較し、大きい値を配列の最後に押しやるイメージ。

##手順
![バブルソート.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614239/4af60a67-f75b-0d44-b71b-0d9c4616cd0c.jpeg)

ここで青字で書いている数字(1-1, 1-2, 1-3, …)は、第1段階の1回目の比較、第2段階の2回目の比較

元記事を表示

コツコツがんばるPythonプログラミング日記

#はじめに
地方の凡庸な大学生です.プログラミング歴1年で実力も大したことはありませんが,
自分のモチベーション維持のために書いていきます.
内容としては,コツコツと自分のペースでプログラミングの勉強を記録をしていきます.
ご指摘等あればコメント頂けると嬉しいです.

#目標
私の研究ではプログラミングをしてはいますが,
何かを完成まで作るといったことをしたことがないので
当面はアプリ開発を目標にしたいと思っています.

#開発環境
Windows10
Anaconda仮想環境
Python3.7

#おわりに
投稿が今日で終わらないように頑張っていけたらなと思います.

元記事を表示

DjangoでVue.js(webpack)を扱うための備忘録

# 前書き

この記事はPythonをバックエンド(Djangoをフレームワークとして使用)、Node.jsでWebpackを用いてVue.jsをフロントエンドとして使用できるようにするための備忘録記事です。

node.jsの知識が浅いので、使い方を間違っていることもあります。ご了承ください。

また、この記事は`pipenv`や`yarn`を使用しています。導入していない場合は導入してからこの記事を読むことをお勧めします。

# パッケージのインストール

Djangoのstartprojectで自動作成されたフォルダを基にします。

## Python

“`bash
pip install django
django-admin startproject django_vuejs
cd django_vuejs
pipenv –python 3
pipenv install django
pipenv install django-webpack-loader==0.7.0
“`

## node.js

“`bash
yarn init -yp # package.j

元記事を表示

PythonでDIしてみた話

# はじめに
この記事はpythonをよく使う筆者が、[BEAR.Sunday](https://bearsunday.github.io/manuals/1.0/ja/)のRay.DIような”依存性の注入(Dependency Injection)“がpython界隈でもあるのかを探り、見つけたので試してみてる記事です。
更に、このInjectorの記事はQiitaにいっぱいあるので言うなれば“車輪の再発明“しまくっている記事なのであしからず :bow:

# DIPとは
まず、DI:Dependency Injectionを行う前にキーワードになるのが[SOLIDの原則](https://ja.wikipedia.org/wiki/SOLID)のDにあたる
Dependency inversion principle:依存性逆転の原則
について少しだけ触れておきます。

依存性逆転の原則とは一言でいうと
「コードは同等以上のレベルの抽象に依存せよ、下位レベルの詳細に依存しない」
ということです。
cf: https://speakerdeck.com/koriym/bear-dot

元記事を表示

[Python] Plotlyで標高データを球面に描画し、グルグル回せる地球儀を描いてみる

# はじめに
Pythonをはじめ様々な言語に対応し、比較的容易にインタラクティブな図を描画できる[Plotly](https://plotly.com/)を利用して、標高データを用いてGoogle Earthのようなグルグル回せる地球儀を作成してみます。

結果はこんな感じ。
https://rkiuchir.github.io/3DSphericalTopo

![EarthGlove.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/648286/2395e039-3387-8d98-0955-904e64602df3.gif)

# 3つのポイント
1. 標高データの取得および読み込み
2. 直交座標系で表現される緯度経度情報を球面座標系に変換([Plotly Chart Studio: Heatmap plot on a spherical map](https://chart-studio.plotly.com/~empet/14813/heatmap-plot-on-a-spherica

元記事を表示

ゼロから始めるLeetCode Day45 「1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day44「543. Diameter of Binary Tree」](https://qiita.com/KueharX/items/117f939714ea26ab72c6)

今はTop 100 Liked QuestionsのMediu

元記事を表示

matplotlibを使ってみた

仕事でmatplotlibを使う機会があったので、学習した使い方をまとめておきます。

## 環境
* windows10
* python 3.7.4
* matplotlib 3.2.1

[matplotlibの公式ページ](https://matplotlib.org/)

## 基本的な使い方
#### モジュールのimport

“`
import matplotlib.pyplot as plt
“`

#### グラフの表示

“`
plt.plot([1, 2, 3, 4, 5])
plt.show()
“`

以下のようなグラフが表示される。
引数に渡す情報が1つだけの場合はy軸に引数の座標が来るらしい。
![plot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540218/bd1da303-9de0-1270-a1c7-79ce4742ff6f.png)

#### 複数の線を描画する場合

“`
line1 = [1, 2, 3, 4, 5]
line2 = [5,

元記事を表示

初心者のための Python 練習問題 #2 [for 文・while 文]

[初心者のための Python 練習問題 #1 [基本的なデータ型・if 文]](https://qiita.com/motoyannn/items/9c983ad741d7b8b1df53) の続きです。分からない問題は、「必要な知識」に掲載しているキーワードでググるとなんならの記事が出てきます。

それではいきましょう!

## 目標
1. 四則演算ができるようになる
2. 異なるデータ型の扱いに慣れる
3. if文で簡単な条件分岐ができるようになる

## レベルについて


とてもよく使います。できるようにしましょう。

★★
少し複雑な処理をするときに使います。

★★★
よく勉強できていますね。Python初心者を卒業できそうです。

★★★★
トリッキーですが Python ではよく使います。覚えておきましょう。

★★★★★
おぉ。業務でもPython利用できそうですね!さすがです。

## 出題内容

> Python チュートリアル
4.2 for 文
4.3 range() 関数
4.4 break 文と continue 文のループの else 節

元記事を表示

Windows10 + Python3 + selenium + chromedriver + headless chrome でファイルをDLしてみる

Windows10 + Python3 + selenium + chromedriver + headless chrome でファイルをDLしてみる
#目的
サイズの大きなバイナリファイルと画像ファイルをダウンロードしてみる
※urllib.request.urlretrieve で明示的にファイル名を指定すればよいようだ
#サンプルコード
対象とするhtmlの抜粋

<a href="./LibreOffice_6.4.4_Win_x64.msi" target="_blank">LibreOffice_6.4.4_Win_x64.msi</a>
<img src="./eudv015s.jpg">

“`python
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode

import os
import time
import urllib.request
from selenium import webdriver
from selenium.we

元記事を表示

Cloud9とApache Httpdでflaskアプリを動かす

# はじめに
Coud9で使用しているEC2上でflaskアプリを動かして、動作検証したいケースがある。
その際に参照するための手順を残しておく。

# 所要時間
本手順は60分あれば完了する想定である。

# Apache Httpdの設定
Apache HttpdはCloud9上にデフォルトでインストールされている。
そのため、自動起動の設定だけ入れておく。

– 起動設定の現状確認

“`
$ sudo chkconfig –list httpd
“`

– 自動起動設定

“`
$ sudo chkconfig httpd on
“`

– 設定確認

“`
$ sudo chkconfig –list httpd
“`

# 必要なパッケージのインストール
– apache-devとgccのインストール

“`
$ sudo yum -y install httpd24-devel
“`

※ gccはもともとインストール済みだが、Cloud9以外でインストールするなら以下。

“`
$ sudo yum -y install gcc
“`

#

元記事を表示

Python Tutorial の学習メモ

# Python Tutorial の学習メモ

## 形式ばらないPythonの紹介

### その他

#### コメントアウト

一行の場合、先頭に#

複数行の場合、三連引用符で囲む

#### 除算

`/`は常に*float*を返却し、`//`は小数部を切捨て、`int`を返却

#### 冪乗

`**`, 優先度が高い。`-3**2` = `-(3**2)` = `9`, `(-3)**2` = `9`

#### 便利な_

対話モード時、`_`は前回の返却値のalias

#### その他

* 複数同時代入が可能、右辺の式をすべて左から右へ評価した後、左辺へ代入する
* ループのbody部は、インデント(字下げ)が必要、しかも同じ下げ方と幅じゃないと
* `while`や`if`の後ろの判定式を括弧で括る習慣はない

### 文字列(str)

文字列リテラルは、`’…’`か`”…”`で囲む。結果は同じで、エスケープした特殊文字は機能する。

エスケープ文字を機能させたくない場合、最初の引用符の前に`r`を付ける(**raw string**)

元記事を表示

lightbox2の使い方とカスタマイズについて(メモ)

#この投稿について
作業進捗の備忘録、学習効果の向上を目的として記録していきます。
学習しながら作業を進めておりますので、情報が間違っている場合も多々あると思います。
正しい情報は公式ドキュメントを参考にしてください。

#開発環境
* macOS High Sierra 10.13.6
* Anaconda 3
* Python 3.7.7
* Djnago 3.0.6
* VisualStudioCode

※記事内のHTMLコードやフォルダ構成についてはアプリ開発途中のものを使用していますので、あらかじめご了承ください。

#lightbox2とは

公式サイト
https://lokeshdhakar.com/projects/lightbox2/

Webサイト上でいい感じに写真を閲覧できるようにするためのJavaScriptライブラリです。

#lightbox2でやりたいこと
ページをめくる感じに写真を次々閲覧したい。
なんかいい感じに写真を見せたい。

#導入してみる
`lightbox.js`を公式のGithub(https://github.com/lokesh/l

元記事を表示

PEP 612 (Parameter Specification Variables) を読んだよメモ

Microsoft の Python 向け型チェッカーの [pyright](https://github.com/microsoft/pyright) の README を流し読みしていたら、初めて聞く PEP が登場したシリーズ第二弾です。
今回は [PEP 612 (Parameter Specification Variables)](https://www.python.org/dev/peps/pep-0612/) について書きます。

## 概要

* 汎用のデコレータを書こうとすると、型を書くのが非常に難しい
* **指定された関数と同じ引数を持つ関数** を表現する方法がほしい

## アプローチ

* `ParameterSpecification` という引数を表す型を追加すると解決する

引数を表す型として `ParameterSpecification` を追加する。
`ParameterSpecification` は `Callable` と一緒に用いることで callable object のジェネリクスっぽく振る舞うことができる。 `TypeVar`

元記事を表示

Saliency MapをGANで生成するSalGANを実装してみた

#はじめに
画像内の目立つ部分のことを”Salient”な部分と言う.
特に画像が与えられた時に目立つ部分の分布を表したmapのことをSaliency Mapと言う.

下の例は左の画像とそれに対応するSaliency Mapを並べて表したもので、人の部分が目立っていることが読み取れる.
![sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/aa2d47cb-23f6-c9ee-505c-ac2666a4d95a.png)
深層学習を用いてこのようなSaliency Mapを生成する手法がいくつか提案されている.
今回はその中でもGANを用いて生成を行うSalGANというモデルをKerasを使って実装し性能を評価してみることにした.

こちらは元論文と今回の実装のURL.
[元論文 – SalGAN: Visual Saliency Prediction with Generative Adversarial Networks](https://arxiv.org/abs/170

元記事を表示

「14日で作る量子コンピュータ」を読んでみる。3日目

# はじめに
 今回は重ね合わせの原理と、電子波束についてまとめる。

# 3 電子波束の観察
## 重ね合わせの原理
 重ね合わせの原理は、シュレディンガー方程式を満たす複数の解を、足し合わせてできる関数もまたシュレディンガー方程式の解となっていると言う原理です。例えば以下のようなある分布にしたがって、$\psi_k$を重ね合わせた波動関数を用意する。

$$
\psi(x,t)=\int_{-\infty}^{\infty}a(k)\varphi_k(x)e^{-i\omega(k)t}dk=\int_{-\infty}^{\infty}a(k)e^{ikx-i\omega(k)t}dk
$$

 これをシュレディンガー方程式に代入してみる、この時自由空間なのでポテンシャルは0したがって

$$
i\hbar\frac{\partial}{\partial t}\int_{-\infty}^{\infty}a(k) e^{ikx-i\omega(k)t}dk=\frac{\hbar^2}{2m}\frac{\partial^2}{\partial x^2}\int_{-\infty

元記事を表示

PEP 604 (Complementary syntax for Union[]) を読んだよメモ

Microsoft の Python 向け型チェッカーの [pyright](https://github.com/microsoft/pyright) が最新の仕様に対応していると聞いて README を流し読みしていたら、今までウォッチしていなかった [PEP 604 (Complementary syntax for Union[])](https://www.python.org/dev/peps/pep-0604/) というのがリストアップされていたので目を通してみました。
ちなみに次の記事で PEP-612 についても書く予定です。

## 概要

* 毎回 `Union[int, str]` って書くのうざくない?
* Scala みたいに `int | str` って書けるようにしようよ
* 型アノテーションだけじゃなくて、 `isinstance()` や `issubclass()` でも使えるようにしようよ

## アプローチ

* 型同士を `|` でつなぐと型集合をつくれるようにする

以上。

## 例

PEP にあるサンプルを見ると一目瞭然なので説明は省

元記事を表示

Pythonの関数入門

# まえおき

– この記事は執筆中の[やさしくはじめるPythonプログラミング](https://github.com/simon-ritchie/python-novice-book-preview)の本の特定の章の部分抜粋です。
– 入門本なので初心者の方向けです。
– 関数の章の内容が主になります。
– Qiita記事にマッチしていない箇所(「章」や「ページ」といった単語が使っていたり、改行数が余分だったり、リンクが対応していない等)があるという点はご留意ください。面倒なのでQiita用に調整するのやりたくない。気になる方は↑のリンクの電子書籍版をご利用ください。
– コメントなどでフィードバックいただいた場合、書籍側にも活用・反映させていただく場合があります。

# 同じ処理のコードを使いまわす : 関数入門

この章ではPythonの関数について学んでいきます。そもそも関数ってなんだ?という感じですが、その辺りの説明を含めて説明していきます。

関数をうまく使いこなすとコードを書く量を減らせたり、同じコードを何度も書かずに済んだり、読みやすいコードにしたりと

元記事を表示

OTHERカテゴリの最新記事