Python3関連のことを調べてみた2021年05月17日

Python3関連のことを調べてみた2021年05月17日

matplotlibのpipインストール時にでたft2build.hエラー

# matplotlibインストール時のエラー
matplotlibをpip installする際に下記のエラーがでた。

“`:error文
Building wheels for collected packages: matplotlib
Building wheel for matplotlib (setup.py) … error
ERROR: Command errored out with exit status 1:
command: /espnet/tools/venv/bin/python3 -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-x2iu72i2/matplotlib_44f82a421fe24ccca1bbcbe93d19b150/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-x2iu72i2/matplotlib_44f82a421fe24ccca1bbcbe93d19b150/se

元記事を表示

GetElement example with findall and search in python3

## source

“`python
import re

def getElement(src, name, attribute=””):
e = “”
print(“==findall==”)
ret = re.findall(‘<'+name+"(>| [^>]+>)([^<]+)<", src, re.S) print(ret) if ret[0:1]: ret = ret[0:1] print(ret) for i in range(len(ret)): print(ret[i]) print(ret[i][1]) print("==search==") ret = re.search('<'+name+"(>| [^>]+>)([^<]+)<", src, re.S) if ret: print(ret.group(2)) else: print("could not se

元記事を表示

google colaboratoryでmecabを使うまで

メモメモ

#1.ローカルでの準備
ローカルで色々と準備しないと動かなかった

“`bash:mac
$ brew install mecab
$ brew install mecab-ipadic
#or
$ brew install mecab mecab-ipadic git curl xz
“`

#2.colaboratory側で
“`python:colab
!apt install aptitude
!aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y
!pip install mecab-python3
“`

“`python:colab
!git clone –depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
!echo yes | mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n

!ln -s /etc

元記事を表示

ラズパイカメラによる眠気検知とWebストリーミング

# はじめに
ラズパイに接続されたカメラ映像のWebストリーミングアプリケーションを作成しました。
また、取得した画像フレームから眠気検知を同時に行っています。

本記事のソースコードは以下に置いています。
[https://github.com/AkitoArai709/RaspiSmartCamera-WebStreaming](https://github.com/AkitoArai709/RaspiSmartCamera-WebStreaming)

# 環境
* Raspberry Pi 4 Model B
* Camera Module V2 For raspberry pi
* Python : 3.7.3
* flask : 1.0.2
* opencv : 4.5.1.48
* dlib : 19.22.0
* imutils : 0.5.4
* scipy : 1.6.2
* greenlet : 1.0.0

# システム構成
 ラズパイに接続されたカメラ映像から画像フレームを取得して、OpenCVとDlibを使用して顔検出と眠気検知を行い、眠気検知の結果を描画し

元記事を表示

例題演習matplotlib(5):対数グラフ

# 例題5.:対数グラフ
対数グラフの設定方法を学ぶ.

**例題演習matplotlibのまとめ**
https://qiita.com/s4s/items/026aa83b881b640b8b23

## 例(1):サンプルコード
Y軸が対数となる,片対数グラフを例としたサンプルコードを示す.

“`python:plot05_example1.py
import numpy as np # numpy
import matplotlib.pyplot as plt # matplotlib plt
import matplotlib.ticker as ticker # matplotlib ticker

def main():
”’main program”’

# setting
f_out = ‘graph05_example1.png’ # output file (figure)

# data
x = np.arange(0, 10.1, 0.1)
y1 = np

元記事を表示

自己分析 #2。【ABC201を振り返る】

こんにちは、こんばんは。現役茶色コーダーのRuteです。
今回は自己分析2回目ということで、ABC201を振り返りたいと思います。
#1.結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530417/6390da09-0757-5cc2-24f8-7422ef8b0062.png)

レーティングは-10という結果に。2完早解きで、Cの解答者数がそこまで多くなかったことから、マイナスの幅を抑えることが出来ました。

#2 各問題考察
## 2.1 A問題「Tiny Arithmetic Sequence」
Difficulty: 12

ソートしてA[2] – A[1] = A[1] – A[0]を検証すれば良いです。

Python3での解答例

元記事を表示

(備忘録)Pythonで入試問題の答えを出してみた(初心者向け)

# はじめに

Pythonには様々なライブラリがあり、標準・外部ともに便利なものがたくさんあります。

その中で、今回は外部ライブラリであるsympyを用いて、数学の入試問題の答えを出してみようと思います。

  ・プログラミングを通して、数学を勉強してみたいと思ってる人
  ・数学に対して苦手意識を持ってる人
  ・何か作りたいものはないけど、プログラミングを始めてみたい人

Pythonを通して、数学と戯れましょう!!
解いた問題は、qiitaに備忘録として投稿し、他の人にも共有してみましょう!!

! まずは、方程式の解、三角関数、微分、積分から手を出してみるのはどうでしょうか。
! 外部ライブラリは、ただPythonをインストールした段階では使えません。インストール方法は難しくないので各自で調べてみてください。

# 目次

1. [積分](#Chapter1)
1. [三角関数](#Chapter2)
1. [実数解と虚数解をもつn次方程式](#Chapter3)
1. [参考文献](#refer

元記事を表示

【Python×Tkinter】パス指定ではなくGUIでファイルを選択する方法

#はじめに
普段Pythonで何かファイルを操作するとき、ディレクトリを移動したりパスを指定してファイルを読み込むことが多いと思います。しかし自分が作ったプログラムを他人(非プログラマー)が使うとなったら、人によっては自分でコードを書き換えてパスを変えるとか難しいですよね。また自分で使うにしても、読み込むファイルが毎日変わるものであればいちいちコードを書き換えるのは面倒ですよね。

そんな方のために今回はGUIからファイルを選択できるようにする方法を解説します。

#準備
“`python
import tkinter
import tkinter.filedialog
import tkinter.messagebox
import os
“`
Tkinterというライブラリを使っていきます。読み方は「ティーキンター」です。
PythonのGUI系ライブラリの中ではかなり有名で、よく使われているものだと思います。
ちなみにTkinterだけインポートしてもファイルダイアログとメッセージボックスは使えないので、この2つもtkinter単体とは別にインポートします。あとエクスプロー

元記事を表示

Pythonでヌメロンを作ってみた

## はじめに

前回、じゃんけんプログラムを作成しました。
その記事を書きながらヌメロンを作っていました。
じゃんけんと同じく、解説しながら残しておきたいと思います。

そういえば前回のじゃんけんプログラム、pythonの有識者の方から、より洗礼されたコードによってめちゃくちゃ短くなりました。
こんな短くなるとは。
感動です。

さて、最初の語りはこれぐらいにして、早速本題です。

## ヌメロンとは

ヌメロンとは、数当てゲームです。
相手が選んだ3桁の重複していない数字と、その数字の場所(桁)まで当てるのが勝利条件です。

ですが、ただ当てずっぽうに数字を選ぶだけでは運ゲーになってしまいます。
そこで、EATとBITEという数を分析しながら、相手が選んだ数字を当てていきます。

EATとは、選択した数字と桁の位置まで同じときに1カウント
BITEとは、選択した数字が同じで、桁の位置が違うときに1カウント
となります。

例えば、相手が「123」と数字を選んだ場合、以下のようになります。

“`
相手:「123」
「452」:0eat/1bite
「167」:1eat/0bite

元記事を表示

例題演習matplotlibのまとめ

Pythonのmatplotlibライブラリで,グラフ作成を学ぶ.
サンプルコードは細部までグラフの設定ができるものを用意した.
そのサンプルコードをもとに,例題と演習でmatplotlibの使い方を習得する.

## 例題演習matplotlib(1) 最初の一歩
https://qiita.com/s4s/items/33323d95b93c8ceec52d

## 例題演習matplotlib(2):単純な折れ線グラフ
https://qiita.com/s4s/items/11db1cdb4c604e1dd42a

## 例題演習matplotlib(3):Axes(軸)の設定
https://qiita.com/s4s/items/99c8c6aad1339dfbc544

## 例題演習matplotlib(4):Legend(凡例)の設定
https://qiita.com/s4s/items/2b5ef8a1dc96db790070

## 例題演習matplotlib(5):対数グラフ
https://qiita.com/s4s/items/8c5cb68cb0f03

元記事を表示

例題演習matplotlib(4):Legend(凡例)の設定

# 例題(4):凡例の設定
凡例(Legend)関連の設定について学ぶ.

## 例(1):サンプルコード
基準となるサンプルコードを以下に示す.

“`python:plot04_example1.py
import numpy as np # numpy
import matplotlib.pyplot as plt # matplotlib plt
import matplotlib.ticker as ticker # matplotlib ticker

def main():
”’main program”’

# setting
f_out = ‘graph04_example1.png’ # output file (figure)

# data
x = np.arange(0, 10.1, 0.1)
y1 = -np.sin(x)
y2 = np.sin(x)
y3 = np.cos(x)
data = {‘p1′: [x, y1, r’

元記事を表示

【自然言語処理】1-gram言語モデル

# ■ やること
NAISTの授業資料を自分なりに勉強してみる。
http://www.phontron.com/teaching.php

今回の内容は [チュートリアル1: 1-gram言語モデル](http://www.phontron.com/slides/nlp-programming-ja-01-unigramlm.pdf)

# ■ 言語モデルとは
いくつかの候補から「もっともらしい」文を選んでくれるもの。
言語モデル(**確率的言語モデル** )は候補の各文に確率をあたえ、どの候補が確からしいのか判断できるようにしてくれる。

# ■ 文の確率計算
例えば `W = speech recognition system` の確率は以下の式で表せる。

“`
# 単語数が3, 1単語目がspeech, 2単語目がrecognition, 3単語目がsystem の同時確率 という意味
P(|W| = 3, w_1=”speech”, w_2=”recognition”, w_3=”system”)
“`

ただし、この同時確率はそのまま計算できないので、条件付き確率の

元記事を表示

新しいmacを買ってから、AWS CLIにprofileを設定するまで

# はじめに

新しいmacで何もしていない状態なので、Homebrewのインストールなど、すでに済んでいる場合は飛ばして進めてください!

1. [Python3のセッティング](#1-python3のセッティング)
1. [Homebrewをインストール](#homebrewをインストール)
1. [pyenvをインストール](#pyenvをインストール)
1. [PATHを通す](#pathを通す)
1. [pyenvでPythonをインストール](#pyenvでpythonをインストール)
1. [Pythonのバージョンを変更](#pythonのバージョンを変更)
1. [Pythonのバージョンを確認](#pythonのバージョンを確認)
1. [AWS CLIのインストール](#2-aws-cliのインストール)
1. [インストーラをダウンロード](#インストーラをダウンロード)
1. [インストールプログラムを実行](#インストールプログラムを実行)
1. [AWS CLIのバージョンを確認](#

元記事を表示

一定期間が過ぎたら使用できなくするコードの作成

#背景
pyinstallerとかでexe化してお試し版を配布する際に、使用期限を付けたいときのコードです。自分で作ったexeが勝手に独り歩きしてあちこちで配布されないために…。

#コード説明
1:今日の日付を入手
2:使用制限”limitdate”を記載して、日付方式に変更。
3:日付を比較して、使用期限を過ぎていないようであれば、何か他の操作に移る。
 (ここではOKがプリントされます)

“`python:limit.py
from datetime import datetime

today = datetime.now()

def LIMIT():
limitdate= str(“2021/05/19″)
limitdate = datetime.strptime(limitdate,”%Y/%m/%d”)
if limitdate >= today:
print(“OK”)
else:
sys.exit()

LIMIT()

元記事を表示

pythonで作成されたファイルの上書き保存を回避するために

#背景
アウトプットとしてExcel等のファイルを書き出す場合、保存先のフォルダに同一名の大切なファイルがあったのに上書きされちゃって、後々にしまった!と思ったことがあるので、備忘録もかねて同じファイルが存在したら(1)、(2)、(3)…とナンバリングされるようなコードを書きました。
(環境はwindows10のpython3.7.1です。)

#コード説明
###while文の前の準備
1:ファイル名を記載。(ここでは”テスト.xlsx”)
2:ディレクトリからファイル名のリスト(files)を取得。
###while文1周目
1:while文でもし、同じ名前のファイル(”テスト.xlsx”)がファイル名のリスト”files”中にあったら”(1)”をつける。
 (”テスト.xlsx”から”.xlsx”を一度消去して、”(1).xlsx”を付けています。)
2:number という変数で”(num-1)”つまり(0)がファイル名にあれば消えるようにする。
 (1周目のwhile文ではこの操作は関係ないです) 
3:num =2になる。
###while文2周目
1:もし”テスト(1)

元記事を表示

【AtCoder】ABC200をPython3で解説

ABC200の解説。

https://atcoder.jp/contests/abc200

## A – Century
### 解説
年→世紀を求めるには、年から1を引いて、100で割って、1を足す。

### コード
“`python
N = int(input())
print((N-1)//100+1)
“`

## B – 200th ABC-200
### コード1(“`int“`のまま)
“`python
N, K = map(int, input().split())

for _ in range(K):
if N % 200 == 0:
N //= 200
else:
N = N * 1000 + 200

print(N)
“`
※“`int“`のまま計算する方法。
 “`N“`を1000倍して、“`200“`を足すことで実装。
### コード2(“`str“`に置き換える)
“`python
N, K = map(int, input().split())

for _ in ra

元記事を表示

AtCoder Problems Hard No.91~100解説

#Hard No.91 : D – Coloring Edges on Tree
[D – Coloring Edges on Tree](https://atcoder.jp/contests/abc146/tasks/abc146_d)
##発想
使用する色の数$K$はグラフの中で1つの頂点を端点とする辺の数の最大値になります。1つの頂点に接続している辺を順番に1,2,3…と色分けしていけば良いです。

##実装
幅優先探索をしていきます。

“`python
from collections import deque

N = int(input())
G = []
for _ in range(N):
G.append([])
for i in range(N-1):
a, b = map(int, input().split())
a -= 1
b -= 1
G[a].append((b, i))
G[b].append((a, i))

k = 0
for i in range(len(G)):
k = max(

元記事を表示

Djangoのmiddleware_chain

## 今回やる事

Djangoのmiddleware_chainの挙動に興奮したので、簡単なコードに書き換えて挙動を分かりやすく整理してみた。

## どこの部分の話か

Djangoで立てたサーバーに、リクエストが来た時にミドルウェアを通して動くように実装されている部分。

## middleware_chainとは

おおまかにまとめると、settings.pyで指定したミドルウェアリストの上から順にリクエストを渡し、一連のミドルウェアの処理が終わったら最終的にレスポンスが返されるやつ。

デコレータの仕組みにより、ミドルウェアリストを逆順でループさせて、後続のミドルウェアを自身のメソッドとして登録していく事で、この一連の流れを作っている。

まさにその名の通りの動きをする。

## 簡単に実装してみた

※色々省きます。

まずはミドルウェア関連

インスタンス化されると、引数で渡されたget_responseを自身のインスタンスにセットする。

##### コールで呼ばれたら
1. process_requestが実装されていたら実行する。
2. self.g

元記事を表示

Pythonを使ってElasticsearchへ文字列の配列を登録する方法

Pythonを使用してElasticsearchへ
文字列の配列を登録する

Elasticsearchのマッピングは特殊なことはなく,
typeをキーワードに指定すれば良い

“`mapping.py
#!/usr/bin/python3
# -*- coding:utf-8 -*-

from elasticsearch import Elasticsearch

es = Elasticsearch(‘http://localhost:9200’)
mapping = {
“mappings”: {
“properties”: {
“category” : {“type” : “keyword”}
}
}
}

es.indices.create(index=”test”, body=mapping)
es.close()
“`

“`
$ ./mapping.py
“`

にて,マッピング

“`regist.py
#!/usr/bin/python3
# -*- coding:utf-8 -*

元記事を表示

【Python】再帰なしでワンライナーフィボナッチ数列【ネタ】

ちょっとやってみたくなっただけです。

“`python
print([(j:=i+(i:=j)) for _ in range(100)] if (i:=1)|(j:=0) else 0)
“`

元記事を表示

OTHERカテゴリの最新記事