Python関連のことを調べてみた2021年08月04日

Python関連のことを調べてみた2021年08月04日
目次

Azure IoT Hubとエッジデバイスの間でメッセージを送受信する

# はじめに
AzureのIoTデバイスにエッジデバイスを登録して、Azure IoT Hubとエッジデバイスの間でメッセージを送受信する方法を紹介します。
エッジデバイスにランタイムをインストールすることなく、手軽にメッセージの送受信を行うことができます。
(エッジデバイスにIoTEdgeランタイムをインストールしてAzureと接続する方法は[こちら](https://qiita.com/Yokogawa_Mita/items/f7996d539b29618d7159)をご覧ください。)

# 環境
動作確認済デバイス(OS)

– e-RT3 Plus F3RP70-2L[^ert3](Ubuntu 18.04 32bit)
– Raspberry Pi 4 Model B (Ubuntu Server 20.04 32bit)

これらのデバイスでは armhf アーキテクチャのパッケージが動作します。

# エッジデバイスのクラウドへの登録
## IoT Hubの作成
AzureにサインインしてIoT Hubを作成します。
手順は[こちらの記事の「IoT Hubの作成」](ht

元記事を表示

Matplotlibでダークモード対応の図をいい感じに作る

Matplotlibの表示要素に白色のボーダーを追加することで、同一の画像ファイルでライトモード(白背景)とダークモード(黒背景)の両方で見やすい表示となる作図方法をまとめました。以下の例のように、図の背景を透明にしても線やテキストが黒背景に埋もれず、そこそこ見やすい形で両立できるようになります。

![darkmode-compatible-figure-light.png][light] | ![darkmode-compatible-figure-dark.png][dark]
:—: | :—:
ライトモード(白背景)での表示 | ダークモード(黒背景)での表示

[light]: https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44000/8fc1a286-8bae-5c49-1407-709dc8dfc3d6.png
[dark]: https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44000/ea13f77f-f571-01

元記事を表示

[Ubuntu]pyenvでPythonをインストールしようとするとzlibなどがエラーを起こすのを解決した

pyenvをど使って新し目のPython(ex. 3.9.6)をインストールするとビルドに失敗することがあります。

* zlib関連のエラーが表示される例
* “Successfully installed pip-21.1.3 setuptools-56.0.0” と一見成功したように見えて BUILD FAILEDと表示される例
* `/tmp/python-build.*.log` を確認するとエラーの痕跡があります
* `curses.h`, `ffi.h` が見つからずにコンパイルが中断した形跡があります
* 次のモジュールのビルドが失敗しています
* _ctypes
* _curses

“`text:/tmp/python-build.*.log
building ‘_curses’ extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -I

元記事を表示

初心者がデータサイエンス100本ノック(構造化データ加工編)をやってみた part3

この記事はデータサイエンスを勉強しながら、データサイエンス協会が提供するデータサイエンス100本ノック(構造化データ加工編)を解く過程を自分用にまとめたものです。

 P-001~P-016 [part1](https://qiita.com/pyon/items/c208e585e0cdfabc58bd)
 P-017~P-022 [part2](https://qiita.com/pyon/items/73bf9e8fe75f807aeea8)
 P-023~P-031 [part3](https://qiita.com/pyon/items/948ca309c7985fa2e855)

+ `groupby()`
+ `agg()`
+ 最大値 `max()`
+ 最小値 `min()`
+ 平均値 `mean()`
+ 中央値 `median()`
+ 最頻値 `mode()`
+ apply()
+ 分散 `var()`
+ 標準偏差 `std()`

# P-023 `groupby()`, `agg()`
“`python:p023.py
df_receipt.grou

元記事を表示

FizzBuzz やってみた

## はじめに

非推奨文章.
今日たまたまQiitaに怪文書乗せると僕がつっつくよ?(意訳)というTweetと,
転職市場ではFizzBuzzがフィルターになるという噂を聞き眠い頭で書いた怪文書.

追記しやすいように,言語別にやっていく.

出力はすべて閲覧用に

“`text
(1, 1) (2, 2) (3, FIZZ) (4, 4) (5, BUZZ) (6, FIZZ) (7, 7) (8, 8) (9, FIZZ) (10, BUZZ)
(11, 11) (12, FIZZ) (13, 13) (14, 14) (15, FIZZBUZZ) (16, 16) (17, 17) (18, FIZZ) (19, 19) (20, BUZZ)
(21, FIZZ) (22, 22) (23, 23) (24, FIZZ) (25, BUZZ) (26, 26) (27, FIZZ) (28, 28) (29, 29) (30, FIZZBUZZ)
(31, 31) (32, 32) (33, FIZZ) (34, 34) (35, BUZZ) (36, FIZZ) (37,

元記事を表示

Python Seleniumによる自動ブラウザ操作

#Python Seleniumによる自動ブラウザ操作
 HTMLやJavascriptで提供されるサービスはユーザー目線では使いやすく便利である。SaaSなどで提供されるクラウド上のソフトウェアのユーザーインターフェイスにはブラウザがよく使われ、Microsoft EdgeやGoogle Chromeなどがよく使われている。
 今回は、Chromeを自動操作することでブラウザ上で提供されるサービスを自動化する方法を紹介する。

##自動ブラウザ操作とは
 ブラウザで表示されるWeb siteは、主にHTMLとCSS,Javascriptで書かれており、プログラミング言語で書かれているわけなので、それぞれの画面機能はあるルールに基づいている。例えばHTMLには属性というものを各構造に指定することができ、主にid,class,div,titleで各構造に固有の代名詞を付与することができる。自動ブラウザ操作はそのルールを指定し、命令を与えることでブラウザを操作する。

“`html
属性の例

りんご

りんご

<

元記事を表示

Discordでラジオを流して友達とリモートラジオ体操しよう!(AM6:30)

初投稿です!
よろしくお願い致します。

#概要
**リモートラジオ体操集会で健康な夏を過ごそう!**

– Pythonを用いてボイスチャンネルでラジオ(.m3u8)を再生するためのDiscord botを作る
– ~~GCEの無料枠~~ AWS EC2の1年間無料枠で常時動かす
– 毎日ラジオ体操が始まる6:30までにボイスチャンネルに集まる(最難関)

#はじめに(経緯)
**※ポエムなので読み飛ばしてもらってOKです。**

ある日、このようなツイートが僕の目に入りました。

kaggleで勝つためにpython文法の弱いところを補強してみた

# オブジェクトとは
– pythonにおける「オブジェクト」とは、同一性、データ型、値の3つの要素がある
– 同一性:コンピュータのメモリのどこに格納されているかで決まり、変化しない
– データ型:データがどんな性質を持っているかグループ分けしたもの。データ型が持つ性質は変化しない
– 値:それが表すデータのこと
– “hello world”は、hello worldというstrデータ型の値を持つオブジェクト。

# 関数

“`python
def f(x):
return x + 1
z = f(5)
if z == 5:
print(‘z is 5’)
else:
print(‘z is not 5’)
“`

“`python
def f():
return 1 + 1
result = f()
if result == 5:
print(‘result is 5’)
else:
print(‘result is not 5’)
“`

result is not 5

“`python
def f

元記事を表示

初心者がデータサイエンス100本ノック(構造化データ加工編)をやってみた part2

この記事はデータサイエンスを勉強しながら、データサイエンス協会が提供するデータサイエンス100本ノック(構造化データ加工編)を解く過程を自分用にまとめたものです。

 P-001~P-016 [part1](https://qiita.com/pyon/items/c208e585e0cdfabc58bd)
 P-017~P-022 [part2](https://qiita.com/pyon/items/73bf9e8fe75f807aeea8)
 P-023~P-031 [part3](https://qiita.com/pyon/items/948ca309c7985fa2e855)

+ ソート `sort_values()`
+ データフレームの結合 `pd.concat()`
+ 順位付け `rank()`
+ 長さや要素数を取得`len()`
+ ユニークな要素を抽出 `unique()`

# P-017 `sort_values()`
“`python:p017.py
df_customer.sort_values(‘birth_day’).head(10)

元記事を表示

超初心者がMySQLに保存した1分足データを取得してみた

## 参考

以下で保存したデータを今度は取得してみる

https://qiita.com/emilia/items/ea854db50657020f9832

## コード

“` select_histdata_from_table.py
import mysql.connector as mydb
import pandas as pd

conn = mydb.connect(
host=’hostname’,
port=’3306′,
user=’user’,
password=’pass’,
database=’fx’
)

conn.ping(reconnect=True)
cursor = conn.cursor()

df = pd.read_sql_query(sql=’select * from usdjpy where date between “2021-01-01” and “2021-03-31″‘, con=conn)

df[‘date’] = pd.to_datetime(df.date)
df.set_i

元記事を表示

Apache2.4 (Ubuntu) + Python (Flask) + uWSGI で Python アプリを Web サーバで動かす

今回はタイトルの通り、Ubuntu20.04 LTS 上で動く Apache2.4 で uWSGI を用いて Python アプリを Web サーバで動かす手順について説明します。
Apache の記事を見ると、CentOS などの RedHat 系の Linux OS の記事はたくさん出てくるのですが Ubuntu でやっているような記事はあまり見当たらず、さらに WSGI の導入に大変苦労したので、記事を執筆しました。

#WSGI とは
WSGI とは、Python アプリと Web サーバをつなぐような役割を持ちます。一応 Flask 単体でも Web サーバ上で動かすことは可能ですが、Development 用と明確に記載されているため WSGI を使用する必要があります。詳しい話は [uWSGI入門](https://www.python.ambitious-engineer.com/archives/1959) や [WSGI を使う場合と使わない場合](https://qiita.com/hoto17296/items/e4e9d9b5cdd711271020) などの

元記事を表示

超初心者がHistdata.comから取得したローソク足データをMySQLに保存してみた

毎回CSVから読み込むよりデータベースから読み込んだほうが早そうだったのでMySQLに保存してみました。

## 参考

Histdata.comからのデータ取得は以下でやってます。

https://qiita.com/emilia/items/28e9875d273c8f052cbd

PythonとMySQLの連携は以下あたりを参考

https://qiita.com/hoto17296/items/0cfe7cdd3c47b69cc892

## Code

### テーブルを作成する

データベースはあらかじめ作成しておく。

“` sql
create database fx;
“`

通貨ペアごとのテーブルにする。今回はUSDJPY、GBPJPY、AUDJPY、EURJPYの4つを選択。テーブルのインデックスはidにしておくことにした。

“` create_histdata_table.py
import mysql.connector as mydb

try:
conn = mydb.connect(
host=’hostname’,

元記事を表示

ALAE (敵対的潜在空間自己符号化器, Adversarial Latent Autoencoder) を使ってみた

# 概要
StyleGANの潜在空間次元分離性(PPLで表すDisentanglement)を大幅に改善した上に、
1024xの高解像度の画像を生成できるメリットを保つ画像生成手法、ALAE。

これを**応用する**ために必要なことを調べながら一通りやってみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1718678/25f92f5e-87d0-03b0-b1f6-aed2da8ebb81.png)
### 論文のFig.9で選ばれたサンプルは実際どう再構築されるのかを知るために生成した画像

# ALAEを理解する

応用に関わるいくつの論文を説明します。

## Progressive Growing
(Style)ALAEの構造はStyleGANから改善され、StyleGANはさらにProgressive Growingの論文の構造にStyleを入れたものなので、まずProgressive Growingの論文を理解する必要があります。

https://arxiv.

元記事を表示

決定木分析をシンプルに理解する

### 目次
1. [決定木分析とは](#決定木分析とは)
1. [分類の方法](#分類の方法)
1. [パラメータ学習の仕組み](#パラメータ学習の仕組み)
1. [重要度の計算](#重要度の計算)

# 決定木分析とは
決定木分析とはデータ群をカテゴリ分けする「分類問題」に対する手法の一つです。
例えばアヤメデータセットでは、変数であるsepal_length, sepal_width, petal_length, petal_widthを元にアヤメの種類を分類します。

決定木分析は以下のように変数一つ一つについて閾値との大小によってどんどん細かくデータセットを分けていく手法です。

元記事を表示

Pythonでのclassmethodの使い方

# なぜclassmethod, staticmethodを使うのか
可読性があがる

# classmethod
まず,下記のような給料に係数をかけるようなクラスを考えます

“`python:classmethod.py
class Employee:

raise_amt = 1.04

def __init__(self, pay):
self.pay = pay
self.apply_raise()

def apply_raise(self):
self.pay = int(self.pay * self.raise_amt)

if __name__ == ‘__main__’:
salary = Employee(100)
print(salary.pay)
# 104
“`

次に,クラス変数raise_amtにアクセスします

“`python:クラス変数を変更
if __name__ == ‘__main__’:
Employee.raise_amt = 1.05

元記事を表示

Twitterのフリートが廃止されたので普通のツイートをそれっぽくする

#フリートとは?
>Fleetは、Twitterの活用や、Twitterでのコミュニケーションをこれまでにない方法ですぐに行える機能を提供します。Fleetで共有した内容は、24時間が経過すると表示されなくなるため、ふとした思いつきやうつろう気持ちを共有できます。一時的な個人的考えをフォロワーと共有でき、他の一般ユーザーからの反応が伝わることもありません。Fleetの作成者は、自分のFleetをクリックし、下部に表示される既読テキストをタップすると、ツイートを非公開にしているアカウントを含め、誰が自分のFleetを閲覧したかがわかります。

– 24時間が経過すると表示されなくなる
– つまり、24時間に1回まとめて削除すればいい

##フリートの欠点
– コメント機能が無く、DMで通知される
– 絵文字を送っても、DMで通知される
– 普通のツイートと同じく、FavとRTとリプライ機能はやはり欲しい

##ツイートをフリート化するには?
– 「残すツイート」と「消えるツイート」を明確化する
– 残すツイートの条件
– Favがある
– RTがある
– リプライ

元記事を表示

CAPTCHA画像の文字をOCRエンジンで読み取ることができるか

## 目的
– OCRを勉強中、下記のようなCAPTCHA画像の文字を読み取ることができるか気になったので試してみました

![captcha.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226953/897609fe-898e-04ed-bb38-e1e7190d30bd.png)

## 環境
– Python 3.8
– PyOCR
– Tesseract
※下記の記事を参考に導入しました。ありがとうございました。

https://qiita.com/nabechi6011/items/3a367ca94dbd208efcc7

## コード

“`python
from PIL import Image
import sys
import pyocr
import pyocr.builders

# OCR群を取得
tools = pyocr.get_available_tools()
# OCRがなければエラー
if len(tools) == 0:
print(“No OC

元記事を表示

wxPython + openpyxl で Excelににほんの少し似たソフトを作ってみる

#何をつくるか
Excelに似たソフトといっても、セルの書式とかシートとかはどうでもよく、ただ文字列の読書きができるような
本当にいらないソフトです。
数値でも文字列と認識しちゃうし、セルのサイズとか結合とかもどうでもよっくなっています。

#ソースコード

wxPython・openpyxlをまだインストールしていない場合はインストールしてください。

“`Python:excel.py
import sys
import wx
import wx.lib.scrolledpanel as scrolled
import openpyxl

class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,”Excel(大嘘)”)
panel = scrolled.ScrolledPanel(self,-1,size=wx.Size(self.GetSize()[0],self.GetSize()[1]))
panel.SetupScroll

元記事を表示

Databricksのエンタープライズ向け機能によるMLflowの拡張

[How to Share and Control ML Model Access with MLflow Model Registry](https://databricks.com/blog/2020/04/15/databricks-extends-mlflow-model-registry-with-enterprise-features.html)の翻訳です。

> **注意**
この記事は2020/4に執筆されたものであるため、一部最新の情報で更新しています。

DatabricksのMLflow[モデルレジストリ](https://databricks.com/product/mlflow-model-registry)におけるエンタープライズレベルの新機能を発表できることを嬉しく思います。今やモデルレジストリは、Databricks[レイクハウスプラットフォーム](https://databricks.com/jp/product/data-lakehouse)をお使いの皆様においては、デフォルトで有効化されます。

この記事では、モデル管理における集中管理ハブとしての

元記事を表示

OTHERカテゴリの最新記事