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

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

ラズパイのカメラで撮った画像から顔検出する

前回ラズパイ4に付けたカメラモジュールV2.1で画像取り込みをしたので、今回はその画像から顔とかの検出をやってみます。

#顔検出
openCVにある顔検出プログラムを使ってみました。正面を向いている顔のみ検出するので横顔は検出できません。また、画像取り込みのプログラムについては前回と同じなので説明は省略します。

“`python:face.py
import cv2
camera = cv2.VideoCapture(0)
camera.set(cv2.CAP_PROP_FRAME_WIDTH,640)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT,480)
cascade = cv2.CascadeClassifier(‘/home/pi/.local/lib/python3.7/site-packages/cv2/data/haarcascade_frontalface_alt.xml’)
while True:
_,image = camera.read()
gray = cv2.cvtColor(image,cv2.COLOR_

元記事を表示

Python パッケージ(ライブラリ)のpipコマンドを使ったインストール方法 Mac環境

こんにちは、かをるです。

今回は、GUIツールである【PyCharm】をつかってPythonの環境構築を行なっていきます。

PyCharmとは、Pythonの統合開発環境です。

コマンドラインによる環境開発よりもこういったツールを使いこなすことで、より効率的に開発を進めることができます。

有償と無償とありますが、今回は無償のインストール方法を紹介していきます。

ブログに投稿しました。

https://kaworublog.com/pycharm-python/

元記事を表示

asdf で Python 3.9.1 + pipenv をインストールする

Python のバージョン管理を、pyenvから asdf へお引っ越ししたので、インストールしていきます。
パッケージ管理は pipenv が使いやすかったので引き続き使います。

# 前提
asdf をすでに導入している状態を前提とします。

# インストールと確認
Python 3.9.1をインストールし、確認します。

#### インストール
“`shell:shell
# プラグインをインストール
asdf plugin-add python

# インストール可能なバージョンの確認
asdf list-all python

# インストール
asdf install python 3.9.1

# 実体の確認
where python
/Users/USERNAME/.asdf/shims/python

asdf which python
/Users/USERNAME/.asdf/installs/python/3.9.1/bin/python
“`
#### 確認 & グローバルに設定
“`shell:shell
# インストールを確認
asdf lis

元記事を表示

ClearML入門〜機械学習の実験管理を楽にする〜

# はじめに

機械学習では、モデルの学習に使用するコードだけでなくデータセット、前処理で生成された生成物、モデルなどもセットで管理する必要があり実験管理が難しいという問題があります。適切な実験管理は、実験段階で動いていたコードを本番環境に持っていき同様の予測結果を再現するのにも重要になります。

機械学習の実験管理では[MLflow](https://github.com/mlflow/mlflow)などが有名ですが、ClearML(前の名前: Allegro Trains)という実験管理ツールを見つけたので、この記事ではClearMLの簡単に使い方について説明させていただきます。

ClearML: https://github.com/allegroai/clearml (Apache-2.0 License)
公式ドキュメント: https://allegro.ai/clearml/docs/index.html#

実験管理の考え方については、以下の記事も非常に参考になります。
[実験管理について考える Re:ゼロから始めるML生活](https://www.nogawano

元記事を表示

Python3の文字コードについて

情報系の備忘録的なのを書こうかと思い、投稿してみた。

…が、書き途中で他の仕事やり始めてしまったので、とりあえず未完成品を投稿。
余裕がある時にコードとか追加しようかな…。

# はじめに
今回は、Python3の文字コードについてまとめておこうと思う。

最近、他のサイトのデータを持ってきて、整形する作業をやってみたが、
requestで持ってくるときや、ファイル書き込みするときにErrorや文字化けが…。

色々サイトを漁ってもよくわからなかったので、詳しい人に聞いてみました。
以外とスッキリした気がするので、ここに書いておこうと思う。

# 文字コードとは
まず文字コードとは何ぞやという人もいると思い、簡単に書いてみる。

端的に言うと、
###文字1つに対して、1つの2進数が割り振られているもの
だと思います…。

ある文字に対して、1つの通し番号が割り振られており、
その通し番号で、どの文字に変換するかを決めたもの。

# Python3の文字コードは??
では、Python3の文字コードは何が使われているのか。

全体を図にするとこんな感じ。
![picture_for_

元記事を表示

wxPythonでボタンを扱う – wx.Button

最近SoftBank光にしたんですけど…めっちゃ高速でした!
Youtubeで4k動画も普通に見れます。

今回はGUIではなくてはならない存在のボタンについて紹介します。

##wx.Buttonとは?
wx.Buttonは、ボタンのように、クリックされたら何かをするというもことが、できるGUI開発ではなくてはならないものです。

##wx.Buttonを置くだけのコード

“`python
btn = wx.Button(panel, -1, “テキスト”)
“`
wx.StaticTextと同じように`pos`属性を使うことで、表示する位置を指定出来て、`size`属性を使うことでボタンのサイズを変更できます。

##クリックイベント

“`python
def buttonClick1(event=None):
wx.MessageBox(“クリックされました!”,”アプリ”,wx.ICON_INFORMATION)
btn = wx.Button(panel, -1, “テキスト”)
btn.Bind(wx.EVT_BUTTON, buttonClick1

元記事を表示

AWS EC2でPHPのexec()でpython3系実行

[Amazon LinuxでPython3系を使う](https://michimani.net/post/aws-using-python3-on-amazonlinux/)
こちらのブログの方法で解決しましたが、少し自分なりに足りないと思ったところを補足して紹介します。

### 大前提:Pyenvのインストール先は、/usr/bin/..にしよう。

他のブログでは、pyenvのインストール先は/home/ec2-user/…のところにあると思うのですが、ec2-userディレクトリは権限が厳しいので、その中にpython3をインストールして、例えば、exec(/home/ec2-user/…/bin/python3.7)とかしても、

“`
permission denied
“`

になります。
だからといって、homeディレクトリや、ec2-userディレクトリの権限を書き換えると、セキュリティの仕様?か何かで、scpやsshでサーバーに入れなくなるという恐ろしいことが起きます。(もしそうなっちゃったら、AWS ec2のインスタンスページからターミナルを開けば解

元記事を表示

PyMySQLで任意のDictCursorを作って、NULLのときにNoneを返さない方法

# 前置き

PyMySQL使ってますか?
え?ORM使ってるからそんなもん使わない?

まぁまぁ、ORMはORMでめんどくさいときがあるじゃないですか。
チョクでSQL書いたら楽なときもあるでしょ?

# でPyMySQL

“`python
import pymysql.cursors

# Connect to the database
connection = pymysql.connect(host=’localhost’,
user=’user’,
password=’passwd’,
db=’db’,
charset=’utf8mb4′,
cursorclass=pymysql.cursors.DictCursor)

with connection.cursor() as curs

元記事を表示

MacBook ProでPyAutoGUIの座標が正しく取れない?

# 動かない
Python + PyAutoGUIでMacBook Pro(15-inch, 2018)のDockにあるアイコンをクリックさせようと、こんなコードを書いたら動かなかった。

“`python:click.py
import pyautogui as pag

position = pag.locateCenterOnScreen(‘target_app.png’, confidence=0.9)
pag.click(position)
“`
※target_app.pngはDockのアイコンをスクリーンショットした画像

Dockが一瞬だけピクッと動いて、ターゲットのアプリケーションが起動しない。

Dockのアイコン位置の座標を調べたところ、locateCenterOnScreenで取得した値と、アイコンにマウスを当ててposition()で取得した値がぜんぜん違うことに気づいた。

**locateCenterOnScreenで取得した値**
“` x=3046, y=2335 “`

**pyautogui.position()で取得したマウスカーソルの値

元記事を表示

RequestsモジュールのHTTPリクエストメソッドに必要な引数を理解せよ

どうも、遅刻魔の月歩人です。
この記事は[JSL(日本システム技研) Advent Calendar 2020年 14日](https://qiita.com/advent-calendar/2020/jsl)の記事です。

バックアップ用に購入したポータブルHDDが初期不良で交換した矢先に買い替えたmacも初期不良で画面が一部映らなくなり、絶望的な状況で書いています :innocent:

## この記事を書くに至った経緯

少し前RequestsでHTTP/IFを実装する場面で、HTTPメソッドを実行するときのパラメータを理解していなかったがためにリクエスト先でparseが失敗していたにも関わらず、「APIが繋がらない!」と騒いだことがありました。
自分や他のエンジニアが同じ轍を踏まないために備忘録として残そうと思ったのがきっかけです。

## まずRequestsが対応しているHTTPメソッドを把握

requests/api.pyより

* requests.get(url, params=None, **kwargs)
* requests.post(url, data=N

元記事を表示

Jetson Nano L4T 44.1 (2020/10/21) with Tensorflow

#Introduction (Abstract)

Jetson Nano L4T 44.1 has installed cuda Library 10.2. And I tried to install tensorflow with ‘python3 -m pip’, but it was not working properly. Finally, I can make tensowflow working with gpu by other install index.

#Problem

I download the SD card image file from [Nvidia Jetson Download Center](https://developer.nvidia.com/embedded/downloads) and follow the instruction and installed L4T 44.1 on my Jetson Nano.

Then, I tried install tensorflow for python:

$ pyth

元記事を表示

ラズパイのカメラモジュールで撮影した画像を表示する

手持ちのラズパイ4にカメラモジュールV2.1を付けたので、試しに簡単なプログラムを作成してみました。その際色々苦労したので、調べ直す必要がないようにメモを残します。

#openCVを使ったプログラム
openCVにはカメラ取り込む機能もあり、また画面表示の機能もあるので非常に便利です。

“`python:test.py
import cv2
camera = cv2.VideoCapture(0)
camera.set(cv2.CAP_PROP_FRAME_WIDTH,640)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT,480)
while True:
_,image = camera.read()
#エフェクトを追加する行
cv2.imshow(‘camera’,image)
key = cv2.waitKey(1)
if key != -1:
break
camera.release()
cv2.destroyAllWindows()
“`

ウィンドウ上でキーを押すと、停止するようになっていま

元記事を表示

速いと噂のPythonのVaexについて詳しく調べてみた。

結構前にPandasやDaskなどよりも大分高速と話題になっていたPythonのVaexライブラリについて、仕事で利用していきそうな気配がしているので事前にしっかり把握しておくため、色々調べてみました。

# どんなライブラリなのか

– Pandasと同じように行列のデータフレームなどを扱うことのできるPythonライブラリです。
– Pandasと比較して膨大なデータの読み込みや計算などを高速に行えます(数十倍~数百倍といったレベルで)。
– 計算上のメモリ効率がとても良く、無駄の少ない実装になっています。
– Daskのように計算が遅延評価されたりと、通常はメモリに乗りきらないデータでも扱うことができます。
– Daskのように並列処理で計算を行ってくれます。
– Pandasと比較的似たインターフェイスで扱うことができます。

# この記事で触れること

主に以下のVaexのトピックに関して本記事で触れます。

– インストール関係
– カラムへのアクセス
– スライス制御
– 各種要約統計量の計算
– データの選択(selectとselection)
– 各種データの読み込み

元記事を表示

【備忘録・随時更新】AzureFunctionsのあれこれ

# 1. はじめに

この記事は、[前回の備忘録](https://qiita.com/gsy0911/items/61198607476ac686ce6f)にて書けなかった事柄について
書いていきます。

項目は以下の通りです。
また、この記事は随時更新予定です。

| 節 | タイトル | 内容 |
|:–:|:–|:–|
| 2 | API Manaegment と統合 | AzureFunctions をドメインを付与した URL で実行可能にする |
| 3 | Azure Identity の利用 | 他のリソースへのアクセスを許可する |

# 2. API Managementと統合

この説では、API Management を利用して、作成した AzureFunctions の`HttpTrigger`の利便性を高くします。

## 2.1 Azure FunctionsのHttpTriggerの不十分な点

API Management を作成する前に、 AzureFunctions の`HttpTrigger`では不十分な点について説明します。
それは、A

元記事を表示

【Python】配列生成(初期化)時間まとめ!!!

#まとめ!!!
最初に結果をまとめておこう.いわゆる「時間のない人のための」というやつである.かなり見やすくまとまっていると自負している.

##1d配列

| Code | Mean | Stdev. | Runs | Loops |
|—————————-|———|———|——–|———|
| `np.empty(N) ` | 1.76 µs | 32 ns | 7 runs | 1000000 |
| `np.zeros(N) ` | 11.3 ms | 453 µs | 7 runs | 100 |
| np.ones(N) | 14.9 ms | 182 µs | 7 runs | 100 |
| np.zeros_like(np.empty(N)) | 19.9 ms | 320 µs | 7 runs | 100

元記事を表示

taichiの使い方① ~mp4とgifで出力~

## 経緯
[taichi](https://github.com/taichi-dev/taichi)に昨日からハマっているので、色々使ってみつつ、適宜情報を共有していこうと思います。今回は、作成したグラフィックをmp4またはgifとして出力するやり方を紹介します。詳しくは公式の[ドキュメント](https://taichi.readthedocs.io/en/stable/export_results.html#export-images)をご覧ください。taichiについての初めての記事は[こちら](https://qiita.com/Hiroaki-K4/items/e8cdb8c4e79c0d1a6670)です。

## ffmpegのインストール
動画を出力する際にtaichiはffmpegを使用するので、インストールしていない場合はインストールしてください。

“`
$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt install ffmpeg
“`

## スクリプト
今回は試しにリポジトリのexamplesの中に

元記事を表示

タコヤキオイシクナールをセグメントツリーへの乗せる際の考え方

タコヤキオイシクナールはセグメントツリーの応用の典型例として有名です。今回はこの問題を解いていきます。
対象読者は、セグメントツリーのMaxやSumの実装を理解しており、タコヤキオイシクナールをどのように乗せればよいのか?と悩んでいる人を対象とします。

# 概要
まず、満点解法を考慮せずに考えます。

– n 個の箱があり、それぞれの箱$a_i (0 \leq i < n)$にはa,b の変数が書かれている。すべての箱は1,0のパラメータを持つ。 - 各箱はxという値が入力されると $ ax + b $を出力する。 - 今、1という数字を$a_0$にいれる。$a_i$に入力された値の出力は$a_{i+1}$に渡され - すべての箱を通過した時の値は何か? # 例 2つの箱があり、それぞれパラメータが、$2,2$と$3,3$だったとします。 1つ目の箱の入力は1のため、$1 * 2 + 2$で5が出力されます。 2つ目の箱の入力は5のため、$5 * 2 + 3$で18が出力されます。 # 箱の合成 隣接する箱は合成することが可能です。今、1つ目の箱のパラメータをa,bとし、2つめの

元記事を表示

【強化学習】KerasでApe-Xの解説・実装(失敗)

インターネットで調べて実装しているのでまだ理解し切れていない部分もあります。
虚偽・暴論等が記事内にありましたらご指摘願います。

#はじめに
今回は、2018年の時点で2番目に優秀というApe-Xという強化学習アルゴリズムを実装してみました。

#Ape-Xとは
Ape-Xは2018に発表された強化学習アルゴリズムで、R2D2に次いで2番目に優秀とされている強化学習アルゴリズムです
論文は[こちら](https://openreview.net/pdf?id=H1Dy—0Z)

構造的には、
 ・Double Deep Q Network
 ・multi-step bootstrap target
 ・Dueling Network
 ・Prioritized Experience Replay
 ・分散学習
no
4つを組み合わせたアルゴリズムです。順番に説明していきます

## Double Deep Q Network (DDQN)
DDQNについては[このサイト](https://qiita.com/sugulu_Ogawa_ISID/items/bc7c70e6658

元記事を表示

[エラー]IOPub message rate exceeded. The notebook server will temporarily stop sending output to the client in order to avoid crashing it.

## エラー
IOPub message rate exceeded.
The notebook server will temporarily stop sending output
to the client in order to avoid crashing it.
To change this limit, set the config variable
`–NotebookApp.iopub_msg_rate_limit`.

# 原因

iopun_data_rate_limit の値がとても小さく設定されているため。

# 解決策

設定されている値を変更する

jupyter notebook –NotebookApp.iopub_data_rate_limit=10000000000

# 追記

最新版では修正されている。

# 参考

https://github.com/jupyter/notebook/issues/2287

元記事を表示

【備忘録】初めてのAzureFunctionsのデプロイ

# 1. はじめに

この記事では、AzureFunctions でよく私が利用している`HttpTrigger`と`TimerTrigger`を
デプロイして動かすところまでを解説します。

結構長くなったので、目次と簡単な内容を付与しておきます。

| 節 | 項 | タイトル | 内容 |
| :-: | :-: | :—————————- | :———————————————————- |
| 2 | – | 前準備 | – |
| | 1 | – ローカル環境 | AzureFunctions をデプロイ

元記事を表示

OTHERカテゴリの最新記事