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

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

CentOS6.xでLet’sEncrypt運用してたら、自動更新できなくなっていた件について、

##状況
Let’sEncryptで運用していても、エラーメッセージが表示されて、自動更新できない。

“`
WARNING: couldn’t find Python 3.5+ to check for updates.
Traceback (most recent call last):
File ““, line 16, in
File “/usr/lib64/python3.4/distutils/version.py”, line 58, in __lt__
c = self._cmp(other)
File “/usr/lib64/python3.4/distutils/version.py”, line 176, in _cmp
if self.version != other.version:
AttributeError: ‘StrictVersion’ object has no attribute ‘version’
“`

## 参考情報

[CentOS6系にPython3を入れる方法](htt

元記事を表示

Mac,Windows に Python3 をインストールし環境構築する方法

## for Mac[1]
Mac にはデフォルトで Python2系 がインストールされていますが、ここではbrewによる3系のインストール方法.
まずpython3系が入っていないかを確認.

“`
$python3 -V
“`
何も出力がなければ,以下に従ってインストール.

### Python3 の導入手順

Python3 を homebrew でインストールします。

1.homebrew のインストール

“`
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
“`
2.Python3 のインストール

“`
brew install python3
“`
3.Python3 の確認

“`
python3 -V
“`
を実行してPython 3.7.3等が表示されればインストールの完了です。

——————
## for Windows[2]

[ここ](https://www.p

元記事を表示

[Python3 入門 22日目]11章 並行処理とネットワーク(11.1〜11.3)

#11.1 並行処理

コンピュータで何かを待っているときは、以下の二つの理由である。

– I/Oバウンド:I/O処理待ち
– CPUバウンド:CPU待ち

並行処理に関する用語。

– 同期的:葬式の行列のように順番に処理すること。
– 非動的:タスクが独立して処理されること。

##11.1.1 キュー

– キューの要素は片方の端に追加され、反対側の端から取り出される。

##11.1.2 プロセス

“`py:dishes.py

import multiprocessing as mp

def washer(dishes, output):
for dish in dishes:
print(“Washing”,dish, “dish”)
output.put(dish)

#get()はキューからアイテムを取り除きそれを返す。
#task_doneはget()の後に呼び出されると処理が完了した事をキューに伝える。
#join()はキューにある全てのアイテムが取り出されるまでブロックする。
def dryer(input):

元記事を表示

【Django】.filter()でSlugFieldを指定した場合のエラー

# エラー Related Field got invalid lookup: が出た

## 原因
複数のオブジェクトを取ってくることを想定している為、pkやslugは入らないらしい。

# 発生状況
## テーブル
Authors:著者 複数のbooksを持つ。
Books:本 一つの著者を持つ。

## models.py
“`Python:
class Authors(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField(unique=True, max_length=255)

class Books(models.Model):
title = models.CharField(max_length=255)
author = models.ForeignKey(Authors, on_delete=models.PROTECT)
“`

## views.py
“`Python:
slug = ‘dazai’
books = Boo

元記事を表示

「誕生日のパラドックス」をPythonでシミュレーションしてみた

「**何人集まれば、その中に誕生日が同一の2人(以上)がいる確率が、50%を超えるか?**」
というアレ。

– 集団の中に同じ誕生日の組み合わせの人がいる確率が**50%**を超えるのは**23人**から。
– 70人集まると**99.9%**を超える

[誕生日のパラドックス – Wikipedia](https://ja.wikipedia.org/wiki/%E8%AA%95%E7%94%9F%E6%97%A5%E3%81%AE%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9)

> 70人しか集まらなくても確率は99.9%を超え、50%を超えるのに必要なのはわずか23人である。

“`python:birthday_paradox.py
import math
from random import random

n_trials = 50000 # 1回あたりの試行回数
max_people = 100 # 検証する最大人数

print(‘人数,同一誕生日の組があった回数,試行回数,確率’)
for

元記事を表示

高次元乱数ベクトル生成〜Latin Hypercube Sampling・ラテン超方格サンプリング〜

# はじめに

高次元空間の問題の一つとして,球面集中現象が存在します.球面集中現象とは高次元空間では点の密度が $n$ 次元超立方体の表面において大きくなる現象を指します.この現象によって,高次元空間での探索やモンテカルロ法利用時に中心付近でのサンプル数が少なくなってしまうという問題が発生します.今回の記事ではこの問題を解決するためのサンプル方法の一つであるLatin Hypercube Samplingについて紹介したいと思います.その他にもSobol列を用いた有名なサンプル方法も存在します.

# Latin Hypercube Samplingのアルゴリズム

$n$ 次元空間において,$M$ 点をサンプルする場合,Latin Hypercube Samplingではまず各軸を $M$ 個の格子に区切ります.下の図では,$n=2$,$M=5$の場合の例を上げました.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355593/97ed8f69-5c77-7749-74d0-07

元記事を表示

アクセス制限 と クラスを構造体として扱う事

“`py:1
class T(object):
pass

t1 = T()
t1.name = ‘Mike’
t1.age = 20

print(t1.name, t1.age)
“`

“`:1の実行結果
Mike 20
“`
この様に、
クラスをデータ構造体として扱う事は可能である。

しかし、
以下の様な場合は、注意が必要だ。

“`py:2
class Player:
def __init__(self, job, weapon):
self.job = job
self.__weapon = weapon

def walk(self):
print(self.job + “は荒野を歩いていた”)
self.__attack(“スライム”)

def __attack(self, enemy):
print(self.__weapon + “で” + enemy + “を攻撃”)

player1 = Player(“戦士”, “剣”)
player

元記事を表示

[Python 入門] pandasを使ってみよう

#[Python 入門] pandasを使ってみよう

今回はpandasを使ってみます。
まず準備としてcsvデータを準備しておきます。
今回は日経平均を例にします。

“`
#csvデータの例(一部)
データ日付,終値,始値,高値,安値
2017/01/04,19594.16,19298.68,19594.16,19277.93
2017/01/05,19520.69,19602.10,19615.40,19473.28
2017/01/06,19454.33,19393.55,19472.37,19354.44
“`

ではPythonで実行していきましょう。
最初に次のコードを実行します。

“`
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasets

plt.style.use(‘ggplot’) #きれいに図を表示するためのおまじまい
font = {‘family’ : ‘mei

元記事を表示

プロパティー・アクセス制限

“`py:
class Car(object):
def __init__(self, model=None):
self.model = model

def run(self):
print(‘run’)

class TeslaCar(Car):
def __init__(self, model=’Model A’,
enable_auto_run=False,
password=’123′):
super().__init__(model)
self._enable_auto_run = enable_auto_run
self.password = password

@property
def enable_auto_run(self):
return self._enable_auto_run

@enable_auto_run.sett

元記事を表示

tkinterを用いた時の定期実行処理【Python3】

# 概要

tkinterでの定期実行処理方法について、以下の2つを示します。

– threadingモジュールを使用した場合
– scheduleモジュールを使用した場合

簡単な処理であれば、threadingモジュールやscheduleモジュールを使わなくても良いですが、重たい処理になるとtk自体の動作(ボタンを押す/画面を移動させるなど)が重くなります。そのため、面倒でも以上のような方法で実装すると良いかもしれません。

# threadingモジュールを使用した場合

以下はサンプルコードです。「self.label」の値を1ずつ増やすプログラムです。やろうと思えばミリ秒単位の定期実行が可能です。pythonなので、時間精度はそこまで良くありませんが、そこまで時間精度を気にする必要がなければこれで十分です。

“`python
import tkinter as tk
import threading

class GUI(tk.Frame):
def __init__(self,master = None):
super().__init__(m

元記事を表示

Windows上でのWebスクレピング環境構築(Selenium)

#1. 本文の目的

Webスクレイピングの技術を勉強して、各種タスクを自動化してみたい。
Windows上でSeleniumを使用したWebスクレイピングの環境構築方法を記載する。

#2. 方法

##2-1 環境

OS : Windows10

##2-2 Jupyter環境の準備

Jyupterをインストールします。インストール手順は[こちら](https://qiita.com/STInverSpinel/items/9801f30c2fd1a378518d)

インストール完了後、適当な場所にworkディレクトリ(例:C:/Users/xxxx/Desktop/work/)を作成する。Jupyterを起動し空のシートをworkingディレクトリに作成する。

##2-3 geckodriverドライバーインストール

geckodriverの取得が必要です。[こちら](https://github.com/mozilla/geckodriver/releases/tag/v0.19.0)からwindows版をダウンロードします。
![17.JPG](https:/

元記事を表示

Pythonで「ケツマイモ」と標準出力する方法

* Python3系

“`{python3}
print(‘ケツマイモ’)
“`

Python3ではデフォルトでUTF-8をサポートしているのでそのまま「ケツマイモ」を出力します。

* Python2系

“`{python}
print u’ケツマイモ’
“`

“`{python}
print ‘ケツマイモ’.encode(‘utf-8’)
“`

“`{python}
# -*- coding: utf-8 -*-
print ‘ケツマイモ’
“`

Python2系では文字列にバイト文字列とユニコード文字列の二種類があり、デフォルトでASCIIをサポートするため、バイト文字列が出力されてしまいます。
「ケツマイモ」のようなマルチバイトなユニコード文字列を表示するためには、バイト文字列をユニコード文字列に変換する必要があります。

元記事を表示

どこかで見たことのあるpython3の内包表記(List、辞書)

# はじめに

pythonのお勉強がてらの自分メモです
サンプルソースの動作確認は「Google Colaboratory」でやってます。

## Listの内包表記
### for文でリスト作成

“`python3:test.py
list = []

for i in range(5):
list.append(x)
print(list)

# => [0, 1, 2, 3, 4]
“`

### 内包表記でリスト作成

“`python3:test.py
list = [i for i in range(5)]
print(list)

# => [0, 1, 2, 3, 4]
“`

### なんとif文も使える

“`python3:test.py
# 【for文】偶数だけListに入れる
list = []
for i in range(10):
if i % 2 == 0:
list.append(i)
print(list)
# => [0, 2, 4, 6, 8]

# 【内包表記】偶数だけListに入れる
li

元記事を表示

【Python】マルチプロセス(multiprocessing)時の値の受け渡し

Pythonマルチプロセス間で変数を受け渡しするときに値が渡せなかったのでメモを残す

# 実装
4つの関数(f1,f2,f3,f4)を定義し、各関数を別プロセスで実行する。各関数では値の追加(append)を行い、最後メインプロセスから追加された値を確認する。

### NG

変数を格納するために定義したtestlistは、メインプロセスにのみ存在するメモリ空間のため, 別プロセスからは参照更新が不可能な様子

– プログラム

“`Python
from multiprocessing import Process
from multiprocessing import Manager

testlist=[]
def f1():
#print(“function f1”)
testlist.append(“f1”)

def f2():
#print(“function f2”)
testlist.append(“f2”)

def f3():
#print(“function f3”)
testlist.append

元記事を表示

yukicoder No.977 アリス仕掛けの摩天楼

# yukicoder No.977 アリス仕掛けの摩天楼

まず、Alice 攻撃前の時点ですべての島が繋がっていたら Bob の勝ちです. Alice が爆破した橋を作り直せばいいのですから. 逆に島が3グループ以上になっていたら、Alice の勝ちです. Alice が何もしなくても、橋を1つ掛けるだけでは連結状態になりません. 勝負が分かれるのが、島が2グループに分かれていた場合で、Alice の爆破で3グループに変化すれば Alice の勝ちです. 橋が一本でしか繋がっていない島はその橋を爆破されると別グループになってしまうので、そういう島があるかをチェックすれば解答できます.

島が何グループかは Union Find で簡単にわかります. 島に何本橋がかかっているかは素直に集計すればよいです.

“`python
from sys import setrecursionlimit

def find(parent, i):
t = parent[i]
if t < 0: return i t = find(parent, t)

元記事を表示

【機械学習】自作データセットで転移学習を行い機械学習モデルを作る

##1.はじめに
これまでの記事(スクレイピング編,OpenCVでの画像処理編)で自作データセットの作成方法を紹介しました。
本記事では、作成したデータセットを用いて、転移学習を行い日本人と外国人を判断する機械学習モデルの作成方法を紹介したいと思います。

##2.今回やりたいこと
機械学習モデルの作成に必要なデータセットを用意する ←前回までの内容

———-ここから本記事でやること———-

転移学習を利用して、機械学習モデルを作る。

機械学習モデルを使って、日本人と外国人の写真を判断する。

##3.転移学習とは
転移学習とは一言で表すと、短時間で機械学習モデルの性能を上げるために用いられるモデルの学習方法のことです。
機械学習モデルの性能(精度)は一般

元記事を表示

[Python3 入門 21日目]10章 システム(10.1〜10.5)

#10.1 ファイル
##10.1.1 open()による作成

– open()関数はファイルを開くだけでなく、存在しないファイルを要求したときは新しいファイルが作られる。

“`py

>>> fout=open(“oops.txt”,”wt”)
>>> print(“Oops,I created a file.”,file=fout)
>>> fout.close()

“`

##10.1.2 exists()によるファイルが存在することのチェック

“`py

>>> import os
>>> os.path.exists(“oops.txt”)
True
>>> os.path.exists(“./oops.txt”)
True
>>> os.path.exists(“aaa.txt”)
False
>>> os.path.exists(“.”)
True
>>> os.path.exists(“..”)
True

“`

##10.1.3 isfile()によるファイルタイプのチェック

“`py

>>> name=”oops.txt”
>>> os.pa

元記事を表示

Re:ゼロから始める競技プログラミング生活 第1章3『されど茶』

##学習報告
ABC154参加する気満々だったのに今週なかったorz
なので今回も過去問解いていきます!!

前回はB問題を解いて、次はいよいよC問題だったのですが思いの外難しく、ここ5日間ほどは数をこなそうとA-Cまでの問題をひたすら解いていました。

その途中で問題の難易度によって色が付いていることに気がつきました(遅い)。
ACもらえて喜んでいた問題も色を見れば灰()

つまり、今の自分の実力は灰色…

なら解いてやろう、茶の問題を!!!!

##茶に挑戦
というわけで、今回解いていく問題がこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570839/e21666ea-afc6-39fd-1d90-4111f570c288.png)

これが茶…指が動かない。
とりあえず出力例を見てみよう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570839/c2bdac47-

元記事を表示

no lapack/blas resources found @ raspberry pi model b+

## 環境
Raspberry Pi model b+
Raspbian
Python 3.6

## 起こったこと
scipy を pip でインストールしようとしていたら、
`no lapack/blas resources found`
というエラーが出てきた。
これは、
`sudo apt install liblapack-dev`
を実行すれば問題ない

元記事を表示

TensorflowのモデルをLiteへ変換する方法

#TensorflowLiteについて
スマートフォンや、埋め込みデバイス用の機械学習ツールセットです!
Tensorflowよりも軽量です。

#変換方法について
PCに、PythonとTensorflow(pip)がインストールされていることを前提とします。
まず、変換するモデルを用意します。

##python上で変換
####サンプル

“`python
import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(“test_model.pb”)
tflite_model = converter.convert()
open(“test_model.tflite”, “wb”).write(tflite_model)
“`

####使い方

“`python
import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(“モデルへの相対パス”)
tflite_model = conv

元記事を表示

OTHERカテゴリの最新記事