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

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

djangoを用いたアプリでHTML上に割り算結果(%)を表示したかった話【初学者が参考書片手にpython学習】

## はじめに
[大高隆・著「動かして学ぶ!Python Django開発入門」](https://www.amazon.co.jp/dp/B07YY5RDPC/ref=cm_sw_r_tw_dp_U_x_TCsYEbRH6SF0V)を使用して
python・Djangoの学習を始めた初学者です。

ruby・railsを使用して4ヶ月ほどプログラミングの勉強をしていましたが、
エンジニア転職にあたり、pythonを使用することになったのでこの本を片手に勉強を始めました。

ド級の素人なので、補足・ご指摘等コメントいただけると大変助かります。

## 概要
djangoで作成したアプリのHTML上に割り算の結果(百分率)を表示したい。
ついでに四捨五入もして欲しい。

## 試したこと
自作のフィルタを作ってあげることにしました。
下記、__旧__ver.のドキュメンテーションの引用です。
https://djangoproject.jp/doc/ja/1.0/howto/custom-template-tags.html
>Django テンプレートシステムには、広範な 組み込みタグ

元記事を表示

Pythonでgoogle翻訳を用いた再翻訳によるテキストデータの水増し

# 始めに
精神的に疲れていて、手軽に承認欲求を得たかったので、ここ最近参加していたNLPコンペの[SIGNATE Student Cup 2020](https://signate.jp/competitions/281)で使った、google翻訳を使ったPythonでのテキストデータ水増しスクリプトをお手軽に紹介する。
なお、既に似たような記事はたくさんあるので、全く新しさはない。

# 使用データセット
手軽なのがなかなか見つからなかったが、kaggleのデータセットのこれを使うことにした。[Wikipedia Movie Plots](https://www.kaggle.com/jrobischon/wikipedia-movie-plots?select=wiki_movie_plots_deduped.csv)

# スクリプト
とりあえず英語の文を日本語に翻訳して、また英語に翻訳するスクリプトの紹介を行う。

“`Python
from googletrans import Translator

def retranslator(text, lang):

元記事を表示

CeontOS/RHEL 7 で certbot を実行しようとした際、pyOpenSSL のバージョンエラーが発生した場合の対処方法

とにかく解決方法だけ知りたい方は[こちら](#具体的な方法)

## 公式に書いてある方法

### certbot のインストール方法

“`bash
sudo yum install certbot certbot-apache
“`

[参照](https://certbot.eff.org/lets-encrypt/centosrhel7-apache)

### 実行方法

“`bash
sudo certbot –apache
“`

### 発生するエラー

“`bash
Traceback (most recent call last):
File “/bin/certbot”, line 7, in
from certbot.main import main
File “/usr/lib/python2.7/site-packages/certbot/main.py”, line 17, in
from certbot import client
File “/usr/lib/python2.7/site-packages/certbot/client.p

元記事を表示

VBAで実装した勾配降下法をPythonで書いてみる

#勾配降下法をPythonで実装してみよう
前回までは勾配降下法を VBA で実装しましたが、今回は Python で実装してみます。
ただし、基本的には VBA のコードを書き換えたもので、行列演算などは使用しません。
「[勾配降下法をVBAで実装してみる(一次式の場合)](https://qiita.com/celaeno42/items/8e80e3dfa82c070a5837)」のVBAのコードを単純に Python で書き換えたものです。

– [勾配降下法を、いま一つ腹落ちしていない過去の自分にくどくどと説明してみる。](https://qiita.com/celaeno42/items/19531a4cb5b2857a9482)
– [勾配降下法(入力値が複数の場合の更新式)](https://qiita.com/celaeno42/items/477aec2543839d7c1177)
– [勾配降下法をVBAで実装してみる(一次式の場合)](https://qiita.com/celaeno42/items/8e80e3dfa82c070a5837)
– [勾配降下法

元記事を表示

DatabricksでMLflowを使う③ – モデルのライフサイクル管理 –

# はじめに
機械学習モデルのライフサイクル管理を行うオープンソースであるMLflowをDatabricksのUI上で使用する方法について書いています。

[DatabricksでMLflowを使う① – ノートブック上での実験トラッキング -](https://qiita.com/knt078/items/49a14a83c45f3f501ee7)
[DatabricksでMLflowを使う② – 実験パラメータとメトリクスの可視化 -](https://qiita.com/knt078/items/b1455d57a0fa6cee3f7d)

こちらの記事の続きとなります。
Databricksのマネージド型MLflowではトレーニングしたモデルのステージングについてもUI上で行うことができます。今回はこちらについて書きます。

# モデルの登録
前回の記事の各実験の比較画面です。こちらから一番左のモデルを本運用に移行しようとしているとします。run idから個別ページへ移動します。
![image.png](https://qiita-image-store.s3.ap-nort

元記事を表示

粒を数えてみた

以前に投稿した記事
[セルカウント健忘録](https://qiita.com/bobrock/items/732ef43ced543cc58a98)

色々と手探りで作った粒を数えるスクリプト

実際に実装してみて何とか使えるレベルまでにはもって行けたのでメモ書きとして残します。

##目的
液体中の粒子の数を数えて汚れ具合を判断する。いわゆるNAS等級ってやつ
めっちゃ高い機器を使えば精密測定は可能。
(↑もちろんこれが出来るなら作らない)

ただ、ざっくりとした判定は見本を見ての人による判定なのである意味ガバガバ。
まずは線引きしてガバガバの範囲を狭くして平準化するのが目的。

##作成環境
Windows10 64bit
Jupiter Notebook
Python 3.6.10
opencv 3.4.2.17
numpy 1.19.0
matplotlib 3.2.2

## ライブラリ
“`python:cap_save.ipynb
import cv2
import sys
import os
import numpy as np
import pandas as p

元記事を表示

SageMakerからGoogleCloudVisionに投げてみる

# 簡単に
AWSのSageMakerを使用している際に、GoogleのCloud Visionに投げてみようと思いたち、OCRを実行した際のメモ書きです。

# 環境
– SageMakerのconda_python3カーネルを使用
– google-cloud-vision: 1.0.0(初期で入っている(?))

# 内容
### 認証
[認証](https://cloud.google.com/vision/docs/ocr?hl=ja#set-up-your-gcp-project-and-authentication)に関しては、クリアしている前提とします。

### OCR
[チュートリアル](https://cloud.google.com/vision/docs/ocr?hl=ja#detect_text_in_a_local_image)をそのまま持ってきます。テスト用画像としてテキトーな画像を用意しておきます。
![夏.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/575891/3

元記事を表示

Cloud Pak for DataのNotebookでDb2のデータを読み書きする

(2020/8/6) 7.複数レコード挿入でハマった問題と対応を追記

Cloud Pak for Data(以下CP4D)上で、分析プロジェクトのNotebookでPythonを使ってDb2のデータを読み書きする方法です。と言っても、CP4D固有の部分は最初のDB接続情報を取得するproject_libの部分だけで、後は一般的なpythonでのDb2の読み書きと同じです。

検証したCP4Dバージョン: v3.0.1

# CP4D上で使えるDb2接続用pythonライブラリ

代表的には3つの方法があるようです。いろいろ比較してみたところ、Read(Select)ならデータをPandasデータフレーム化してくれるpd.read_sqlが便利で、Write(Insert/Update)やその他DB操作はibm_dbを使うのが良さそうです。

| |pandas | ibm_db | ibmdbpy |
|:—|:—:|:—:|:—:|
|概要|select結果をpandasデータフレーム化(read_sql)
pandasデータフレームのデータを書き込み(to_

元記事を表示

LinerRegressionでfitせずに回帰係数と切片から予測モデルを作成する

#はじめに
システムの都合上、scikit-learnで予測モデルを作らなければならないが、作りたい予測モデルが線形回帰モデルであり、回帰係数と切片が既に判明しているとしよう。既存の予測モデルをPythonで新たに構築したい場合などにありうるだろう。この場合わざわざ学習データを用意してfitメソッドを呼び出して学習するのもかったるいし、計算上の誤差などが出ることもある。であれば、回帰係数と切片から直接予測モデルを作ってしまえばいいではないかということで、できるかどうか調べてみた。結論として可能だったため、ここにメモっておく。

#環境
python 3.6
scikit-learn 0.21.2

#やり方
やり方はまさにそのままで、fitメソッドを使わずに、回帰係数と切片を直接予測モデルのオブジェクトに設定する。ソースは以下の通りだ

“`ScikitLearnTest2.py
from sklearn.linear_model import LinearRegression
import numpy as np

def main():

model = LinearRe

元記事を表示

緯度経度のリストを作って一括でUTM座標変換→ファイル出力

#
以前pythonを用いてEQA (緯度経度) からUTM (ユニバーサルトランスバースメルカトル) 座標へ変換するpythonコードを書きました.
↓Pythonで緯度経度座標↔UTM座標変換
https://qiita.com/spicy_HotChicken/items/4cdf303493d73e24dc14

ひとつひとつ座標変換するときにはpythonスクリプトに座標値を入力してしました.
しかし,だんだん変換する数も増えてきて面倒になってきたので,緯度経度のリストを作って一括変換してテキストファイルで出力できれば楽なのではないかと思いました.
緯度経度リストは左から緯度,経度の順でスペース区切りにしたときの座標変換スクリプトになっています.

“`
$ cat input.dat
139.2341321 35.534243
132.3214315 32.542664
138.4312145 36.534261
“`

変換スクリプトは以下の通りになります.
冒頭で入力・出力ファイル名を指定しています.

“`python:eqa2utm_list.py
impor

元記事を表示

pythonではじめるデータ分析 (データの可視化3 )

#はじめに
初心者向けにpythonでのデータ解析について解説しています。
本記事が3つ目になります。

##### ——————過去の記事———————-
pythonではじめるデータ分析 (データの可視化1)
https://qiita.com/CEML/items/d673713e25242e6b4cdb
pythonではじめるデータ分析 (データの可視化2)
https://qiita.com/CEML/items/e932684502764be09157

ソースコード
https://gitlab.com/ceml/qiita/-/blob/master/src/python/notebook/first_time_data_analysis.ipynb
# おさらい
このシリーズでは
無料で公開されているデータセットを使用して、データの読み込みから簡単なデータ解析までを解説します。

##### データセットについて
・提供元:カルフォルニア工科大学
・内容:心臓病患者の検査データ
・URL :https://archi

元記事を表示

pipでインストールしたモジュールの一括アップデート

雑に使っている環境で1つ1つアップデートするのは面倒なので、一括でアップデートしたい

Bash環境なら下記のコマンドで可能

“`Bash
pip list –user | awk ‘{print $1}’ | grep -v Package | egrep -v “^(-)+$” | xargs pip install -U –user
“`

### 以下、解説

インストールしたモジュールを表示

“`Bash
$ pip list –user
Package Version
————— ——-
numpy 1.19.0
pandas 1.0.5
“`

Package名を抜き出す

“`Bash
$ pip list –user | awk ‘{print $1}’
Package
—————
numpy
pandas
“`

`Package`と`—–`は不要なので削除

“`Bash
$ pip list –user | awk ‘{p

元記事を表示

『括弧文字列』簡易パーサ実装例まとめ

どんなパーサかというと,次のPythonの実行例のような処理を行うものです.

“`python
>>> p_syn(p_lex(input()))
((10 + 20)*(30 – 40))
[[’10’, ‘+’, ’20’], ‘*’, [’30’, ‘-‘, ’40’]]

>>> p_syn(p_lex(input()))
{ “color”: [ “red”, “green” ] }
[[‘color’], ‘:’, [[‘red’], ‘,’, [‘green’]]]
“`

当方,[諸般の理由](https://qiita.com/ytaki0801/items/a11c8143c5c63a406c7f)で簡易S式パーサを様々なプログラミング言語で作成している最中なのですが,ちょっと修正すれば簡易JSONパーサとかにもなるんじゃ?と気がつきつつ,JSONパーサにもS式パーサにも,あるいは,括弧ベースの独自のデータ構造表現のパーサにも,少しの手直しと処理の追加で簡易実装できる記述例をまとめようと思った次第.括弧文字列限定の[字句解析](https://ja.wikip

元記事を表示

2日後の電力使用量を予測してCSVで公開してみる

# はじめに

色々なところで機械学習を用いた電力使用量の予測方法についてレクチャーをしてきましたが、実際に予測した値はそんなに当ってないんじゃない?とか所詮はPoCでしょ?とか、様々なご意見を頂きましたので、実際に予測した値をCSVで公開して、その実力のほどを検証してもらおうかなと…

# 予測方法

過去に複数の方法で予測する例をQiitaの記事として公開しているので、ご覧下さい。

[電力使用量予測 with Keras (TensorFlow)](https://qiita.com/mix_dvd/items/f9e25147006ddef081c3)

# 予測対象

中国電力エリアにおける2日後の電力使用量を予測します。

# 予測結果の検証

2日後の予測結果をWebサイトにて公開し、中国電力さんの公開されている電力使用量の実績と比較できるようにしています。

https://blueomega.jp/20200811_power_prediction_challenge/yyyy-mm-dd_.csv
※ yyyy-mm-ddには予測対象の年月日が入ります。

20

元記事を表示

【学習時間を1/3にできる】Pythonの入門のための本のおすすめ7選と無料で学べるサイトをまとめてみた

Python初学者だけど、Progateちょっとかじったぐらいで何も勉強できてないよって方に。

初歩から中級レベルまでPythonを学ぶためにおすすめの本をここでは紹介していきます。

##1冊目:退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

何度も読み返したい度:★★★★★

2017年に発売した本ですが、書き方が丁寧で説明が分かりやすく事例が豊富で今だにおすすめできる本です。

![2019-07-26 23-17-47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/442910/58707f16-4c31-2e3e-6b31-7879fc4276ec.png)

この1冊で繰り返し処理であるfot文、while文、if文、変数、文字列の処理と言った基礎的なことから、スクレイピング、エクセル操作、画像処理などの基本的なことは一通り学ぶことができます。

説明が非常に分かりやすいので、progateなどで一通り学んでこれから何を学ぼうか

元記事を表示

ABC 151 D – Maze MasterをPythonで解く!

BFSの練習がてら解いてみました。
DFS、BFSの練習にはちょうどいい問題だと思います。

[問題へのリンク ABC 151 D – Maze Master](https://atcoder.jp/contests/abc151/tasks/abc151_d)

#やること
最大の移動距離を求めたい。
すべての頂点を始点としてBFSなりで、各頂点への移動距離を求める。
そこから最大となるものを探す。
壁からはスタートできないところに少し注意が必要。

#回答
“`python
from collections import deque
import numpy as np

H,W = map(int,input().split())
maze = [input() for _ in range(H)]

ans = 0
for x in range(H):
for y in range(W):
#壁からはスタートできない
if maze[x][y] == “#”:
continue

#初期化

元記事を表示

[競プロ奮闘記]UnionFindを実装した

# モチベーション
筆者は弱小プログラマなわけですが、強プログラマになるために競技プログラミング始めることにしました。
やってみるとわかるんですが、結構覚えること多いんですよね。受験で数学を解いていても思うのですが、思考力はもちろん大事なんだけど試験本番で短時間で解答に至るためには引き出しの多さも大事。

ということで主要なアルゴリズムやデータ構造は1つ1つ実装していきます。

第1回となる今回はUnionFindと言われるデータ構造を実装します。

ちなみに競プロをやるモチベが効率的に実務をこなすことにあるので、競プロのみんながPo**Hubよりも利用しているC++ではなく僕の愛用言語Pythonを使っていきます。(C++のが4倍速いとかどっかの記事でみたけど4倍なんて誤差ですよね)

# UnionFind
UnionFindはN個のノードがいくつかのグループに分かれているときに
1. 任意の2個のノードa, bが属するグループをつなげて1つのグループにする。
2. 任意の2個のノードa, bが同じグループに属するのかを判定する
という機能に特化したデータ構造。

いずれもならし計

元記事を表示

TensorFlowのチュートリアルをコメント付けながら実行してみた(映画レビューのテキスト分類)

参考URL:https://www.tensorflow.org/tutorials/keras/text_classification?hl=ja

## 目標
以下のことを行う

– 映画のレビューをそのテキストを使って肯定的か否定的かに分類
– 肯定的か否定的かに分類するニューラルネットワークを構築する(二値分類)
– ニューラルネットワークを訓練する
– モデルの性能を評価する

## 準備

### パッケージの用意

“`python
import tensorflow as tf
from tensorflow import keras

import numpy as np
“`

“`python
# tensorflowのver確認
print(tf.__version__)
“`

2.3.0

### データセットの用意
IMDBデータセットを使用する
`num_words=10000`は最も頻繁に出現する単語10,000個を保持するためのもの
データサイズを管理可能にするため、稀にしか出現しない単語は破棄される

“`p

元記事を表示

djangoのmodelに入っているデータをjson形式で返し、leaflet上にマッピングする方法

今回は、タイトルにもある通り、models.pyで登録したデータをrestapiを使ってjson形式で返してもらい、それをマップ上にプロットしようというものです。
僕自身、djangoも初心者レベルで地図アプリも触ったことがないので、そのレベルの同じような人が躓いたときに参考にしてもらえると嬉しいです。

#うまくいったコードです↓
“`
def index_serialized(request):
evacuation=Evacuation.objects.all()
serialized=EvacuationSerializer(evacuation,many=True)
content=JSONRenderer().render(serialized.data)
return HttpResponse
“`

元記事を表示

pythonで@propertyを使った時にcan’t set attributeが出る

どうもpythonでコードを書いてる者です

とかいってまだ初心者なのでエラーでつまることも多々あります。
そのなかでこれまでよくわからずに放置してきたクラスのセッターやゲッターをこの期にちゃんと学び直してみようと思い今回は書いております。ではいきましょーー

*使用した言語等のバージョンは以下の通りです。
>python 3.7.4

#can’t set attributeで引っかかる
クラスで生成したものを取得したい時ありますよね。そんな時どうするでしょうか。

“`practice01.py
class C(object):
def __init__(self) -> None:
self.x = 1

c = C()
r = c.x
print(r)
# 1
“`

簡単に書けばこうです。でもせっかくなら@propertyとか使ってみたいでしょ

“`practice02.py
class C(object):
def __init__(self) -> None:
self.x = 1

@property

元記事を表示

OTHERカテゴリの最新記事