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

Python3関連のことを調べてみた2021年03月19日
目次

pip install時にERROR: Could not install packages due to an OSError: [Errno 5] Input/output errorが出た

#はじめに
Python, pipでrequirements.txtを使ってパッケージ一括インストール
https://note.nkmk.me/python-pip-install-requirements/
を試みた際、表題のエラーでハマったので、備忘録として対処法を書き残しておきます。

#環境
Windows 10 Home
Docker 19.03
“`docker run -d -it –mount type=bind,source=”$(pwd)”,target=/app nginx:latest“`
にて作成したコンテナ内で行いました。

#コマンドとエラーメッセージ
“`
# pip3 install –user -r requirements.txt
Collecting tensorflow==2.4.0
Downloading tensorflow-2.4.0-cp37-cp37m-manylinux2010_x86_64.whl (394.7 MB)
|████████████████████████████████| 394.7

元記事を表示

【Python】IBM Watson Speech to Text API を使ってみた(初心者向け)

# はじめに
こんにちは、Maiです。
ボランティアで細々と米国本社のシニアマネジメントの翻訳をするという活動を行っています。
Blogは文字なので、翻訳するのは(時間をかければ)まあできるのですが、動画の翻訳となると、
①字幕を書き起こし(動画にはついてるものとそうでないものがある)、
②翻訳し、
③必要なら日本語の字幕をつける

という手順があって結構しんどいので、どうにか楽をしたいなと思うようになりました。
~~字幕がある動画はTranscriptionを作ってくれたらいいんだけど、そんなに親切じゃない。~~

そこで、弊社Watsonの「Speech to Text」という音声認識のAPIを使用して、文字起こしをしてみることにしました。

# 私のスペック、PCのスペック
Me: 開発経験が少ない悲しき自称エンジニア、pythonは勉強中。
MacOS: Catalina
Python: Python 3.8.0

# 前提
Pythonインストール済
IBM Cloudアカウント作成済

# まずはライブラリをインストールしましょ
“`
pip inst

元記事を表示

辞書の値を取得する方法、2通り思いつきますか (Python)?

この記事ではPython3.7を使用しています。またIDE(統合開発環境)はPyCharm2020.3です。

##1. はじめに
 **タイトル通り辞書の値を取得する取得方法、2通り思いつきますか?**
今回は

“`python:question.py
# 今回の記事で使用する辞書
d = {‘apple’: ‘リンゴ’, ‘orange’: ‘オレンジ’, ‘cantaloupe’: ‘メロン’}
“`

 まず1つも思いつかなかった方、大丈夫です。記事執筆5分前の自分もそうだったのでwww。この記事を読み終わる頃には脱初心者です!
 次に1つは思いついた方、素晴らしいです。そしてこの記事を読んで思いつかなかったもう1つの方法を学んで違いを理解しましょう!!
 その次に2つとも思いついた方、すごいです。違いがあやふやな人はこの記事を読んでしっかり理解しましょう!違いも分かる人は「mitsu4310」と検索して自分の他の記事を読んでください!!!
 最後に3つ以上方法が思いついた方、私のような初心者が出る幕はありません。そして別解をコメントで教えて下さい!!!!

##2. 方

元記事を表示

MacでDocker-Selenium(Python)を使って印刷プレビューを介してのPDF保存をやってみた

## 概要
会社で利用している監視サービスで一々Webブラウザを使って監視対象分のサーバーの監視レポートを毎月ダウンロードして顧客に提出ということをしてたので、今まで興味はあったけど手が出せてなかったPythonとSeleniumに入門してついでにこの課題を解決してみた。

## 画面遷移(手動の場合のフローでこれを今回自動化)
1. ログイン画面
– id, passを入力してログインする
2. ダッシュボード画面
– 監視対象のサーバーの一覧が表示されている
– サーバー名をクリックして詳細画面に遷移する
3. 詳細画面
– 月毎の監視レポートのリンクの一覧が降順表示されている
– 一覧上の最新の月のリンクをクリックして監視レポート画面に遷移する
4. 監視レポート画面
– 印刷ボタンがあるので、それをクリックして印刷プレビューを介してPDFを保存
5. 2〜4をサーバーの数だけ繰り返す

## ファイル構成

“`text:ディレクト構成
workspace
└─ dev
└─

元記事を表示

PythonでNamedTupleのようにDictを使えるようにする

# はじめに
pythonによる開発での問題点を3点あげる.
1. 似たような変数名の辞書が何度も利用されるがどのような変数を含んでいるかわからない
2. 何が格納されているかわかったとしても変数の定義がわからない
3. keyの打ち間違いが多発する

このような問題が発生するときにNamedTupleのような構造体を使いたいが,NamedTupleはImmutableな使い方をすべきであり,dictのような使い方をすべきではない.

したがって,今回はdictをNamedTupleのように使うためのコードを紹介する.(改善点はぜひコメントによろしくお願いいたします.)

# コード

“`python
class BaseDict(dict):
def __init__(self, **kwargs):
var_dict = {var_name: getattr(self, var_name)
if hasattr(self, var_name) else None
for va

元記事を表示

zipfileを使って複数のzipファイルをまとめて解凍し、それぞれのフォルダに保存するためのpythonコード

大量にダウンロードしたzipファイルを一気に解凍するという場面が時々あったので、メモとして保存します。

“`python3
import zipfile
import os

path = ‘zipファイルが格納されているフォルダのパス’
output = ‘解凍したデータ保存先のパス’

#ファイル名を取得
files = os.listdir(path)

#ひとつずつ解凍
for i in files:
#zipファイル名のフォルダがなければ新しく作る
if not os.path.isdir(output + i):
os.mkdir(output + i)
#解凍
zf = zipfile.ZipFile(path + i)
zf.extractall(output + i)
“`

これで保存先にそれぞれのファイル名のフォルダができ、解凍したデータが保存されました。

最初にやってしまったミスとして、zipファイルを格納しているディレクトリにファイルでないもの(保存先にしようとしていた空のフォルダ)を置いてしま

元記事を表示

実写版ウマ娘攻略(pythonで競馬予測モデルを作成してバックテストする方法~3章バックテスト編~)

前回作成した予測モデルを使ってバックテストをしていきます。
前回記事はこちらです。
https://qiita.com/umaining/items/769fea8d5fb414d249ab
#全体の流れ
今回の記事では「3.バックテスト」を説明します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1186688/da1cfa06-52dd-851b-aada-5dedf195ff68.png)

#バックテスト
予測モデルでは各馬ごとに1着になる確率を計算します。
バックテストでは、予測モデルの確立を元にして馬券を購入するかどうかを決めます。
下記のソースコードでは予測モデルの確率が30%以上(1位になる確率が30%)の時に馬券を購入するということをしています。
バックテストを実行するときは前回作成したモデルと同じディレクトリで実行してください。
(もし別ディレクトリで実行したい場合はfilenameの箇所を変更してください)

“`python:fit_ai_lgb.py
imp

元記事を表示

実写版ウマ娘攻略(pythonで競馬予測モデルを作成してバックテストする方法~2章予測モデル作成編~)

今回は前回取得した競馬データを使って予測モデルの作成を行います。

前回記事は下記です。
https://qiita.com/umaining/items/be323c1a5e42e0f48987
#全体の流れ
今回の記事では「2.予測モデル作成」を説明します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1186688/da1cfa06-52dd-851b-aada-5dedf195ff68.png)

#モデル作成のイメージ
競馬データを使ってモデル作成をします。
モデル作成する際は、「学習データ」と「予測対象データ」をそれぞれ用意します。
競馬の場合では、「学習データ」に前回人気や前回オッズなどのデータを使用します。
モデルの性能は学習データの質に掛かっているので、ここでどのようなデータを入れるかが一番の肝となります。
予測対象データは着順やタイムなどを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

実写版ウマ娘攻略(pythonで競馬予測モデルを作成してバックテストする方法~1章データ準備編~)

ウマ娘のブームにあやかって、競馬予測に興味を持ってくれる人がたくさん増えてくれると嬉しいです。
python3を使って競馬の予測を行い、予測結果に基づいて購入した結果(バックテスト)を処理するまで記載します。
今回は予測に使用するためのデータを準備するところまで説明します。
(正直、下準備するところまでが一番大変でした。本記事がご参考になれば嬉しいです)

#全体の流れ
今回の記事では「1.データ準備」を説明します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1186688/36aa44f6-9a69-6b9a-90e2-781bee28a137.png)

#競馬DBの準備
まず、競馬予測するためにはレース情報のデータが必要となります。
今回はJRAVANという有料の情報を使って予測していきます。
https://jra-van.jp/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0

元記事を表示

pythonでタプルを直接比較してみる

ふと気になったのでメモ。
環境は macOSX10.15.7 + pyenv + python3.8.3です。

解決方法としては以下の通りでしょうか。
まあロジック自体見直したほうがよいと思います。

– `set()`でうまいことやる
– ループでやる
– `__lt__` とか `__gt__`を再実装する

#### 双方のリストが同値のとき
“`
>>> a = (100, 200, 300)
>>> b = (100, 200, 300)
>>> a == b
True
“`
これはまあ当然。

#### リストの要素数が異なるとき
“`
>>> a = (100, 100, 100, 100)
>>> b = (100, 100, 100)
>>> a > b
True
“`
これも当然。

#### リストの値が異なるとき
“`
>>> a = (100, 100, 100, 100)
>>> b = (200, 100, 100, 100)
>>> a < b True >>> a = (100, 100, 100, 100)
>>> b

元記事を表示

気象庁10分データJSON取得

# 最新の10分値を取得したい

※間違っていても無保証
※利用方法は気象庁の規約に順ずる。

気象庁のホームページがリニューアルされて、jsonでデータを取得できることが話題になっています([例えば](https://qiita.com/e_toyoda/items/7a293313a725c4d306c0))。

例で紹介されている

“`bash:引用
https://www.jma.go.jp/bosai/amedas/data/map/{latest_time}.json
“`

のURIの場合、気圧が取得できないのが悩ましいところでした。

少し気象庁のページを見ていると、次のURIでは各アメダス観測点の3時間分の10分観測値が取得できるため、Pythonで取得してみました(追記3/17:よく読むと紹介記事の末尾に既出でした)。

“`bash:
https://www.jma.go.jp/bosai/amedas/data/point/{amedas_number}/{latest_date}_{divisionNumber}.json
“`
ここで、“`{am

元記事を表示

「Python3」LINEBOTで入力待機を実装する(PostgreSQL使用)

#はじめに
※はじめて記事を書いたので不足している情報があれば指摘してください。
また、プログラムの知識も多く無いのでまずい書き方してたら教えてください。

#おことわり
この記事に掲載しているプログラムソースはコメントなどで
この記事URLを記載すればどのような用途で使ってもらっても構いません。
ただしこのプログラムを使って発生した、いかなるトラブルも責任を負いません。
自由に使える反面それに伴う責任はすべてあなたが負うと考えてください

# 環境
M1 macOS Big Sur
DB PostgreSQL(gigalixir)
Python 3.9.2
psycopg2==2.8.6

#前置き

ユーザーから値を受け取ってDBへ保存したいが、
そもそも入力待機させる方法が分からないのでググると”line bot セッション”という
ワードが出てきました。これをググるとサンプルコードが2つ(java もしくはPytohn)
ヒットしましたが、

_人人人人人人人人人人人人人人_
> 書いてある内容分かんない <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

元記事を表示

Pytorchのtensorが占有しているGPUのメモリを開放する方法

# 結論
GPUに移した変数をdelした後、torch.cuda.empty_cache()を叩くと良い。

# 検証1:delの後torch.cuda.empty_cache()を叩きGPUのメモリを確認

“`
Python 3.7.8 | packaged by conda-forge | (default, Jul 31 2020, 02:25:08)
[GCC 7.5.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import torch
>>> torch.__version__
‘1.6.0’
>>> import GPUtil
>>> GPUtil.showUtilization()
| ID | GPU | MEM |
——————
| 0 | 0% | 7% |
>>> a = torch.rand(1, 1000, 1000, 1000).to(“cuda”)
>>> GPUtil.showUtiliz

元記事を表示

[Python] リスト内包表記

# 概要
1: リスト内包表記とは
2: リスト内包表記の使い方①(基本型)
3: リスト内包表記の使い方②(基本形+if文)

最近、リスト内包表記の使用頻度が増えてきて、なぜ使用した方が良いかを実感できたため、備忘録として記載。

# 検証環境
OS:18.04.5 LTS
Python:3.6.9

## 1: リスト内包表記とは
* for文などの反復処理を比較的シンプルに書くことのできる記法である。
* for文を使用してループ処理するよりも、実行速度が早い
* 関数型言語の記法
※ Python言語は、オブジェクト指向PGと関数型PGの両面の特徴を持つ

## 2: リスト内包表記の使い方①(基本型)
#### 基本の型

“`python
[ 式 for 繰り返し変数 in シーケンス ]
“`

#### 例1: 文字列(string型)で格納されているリストを数値(int型)に変換する

“`python

# データ
point_list = [ ’80’, ‘100’, ’20’, ’30’, ’40’ ]

# 実行
point_list = [int(

元記事を表示

二重和の交換が苦手なあなたへ

# はじめに
数学を学んでいると, 二重和の交換を行う場面がよくあります.
例えば次のようなものです.

“`math
\sum_{n = 0}^{T}\sum_{k = 0}^{n}a_{n, k} = \sum_{k = 0}^{T}\sum_{n = k}^{T}a_{n, k}
“`

慣れてしまえばどうってことのない等式変形なのですが, 初見ではなかなか理解することができないものです.

本記事では二重和の交換, 特に和のインデックスが独立していない場合について解説を行います.
また等号が正しいことを確認するために, Pythonを用いて簡単な検算を行います.

高校数学レベルで理解できるので, お気軽にご覧いただければと思います.

また, 大学で学ぶ線形代数では二重和の計算を行うシーンが多々あります.
この春から大学生になる方々は是非本記事で二重和の交換に対する苦手意識を無くしていただきたいです!

# 和のインデックスが独立しているケース
上記のような二重和を考える前に, まずはもっとシンプルな以下のケースを考えます.

“`math
\sum_{n = 0}^{

元記事を表示

DjangoでダミーAPI作成

#背景
Djangoでテスト用のAPIを作成しました。
特徴としてはRequestとResponseをコンソールログで確認できます。
使い方としては外部APIを呼び出しするときに現場ではなかなか外部APIを本物使うことが
できないのでそういったときに使います。
#仕様
テスト用のAPIである。
Requestをコンソールログで確認できる。
Responseをコンソールログで確認できる。
言語はPython3
フレームワークはDjango, Django REST
Post通信である。
#主要なソース
“`py
models
from django.db import models

# Create your models here.
from django.db import models
from pygments.lexers import get_all_lexers
from pygments.styles import get_all_styles

LEXERS = [item for item in get_all_lexers() if item[1]]
LANGU

元記事を表示

appleとAppleは辞書順ではどちらが先か?

 この記事ではpython3.7, ruby2.6.6を使用しています。実行環境はそれぞれPyCharm2020.3とAWSです。

(注 2021年3月15日追記)
文字コードはPythonの標準の文字コードであるUTF-8とします。
ちなみに自分はこの記事を執筆して始めて文字コードを意識しました。

##1. はじめに
 プログラミングでは半角と全角、大文字と小文字は別の文字として認識されますよね。そしてこのことは既に知っていると思います。では質問です。appleとAppleは辞書順ではどちらが先にくるでしょうか?

##2. 答え
 答えは**Apple**が先です。Pythonを使って確かめてみましょう。

“`python:practice1.py
s1 = ‘apple’
s2 = ‘Apple’
if s1 > s2:
print(f'{s1}は{s2}より前’)

# -> appleはAppleより前
“`

##3. apple, Apple, APPLEではどうなるか?
 appleとAppleは辞書順ではどちらが先にくるかという疑問が解消したところ

元記事を表示

Pythonプラクティス: シーザー暗号

#背景
Pythonで練習して見る。FizzBuzzやれればいいという人もいるが何かないかと思って
提案します。
#仕様
##前提知識
シーザー暗号を使う。以下Wikipediaによる説明
シーザー暗号は単一換字式暗号の一種であり、平文の各文字を辞書順で3文字分シフトして(ずらして)暗号文とする暗号である。古代ローマの軍事的指導者ガイウス・ユリウス・カエサル(英語読みでシーザー)が使用したことから、この名称がついた。
##内容
・ファイルから単語を取得してKeyに辞書型として設定する。Valueは一律 “None”
・辞書内の単語とシーザー暗号のペアがあるものを見つける。見つけた場合は書き出す。
アウトプットイメージ:IBM 1 HAL
##実装準備
実装する前に下記のコードは大いに流用して良いとする。

“`py

from __future__ import print_function, division

def rotate_letter(letter, n):
“””Rotates a letter by n places. Does not change o

元記事を表示

問題解決力を鍛える!アルゴリズムとデータ構造の第 4 章「設計技法(2) : 再帰と分割統治法」を Python で解いてみた

Python の勉強のため、[問題解決力を鍛える!アルゴリズムとデータ構造](https://www.amazon.co.jp/%E5%95%8F%E9%A1%8C%E8%A7%A3%E6%B1%BA%E5%8A%9B%E3%82%92%E9%8D%9B%E3%81%88%E3%82%8B-%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0-KS%E6%83%85%E5%A0%B1%E7%A7%91%E5%AD%A6%E5%B0%82%E9%96%80%E6%9B%B8-%E5%A4%A7%E6%A7%BB-%E5%85%BC%E8%B3%87/dp/4065128447/ref=pd_lpo_14_img_0/355-1660948-1917632?_encoding=UTF8&pd_rd_i=4065128447&pd_rd_r=85fc5fc0-6650-41b2-beaa-2a75e0e94bf5&pd_rd_w=

元記事を表示

A Simple Explanation to Covariance and Correlation

One of the most common questions that arise while working with data is how the variables are dependent, varying with each other and how they are linked.

#### Definitions
1.) “Covariance is a measure of how much two random variables vary together. ”
2.) “Correlation is a statistic that measures the degree to which two variables move in relation to each other.”

Both covariance and correlations are about how the variable is relevant to each other. Covariance can have a range of minus infinity to

元記事を表示

OTHERカテゴリの最新記事