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

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

DockerでJupyterLab環境を作る

[DockerでPython実行環境を作ってみる](https://qiita.com/jhorikawa_err/items/fb9c03c0982c29c5b6d5)を参考にDockerを色々といじってみたので記事にしました。

内容は[GitHub](https://github.com/umehara0506/Docker/tree/main/JupyterLab%E7%92%B0%E5%A2%83
)に載せているので下記でクローンして活用ください。

“`
git clone https://github.com/umehara0506/Docker.git
“`

## ファイルの内容

フォルダ構成は下記になります。
srcはDockerのファイルと同期させてDockerとローカルファイルを
同期させるのに作成しています。

“`:フォルダ構成
Dockerfile
docker-compose.yml
requirements.txt(空テキストファイル)
src(空のフォルダ)
“`

requirements.txtは必要なライブラリを入れておけば、
D

元記事を表示

jinja2でurl_forでのID別のページング

#Flaskでアプリケーションを作っている時、最初の方に地味にハマったページ遷移の件
初心者も初心者の時にblue_print()を初めて使用していた際、aタグやformのactionでurl_for()を使ってくれと言われ調べてみるも、なかなかヒットせず苦労したので記事にしてみる。

##結論

ulr_fro()の第二引数にIDを指定してあげればOK

##コード
ボタンを押せばその数字が表示されると言うなんとクソテキトーなアプリを作成

###Flaskの実行用のファイル

“`python:contoller.py

from flask import Flask
from route.test_route import test_route

app = Flask(__name__,)
app.secret_key = ‘hogehoge’

# ブループリントの設定
app.register_blueprint(test_route)

if __name__ == ‘__main__’:
app.debug = True
app.run(host=’127.

元記事を表示

[Python3] 初心者の初心者による条件分岐(IF文)、while文の使い方

#初めに
数日前にPythonの勉強を始めました。
自分で記事を作成しながら、インプットアウトプットをしていこうと思います。
自分で作成したサンプルコードをもとに説明していきます。
また、初心者の方やこれからpython勉強を始める方が参考にできるような記事にしていこうと思っています。

#今回作成したもの
自動で値を取得し、九九計算問題を出してくれるプログラムを作成しました。

#自分で書いたサンプルコード
“`py
#ランダムのライブラリー取得
from random import randint

right = 0 #正解数
wrong = 0 #間違えた回数
print(“2回間違えたら終了、やめる場合は[quit]と入力”)

#2回失敗したら終了
while wrong<2 : FirstNum = randint(1,9) #1~9の値を自動で取得 SecondNum = randint(1,

元記事を表示

グラビア⇒グ〇ビア、みたいにpythonで禁止ワード/NGワードを置換/隠す

# はじめに
タイトルの通り、禁止ワードを置換する方法を説明します。

例えば、
グラビア⇒グ〇ビア
のように、NGワード2文字目を置換します。

# NGワードの準備
NGワードをかき集めたNG_word.txt みたいなものを用意します。
こんな感じ

“`NG_word.txt
喫煙 殺人 注射器 密売 密造 グラビア
“`

あんまり書きすぎるとこの記事がバンされちゃうので、ここらへんで。
以下みたいに改行区切りでもよいです。

“`NG_word.txt
喫煙
殺人
注射器
密売
密造
グラビア
“`

NGワード/禁止ワード一覧って、ぱっと検索した感じだとあまり見つからなかったのですが、
例えば、
[スパム対策用 禁止ワード・NGワード集](https://www.vector.co.jp/soft/dl/data/net/se475480.html)(vector.co.jpのリンクです)
とかが参考になると思います。
ちょっとワードが少ない上に2009年のものなので古い気もしますが、他にあれば教えてください。

# 実際に置換する

次の関数を作りました。
雑で

元記事を表示

スクレイピングして抽出したデータをCSVにいい感じにしたい

スクレイピングにハマっている無職です。
今回はスクレイピングをしてそこから読み取ったデータをCSVファイルでいい感じに表示させていきたいと思います

##今回やりたいこと

![スクリーンショット 2021-07-22 13.23.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/764631/b1862e62-35b5-3cec-be5f-ff4fef1bae9a.png)

ここから本の題名を検索して、本のシリーズの題名、著者、出版日、Urlを抜き出してCSVファイルに移すと言うものをやっていきたいと思います。

今回の完成の動画はこちらです。

完成したCSVファイル
![スクリーンショット 2021-07-22 13.39.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/764631/9

元記事を表示

Numbaでアレイのスライスを取得する際の注意点

## 前置き
pythonでの処理を高速化するために、numbaを普段から利用しています。
今回は多次元アレイのスライスを取得する際に、どの次元に対してスライスを取るかでパフォーマンスが変わってしまう問題を取り上げます。

## 1. 環境
“`bash
$ sw_vers
ProductName: macOS
ProductVersion: 11.4
BuildVersion: 20F71
$ system_profiler SPHardwareDataType
Hardware Overview:

Model Name: MacBook Air
Model Identifier: MacBookAir10,1
Chip: Apple M1
Total Number of Cores: 8 (4 performance and 4 efficiency)
Memory: 16 GB

$ python -V
Python 3.9.6
$

元記事を表示

【python】【pytest-mock】クラス外メソッドをモックにする方法

クラス外メソッドをモックにする必要があった為、その方法のメモ書き。
例として、以下の「time_util.py」があったとします。

“`time_util.py
import time
def time_msec() -> int:
return int(time.time() * 1000)
“`

「time_util.py」は、pyファイルに直にメソッドが記載されているもので、
これをpytest-mockを利用して、モック化する場合に、以下の記述でモック化する事が出来ませんでした。

“`test01.py(修正前)
import time_util
class Test正常系():
def test_正常ケース(self, mocker):
# time_msecをモックにする
mock_test = mocker.patch(“time_util.time_msec”)
mock_test.return_value = 1000
“`

上記の形で実行してもコード上は実行時エラーとならず進みますが、実

元記事を表示

複数ホストから一斉にファイルを回収する

[前回はこちら](https://qiita.com/mashi0923/items/169ca40f53b2cd9392de)
前回のおまけのような内容です.

前回は一斉にプログラムを動作させる方法を記載しました.
今回は複数ホストから一斉にファイルを回収する方法を載せておきます.

使い方はなんら変わりません.

“`paramiko_copy.py
#!/usr/bin/python3

import paramiko
import os
import datetime as dt
import scp

user = “username”
passwd = “PASSWD”

with open(“host.txt”) as f:
s = f.readlines()

host_name = []
for i in range(len(s)):
if s[i].startswith(‘#’):
pass
else:
host_name.append(s[i].replace(“\n”,”))
print(h

元記事を表示

同一ネットワーク上の複数ホストに対して,一斉実行命令を出す(on python3 paramiko)

私が普段学校で実験を行う際に,複数のホストで一斉にプログラムを動かしたいときが有ります.
人手があれば,1人1台張り付いて実行すれば良いですが,深夜に実験を回すこともあるので,1人で複数ホストに対して一斉に実行命令を出すことができれば効率が上がると考え,実装しました.
同様の環境を構築したい方は,参考にしていただけると幸いです.

#実行環境と使用ツールのインストールなど
命令を送るPC:Debian11(test)
命令を受け取るホスト:ラズパイ(Debian)
今回はラズパイに向けて実行してますが,PCでも問題ないです.

命令を送るPCのPythonのバージョン
Python 3.9.2

環境構築に向けて,インストールしなければいけないものがあります.
それはparamikoというパッケージ?モジュール?です.

“`
$ aptitude search paramiko
i python3-paramiko – Make ssh v2 connections (Python 3)

もしくは

$ sudo apt-get install python3-p

元記事を表示

ideapad duetにjupyter labを入れるまでの覚書

## はじめに
 先日ideapad duetを衝動買いしました。軽いPCなので出先で気軽にpythonをポチポチできたらな〜と思っていたのですが、jupyterの導入に難儀した+意外とまとまった情報が見当たらなかったので、備忘も兼ねてjupyter labの導入までを記します。
##Linuxの有効化
 chromebookでは「設定→デベロッパー」からLinuxを有効化することができます。適当にディスクサイズを指定して、指示どおりボタンを押せば勝手にインストールされます。簡単便利!
##jupyter labの導入
 anacondaを使ってpythonの環境を整えたかったのですが、ideapad duetはARM系の何かしらを使っているらしく、どうやら素直にインストールすることができないようです(無知)。そのため、pipでちまちまインストールしていきます。

が、まずはそのpipを使えるようにします。

“`
sudo apt-get update
sudo apt-get install python3-pip
“`
jupyter lab(とその他周辺機器)をインストール

元記事を表示

pythonでprintしてみた

“`
print(‘こんにちは’)
“`

元記事を表示

【AtCoder】ABC210をPython3で解説

ABC210の解説。

https://atcoder.jp/contests/abc210

## A – Cabbages
### 解説
キャベツ1つ$x$円。
**もし、キャベツを$A$個より多く買うとき、次から買うキャベツは$Y$円で買うことができる。**

キャベツを$N$個買うとき、必要な金額はいくらかという問題。

問題文の通り実装すれば、ACできる。注意点は、もし$A$よりも多いとき、というところだ。

### コード
“`python
n, a, x, y = map(int, input().split())

if n > a:
print(x*a+(n-a)*y)
else:
print(x*n)
“`

## B – Bouzu Mekuri
### 解説

問題の解釈をすると、文字列$S$のなかで先に$1$を出したほうの名前を出力するという問題。

文字列$S$を1文字ずつ確認していって、$1$が出たときに条件分岐。偶数番目なら、青木くんの負けなので“`print(‘Aoki’)“`、奇数番目なら、高橋くんの負けなので“`print

元記事を表示

pytorch-openposeで姿勢推定(MacOS CPU)

##今回やったこと

![スクリーンショット 2021-07-19 21.18.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1754134/82c787cf-1bf5-00ca-4536-e5f5156716f3.png)

![スクリーンショット 2021-07-19 21.36.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1754134/40f78854-66ca-f741-8875-6cf699206789.png)

##*Pytorch-openpose*を利用

当初、次のリポジトリの資源をgit cloneしようとしたが、__*tesorflow=1.4.1*が入れられなかった__ため、利用を諦めた。

– https://github.com/jiajunhua/ildoonet-tf-pose-estimation

変わりに、PyTorch実装の資源を次から入れることにした。

– h

元記事を表示

M1 Macでできるだけ楽にPython環境を構築する

# はじめに
seabornを使いたくて`pip install seaborn`をしたらド偉い量のエラーに見舞われた。いい機会と考えてなあなあで構築していたPython環境をすべてリセットしてイチから構築し直した。

# 環境

– M1 MacBook Air
– macOS Big Sur 11.3.1

# この記事でやること

1. Homebrewのインストール
1. Pythonのインストール
1. 各種パッケージ(numpy、pandas、matplotlib、scipy、seaborn)のインストール

通常使用であればこのあたりのパッケージがあれば十分?だと思う。TensorflowやPyTorchが必要な人は頑張ってくれ。

なおこの記事ではvenvなどを用いた仮想環境での構築は行わない。仮想環境を使いたい人は[この記事](https://qiita.com/ketaro-m/items/ebae35c49d55aa86dfcf)が参考になる。

# Homebrewのインストール

M1が出てしばらくはhomebrewのインストール方法が迷走していたらしい[^1

元記事を表示

OpenCV2で物体追跡 〜 特徴点の移動軌跡をフレーム画像から切離してファイル出力

__[前回の記事](https://qiita.com/electronics_diy721/items/ad9bb5a095ba90e96e37)__では、OpenCV2の物体追跡APIの解析結果を、3つのWindowsに分けて、個別出力しました。

1. オリジナルの画像に、特徴点の移動軌跡を重ねたフレームを、時系列で再生したウインドウ
2. オリジナルの画像に、特徴点を小さな●で重ねた表示したフレームを、時系列で再生したウインドウ
3. 特徴点の移動の軌跡ラインだけを、背景真っ黒な画面に表示させたものを、時系列で再生したウインドウ

今回は、Windowsが閉じた後に、後で繰り返し上記の1〜3を閲覧できるように、ファイル出力を行いました。

– 「1」の__動画__ファイル
– 「1」の__静止画__ファイル (総フレーム数個のファイル)
– 「2」の__静止画__ファイル (総フレーム数個のファイル)
– 「3」の__静止画__ファイル (総フレーム数個のファイル)

前回の記事に引き続いて、__次の記事で公開されているコード__を参考にしました。

– https://qii

元記事を表示

C++ matplotlib-cppでtrend chartを書く方法

#C++ matplotlib-cppでtrend chartを書く方法

データの可視化は情報を整理したり、わかりやすく結果を示すときによく使うと思います。
データの可視化にはトレンドチャートやバーチャート、モザイクチャートやヒートマップ、データテーブルなど様々な表現があり、時と場合に応じて使い分け、適切な表現で示すことで、伝えたいことを100%伝えることができます。
様々な可視化Toolの中で、今回はC++のmatplotlib-cppを使ったGraphのつくり方をまとめました。

##matplotlib-cppとは
ドイツ ハンブルクのソフトウェア企業TenzirのBenno Eversが2014年にGitに公開したC++ Plot Libraly。
Python Matlabとmatplotlibを参考に作られており、使い方はmatplotlibに似ています。

[Tenzir Home Page](https://tenzir.com/)
[matplotlib-cpp Github](https://github.com/lava/matplotlib-cpp)
[mat

元記事を表示

pythonを便利に使おう第六回!線図編!

#初めに
 どこかの入試問題だったか定期テスト問題だったかで、面白い線図の問題が出たことをたった今になって思い出したところ、その線図の最終的な答えが確か、ドラえもんになったのを覚えています。今回はとりあえずmatploblibで簡単な線図が出来るようになるのを目指します。
#線図
 線図の重要性は、そのほとんどの概念が現実世界と鏡写しに出来ることから、簡単に理解できます。例えば、機械の設計では細かく素材の長さを設定し、その図形によって、「この角度であれば、この材質のものではこれほど耐えることが出来る」などを導き出すことができます。線図とはやはり手書きで、人の手で思考のままに手掛けるべきなのでしょうが、便利になるならばそれに越したことはありません。
##第一問 円の線図

 円の関数は以下のとおりですね。

“`math
r=x^2+y^2
“`

 半径を1と仮定し、xの配列からyを求めて、それをmatplotlibで表示できるか試みます。

“`python
import numpy as np
import matplotlib.pyplot as plt
xs = np.a

元記事を表示

OpenCV2で物体追跡 〜 特徴点の移動軌跡をフレーム画像から切離してウインドウに動画出力

__[前に書いた記事](https://qiita.com/electronics_diy721/items/7ba53551862dbecb0b91)__でうまく動いたスクリプトを微修正して、次の3つのWindowに、OpenCV2の物体追跡の異なる出力結果を出してみました。

__前回の記事に引き続いて、次の記事で公開されているコードを参考にしました。__

– https://qiita.com/hitomatagi/items/772549d0fc3c89fb3cc4

##今回、出力した3つの画面

__( Window )__

通常、OpenCV2から出力されるのは、この画面です。

![スクリーンショット 2021-07-18 15.21.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1754134/25eaf541-b081-19ee-6b89-f572b54ff2dc.png)

__( Window 2 )__

ある時点で読み込まれたフレーム画像に対して、OpenCV2

元記事を表示

明日使える(?)ムダ知識をあなたに~Python3知られざる機能~

# はじめに
諸事情からpythonの [Full Grammar specification](https://docs.python.org/3/reference/grammar.html)を読んでいたら、普段雰囲気でなんとなく使っていたpythonのあまり目にしない機能をいくつか見つけたので紹介してみます。

明日から使える・・・かどうかはわかりませんが、明日同僚にどや顔するくらいの使い道があること間違いなし!

紹介順には特に意図はありません。

# 1. PEP570 Python Positional Only Parameters [Python 3.8~]

“`python
>>> def id(x): return x

>>> id(2) # (i)
2
>>> id(foo=2) # (ii)
2
“`

実は、上のように定義されたpythonの関数`id`は引数を(i)のようにして渡すこともできるほか、(ii)のようにラベル付きで渡してあげることもできます。このような渡し方ができるパラメータはそれぞれpositional parameter, ke

元記事を表示

【 OpenCV2 】物体追跡コードのエラー対処法 〜 line, circleの引数はint型、特徴点未検出のフレームは飛ばす

OpenCV2のオブジェクト・トラッキングに関する記事です。

ウェブサイトに公開されている実装コードに、任意の動画ファイルを食わせたところ、__複数の公開コード__に__共通する「コードの修正ポイント」__を見つけました。

__原因と解決策__について、検討がついたので、知見を共有したいと思います。

###サンプルコードの例
– https://qiita.com/hitomatagi/items/772549d0fc3c89fb3cc4
– https://ohke.hateblo.jp/entry/2019/08/10/230000
– https://algorithm.joho.info/programming/python/opencv-optical-flow-lucas-kanade-py/

###(直面したエラー1)

“`bash:Terminal
Traceback (most recent call last):
File “/Users/electron/Desktop/optical_flow/optical_flow.py”, line 72,

元記事を表示

OTHERカテゴリの最新記事