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

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

Arduino UNOの6ch ADCをプロットしグラフ表示する(1)

前回投稿した記事で使ったArdipyと選択できるグラフ表示を使い、Arduino UNOに搭載された6ch ADC(アナログデジタルコンバータ)をグラフ表示するアプリを作りました。
6ch同時取得と、プロットするADCを選択できる仕組みを作る事を目指します。
組み込みのマイコンのプログラムをしているのであれば頻繁に使うADC(アナログデジタルコンバータ)に関しての説明は別サイトに任せておいて、とりあえず電圧をリアルタイムに表示する装置だと思ってください。

Arduino UNOとWindows PC(Python)とのインターフェースには下記を使います

https://qiita.com/Nomisugi/items/08ff9613b670bb326b82

Arduino UNOから取得したADCの表示には下記を使います

https://qiita.com/Nomisugi/items/ecb7385f2562c0a6b953

前回の記事からの続き。リアルタイムプロットで表示ラインまで選択できるようなグラフができましたが、さらにX軸とY軸を変更するような仕組みを入れてみます

元記事を表示

Python Enum ベストプラクティス

PythonのEnumについての一番シンプルな方法を紹介します。
(他のどの記事よりも分かりやすいはず・・・)
これだけ理解すれば困ることはほとんどありません!

## Enumとは

定数を列挙して、ステータス管理などに便利です。
C#などを経験している方はPythonでもEnumを使いたくなりますよね。

## 公式ドキュメント

公式ドキュメントでは、
Enum, IntEnum, Flag, IntFlag, FlagBoundaryなどありますが、基本の「**Enum**」だけで十分だと思います。
(コードのシンプルさを考慮してもEnumだけが良いです)

> [Enum 公式ドキュメント](https://docs.python.org/ja/3/library/enum.html)

## ソースコード

Enumは説明よりコードを見る方が手っ取り早いので、さっそく紹介します。

Enumの名前と値の一覧を取得したいときもたまにあるので、
Classmethodとして実装しています。

### Case1 ソースコード

“`python
from enum impor

元記事を表示

【TensorFlow2.x系】Subclassing APIを用いて今更MNIST

#はじめに
TensorFlowは機械学習用のライブラリであり、近年発表された論文のモデル等も実装してくれていたりします。タイトルにあるように、現在は「TensorFlow2.x系」の開発が進められています。過去には「TensorFlow1.x系」なるライブラリが提供されていましたが(今でも提供されているが)、慣れないと扱いが難しい記述方式でした。
TensorFlow2.x系になり、実装方法が「Sequential API」「Functional API」「Subclassing API」の三種類になりました。所感ですが、簡単に実装したい場合は「Sequential API」、1.x系に慣れている人は「Functional API」、色々と拡張したい人は「Subclassing API」を用いて実装するのかな〜という感じです。研究には「Subclassing API」を用いるため、この記事ではSubclassing APIを用いてMNISTに挑戦したいと思います。

#実装

###インポートからパラメータ設定
利用するライブラリをあらかじめインポートしておきます。

“`pyth

元記事を表示

HomebrewでPython3を入れたときにpip3が入らなかったら

Homebrewでpython3を入れようとした

“`
$ brew install python3
 (中略)
==> /usr/local/Cellar/python@3.9/3.9.7_1/bin/python3 -m ensurepip
Last 15 lines from /Users/*/Library/Logs/Homebrew/python@3.9/post_install.01.python3:
 (中略)
subprocess.CalledProcessError: Command ‘[‘/usr/local/opt/python@3.9/bin/python3.9’, ‘-c’, ‘\nimport runpy\nimport sys\nsys.path = [\’/private/tmp/tmp7r1s7_i7/setuptools-57.4.0-py3-none-any.whl\’, \’/private/tmp/tmp7r1s7_i7/pip-21.2.4-py3-none-any.whl\’] + sys.path\nsys.argv[1:] = [\

元記事を表示

PyAutoGuiでマウス操作を自動化してみた

#はじめに

私自身Qiitaは疎か記事を書くこと自体が初めてなので、あんたここヤバいよって言うのがあれば教えて頂けると助かります。
本記事ではPyAutoGUIを使った**マウス操作(カーソルの移動、クリックなど)の自動化**の方法を簡単に紹介します。
プログラミング初心者の方や、難しいことはせずとにかくマウス操作の自動化が出来ればいいという方の助けになればいいと思っています。

#目次

1.環境・必要なもの
2.PythonのDL・インストール
3.PyAutoGUIのインストール
4.コーディング・実行
5.マウス関連の関数紹介
6.ペイントツールで遊ぶ
7.まとめ

#1.環境・必要なもの

さっそく準備をしていきましょう。
**win10 64bit**環境で下記のものを使用して開発しています。

・**Python 3.9.0**(導入説明あり)
・**PyAutoGUI**(導入説明、使用方法説明あり)

#2.PythonのDL・インストール

まずはPythonをダウンロードします。

下記のPythonの公式サイトのリンクに飛び、Pythonをダウンロードしましょ

元記事を表示

Pandasの基礎の基礎

#Pandas基礎の基礎
##記事の目的
pandasは、テーブルデータの処理に特化したpythonのモジュールです。ここでは、pandasの基本的な使い方を、備忘録として整理しました。

###1. データの取り込み
試しに、以下のようなcsvファイルを読み込んでみます。

“`test.csv
テスト
番号,名前,年齢,身長,性別
1,タカシ,65,178.2,男
2,ヨシミ,33,165.1,女
3,ジロウ,18,180.2,男
4,サブロウ,15,160.3,男
“`

データの取り込みには、pandas.read_csv( ) もしくは、pandas.read_table( )を使います。この二つの関数、デフォルトの区切り文字が異なるだけで、その他の中身は同じのようです。

“`python:read_data.py
import pandas as pd
#
data=pd.read_table( “test.csv”,
skiprows=1,#スキップ行数の指定
delimiter=”,”,#区切り文字の指定
header=0,#ヘッダー行数の指定
inde

元記事を表示

Linux環境のPythonでmsvcrt的なkbhitやgetchをつくりた~い! ~挫折編~

# はじめに
こんにちは、麻菜結と申します。最近はPythonで外部モジュールに頼らず色々実装してみる縛りプレイのようなものをしているのですが、環境依存の少ないクロスプラットフォームなコードの中でキーボードイベントの取得をする必要が出てきたのでそれに挑戦した記録です。

# どんなものをつくるのか

先ほど`msvcrt`の`kbhit`や`getch`と言いましたが、何を作るのか具体的に示したいと思います。関数名は同じにしたいのであえてラップしたような関数として記述します。

kbhitの方はそのまんまですね。

“`kbhit的なやつ.py
# 呼び出すとキーボードが入力されているかを返す関数。
import msvcrt
def keyboardHit():
return msvcrt.kbhit()
“`

getch的なやつの方は、入力されていたらそのキーを、そうでは無かったら-1を返して欲しい関数です。

“`getch的なやつ.py
import msvcrt
def getKeyboardCharactor():
if keyboardHit():

元記事を表示

言語処理100本ノック 2020 (Rev 2) を完走する(7章-67まで)

言語処理100本ノック 2020年版(https://nlp100.github.io/ja/)をPythonで解いてみています

ソースコードは[GitHub](https://github.com/marzg510/mynlp100py)にて公開してます

本日は「第7章:単語ベクトル」の67.k-meansクラスタリングまで完了しました

## 参考にした記事
– [言語処理100本ノック2020年版を解いてみた【第7章:単語ベクトル 67】](https://www.soh-devlog.tokyo/nlp100-7-67/)
– 他多数

元記事を表示

Google Colabで、変数の型/形状が楽に確認できるようになった【変数インスペクタ】

## Google Colabで、変数の型/形状が楽に確認できるようになった【変数インスペクタ】
Google Colabに変数インスペクタが実装され、楽に変数の型と形状が確認できるようになりました。
下記、画像の左側にある{x}をクリックすると変数インスペクタが表示され、変数の型と形状が確認できます。

これまでは、printコマンドを打って確認しなければいけなかったので、非常に楽になり嬉しいですね。

Google Colabの使い方などは、この本が詳しいのでおすすめです。!
[図解速習DEEP LEARNING(増田 知彰)](https://www.amazon.co.jp/%E5%9B%B3%E8%A7%A3%E9%80%9F%E7%BF%92DEEP-LEARNING-%E5%A2%97%E7%94%B0-%E

元記事を表示

3色電子ペーパーで表示するデータをPythonで作成してみる

#3色電子ペーパーで表示するデータをPythonで作成、ESP32を使って表示してみる

##前の記事

https://qiita.com/ridervance/items/51390f9d6a652bc7fefe

##概要
前の記事で作ったESP32を使った電子ペーパー表示デバイスにおいて、自分で作成したpngファイルをディスプレイ上に表示できるようにします。
画像ファイルからのhexデータ生成については、以下の通りすでに先人がGUIツールを作成されているのを見つけたのですが、自分の環境ではうまく動かなかったため参考にさせていただきつつPythonで実装してみます。

https://github.com/ienaga045/three_color_epaper/

##目的
電子ペーパーの表示領域である250×122のサイズを持つ任意のpngファイルから、黒/白・赤の要素を取り出して表示用RAMに書き込むデータを作成、電子ペーパ上に表示させます。

##実現方式
元々のHATのサンプルプログラムではRaspPi上で画像ファイル読み込み->書き込むデータの生成を行なっていましたが

元記事を表示

【Python】1行でif-elif-else文を実装するコード

あまり必要な機会は無いかもしれませんが、1行でif-elif-else文を実装するコードを書く機会があったのでメモとして残しておきます。

## 複数行でif-elif-else文を実装するコード

“`python
# 複数行の場合(xは既に宣言されているものとします)
y = “”
if x % 2 == 0: y = “偶数”
elif x % 3 == 0: y = “3の倍数”
else: y = “偶数でも3の倍数でもありません”
print(y)
“`
## 1行でif-elif-else文を実装するコード

“`python
# 1行の場合(xは既に宣言されているものとします)
y = “偶数” if x % 2 == 0 else “3の倍数” if x % 3 == 0 else “偶数でも3の倍数でもありません”
print(y)
“`

`真の値、条件式、偽の場合の処理`の順で横につながっていくイメージです。

間に`:`は不要です。

元記事を表示

コンピュータとオセロ対戦25 ~PythonでBitBoard~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/7510e285bd4ba8251b13)

# 今回の目標
今までの機械学習は、まず実行速度の速いc/c++でデータを作成し、ライブラリの豊富なPythonで学習を行うといった方法をとっていました。しかしそれでは学習に必要なデータをパソコン上に保存しなければならず、これが無視できない容量になりそうなのでこの際データ集めもPythonで行うことにしました。
Pythonでのオセロは[10](https://qiita.com/tt_and_tk/items/9c4a6ed37254381a4f1c)で行っていますが、BitBoardを使用していないこと、またクラスでないためデータづくりがしづらそうだと考え作り直しました。
# ここから本編
まず、盤面を記録しておくデータ型としてPythonはint型しか選べませんが、自分の環境ではintは32ビットでしたのでnumpyのint64を使おうと考えました

元記事を表示

【気軽に実現!】FileMakerでIoT|取得したデータを機械学習に利用する方法

# この記事でわかること
– 最強ローコード開発ツール「FileMaker」を使用したIoT・AIシステムの実現方法
– CoreMLの使用方法
– Pythonを利用した機械学習方法

# 対象
– FileMakerを使用していて、Pythonも少しかじった。これから2つを融合して世界を変える方法を探究している人
– FileMakerのCoreML利用に興味がある人

# 今回実装すること
– 取得したデータからモデルを作成し、FileMakerで利用します。
– IoT機器からのデータ取得については[こちら](https://qiita.com/tsumugiya/items/de1cf0493213ad931a49)をご参考ください。
– 機械学習モデルの作成にはGoogle Colaboratoryを使用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184509/5104a98d-0ac4-f367-0ba2-afa0772cf765.p

元記事を表示

Pythonのfor文まとめ

## はじめに

Pythonのfor文は(C言語などの記法を参照している多くの言語とは異なり)少し特殊なため,様々なPythonのfor文をまとめてみます。

※ 本記事は,Python初心者の方にPythonicなコードを知ってもらいたいという目的で書いています。それなりにPythonに詳しい方には新たな発見はないかと思います。予めご了承ください。

## 一番基本

Pythonのforは他の言語で言うforeachのような感じで,リスト(など)から要素を一つずつ取り出して処理するイメージです。

例えば

“`python
for i in [0, 1, 2, 3, 4]:
print(i)
“`
実行結果:

“`
0
1
2
3
4
“`

まあこれなら普通は

“`python
for i in range(5):
print(i)
“`
と書きますね

## インデックスと要素を同時に取得する

例えば,

“`python
s = ‘spam’
for i in range(len(s)):
print(i, s[i])
“`
のようなコ

元記事を表示

状態空間モデルでTeamsレスポンス予測

# 記事について
以前SARIMAXで予測したTeamsのレスポンスデータを利用し、状態空間モデルの構築練習をしてみました。。
状態空間モデルの理論は学習中のため、ここでは理論を一旦置いておき、分析パラメーターを変更しながら、それっぽい予測ができることを一先ずのゴールとしています。

**以前のSARIMAXの記事**
https://qiita.com/ramutarafarm/items/bc6ed907a0a44177672e

**とっても参考になった記事**
https://logics-of-blue.com/python-state-space-models/

:::note info
環境、利用データについてはSARIMAX記事を参照ください
:::

# ローカルレベルモデル
[statsmodels](https://www.statsmodels.org/stable/generated/statsmodels.tsa.statespace.structural.UnobservedComponents.html#r0058a7c6fc36-1)のサイトには13

元記事を表示

困ったことと解決したことメモ_20211111

#pandasデータフレーム抽出がうまくいかなかった

“`python
pd.drop([1:5])
“`
としても何もならない
##解決方法
“`python
pd.drop(range(1,6))
“`
#変数を作りすぎて訳がわからなくなる
全部dfとかresとかにしてしまうと後半死ぬ
##解決方法
面倒くさがらずに、長くなってもいいので、しっかりネーミングする

#S3からCSVを取り込む
色々エラーが出てよくわからなくなる
とりあえずcsvの型はbytesなので下のようにやるとうまくいく
##解決方法
“`python
obj = bucket.Object(object_key_name)
r = obj.get()
b = r[‘Body’].read()
df = pd.read_csv(io.BytesIO(b))
“`

#Unable to import module ‘app’: No module named ‘app’
cloud9で`sam local invoke`を実行すると発生するエラー
##原因
`template.yaml`の

元記事を表示

「matplotlib 色 一覧」で検索するのはもう止めよう

## Abstract

matplotlibで使える色は沢山あります。なので使いたい色を探す際には「matplotlib 色 一覧」と検索される方が多いでしょう。本記事ではコマンドラインに色の一覧を表示させることで、色の一覧確認のためにわざわざブラウザを開く手間を省く[mplcolors](https://github.com/AstroBarker/mplcolors)を紹介します。

## 環境

一応今回の記事の環境を。Pythonを動かせれば大きな違いはないかと思います。

– Windows 10
– Python 3.7.9

もちろんですが、matplotlibが使えなければ意味がありません。念のため注意。

## mplcolors

[mplcolors](https://github.com/AstroBarker/mplcolors)紹介

>Tired of searching “matplotlib colors” every week/day/hour? This simple script displays them all conveniently r

元記事を表示

自分用_anacondaでのtensorflow-gpu仮想環境構築

# コード
conda create –name tf_gpu_NLP tensorflow-gpu=2.3 tensorflow=2.3=mkl_py38h1fcfbd6_0 numpy=1.19.4 jupyter pandas

元記事を表示

ラビットチャレンジ【E資格】 応用数学

#初めに
* 本記事はJDLAのE資格の認定プログラム「ラビット・チャレンジ」における応用数学のレポート記事です。
* 線形代数
* 確率・統計
* 情報理論

#1. 線形代数
線形代数とは**「線型写像の性質について考える数学の分野」**と言えます。
線形代数(行列)は画像処理・3次元データ処理、統計学、量子力学、Googleのサイト評価システムなど、様々な技術や学問がその恩恵を受けています。よって機械学習を習得する上では欠かせない学問領域になるわけです。

##1.1 行列
* 行列とは、
* スカラー(四則演算が可能ないわゆる普通の数)を表のようにしてまとめたもの
* あるいは、ベクトル(大きさと向きを持つ)を並べたものです(行列:ベクトルのベクトル)

* 行ベクトル

$$
x = (x _ 1, x _ 2, \ldots, x _ d) \in \mathbb{R} ^ d
$$

* 列ベクトル

“`math
x = \left(
\begin{matrix}
x _ 1 \\
x _ 2 \\
\vdots \\
x _ d

元記事を表示

LINEBOTを利用して、送信したキーワードの検索上位URL複数を返信するBOT

LINEBOTを利用して、送信したキーワードの検索上位URL複数を返信するBOTを作成してみました。
Herokuにデプロイ

“`Python
from flask import Flask, request, abort

from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
import os
from googleapiclient.discovery import build
import json

app = Flask(__name__)

with open(“secret.json”) as f:
secret = json.load(f)

#GOOGLE_API
ENGINE = secret[“ENGINE”]
KEY

元記事を表示

OTHERカテゴリの最新記事