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

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

ROSの勉強 第13弾:Teleop-bot ~ key driver ~

# #プログラミング ROS< key driver>

##はじめに
1つの参考書に沿って,ROS(Robot Operating System)を難なく扱えるようになることが目的である.その第13弾として,key driverを扱う.

##環境
#####仮想環境
|||
|:-:|:–|
|ソフト|VMware Workstation 15|
|実装RAM|2 GB|
|OS|Ubuntu 64 ビット|
|isoファイル|ubuntu-mate-20.04.1-desktop-amd64.iso|

#####コンピュータ
|||
|:-:|:–|
|デバイス|MSI|
|プロセッサ|Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50GHz|
|実装RAM|8.00 GB (7.89 GB 使用可能)|
|OS|Windows (Windows 10 Home, バージョン:1909)|

#####ROS
|||
|:-:|:–|
|Distribution|noetic|
|プログラミング言語|Python 3.8.5|

元記事を表示

Pythonでiniファイルを読み込むライブラリ「configparser」

Pythonのライブラリ「configparser」について、備忘のために示す。

# 実行環境

Python 3.7.3
Mac OS 10.15.5

# 設定ファイル(iniファイル)

iniファイルとは設定ファイルのことで、設定値を “キー=値” の形式で書き記しておき、コードを実行するときに読み込ませて利用するファイルである。

設定ファイルの形式は以下の通り。

“`
[セクション名1]
キー1=値1
キー2=値2
・・・

[セクション名2]
キー3=値3
・・・
・・・
“`

セクション毎に区切り、その中にキーと値の組み合わせを書いていく。
セクションは何個書いても良い。

シェルスクリプトなどでは単純にこのiniファイルを実行すれば値を読み込めるが、Pythonでは専用のライブラリがあり、それが「configparser」である。

# configparserモジュール

この設定ファイルに対し、configparserを使って読み込みを行ってみる。

まずは、python内でconfigparserをインポートし、configparserオブジェクトを

元記事を表示

VBAユーザがPython・Rを使ってみた:データフレーム(続)

# はじめに

機械学習の勉強を始めたVBAユーザです。
備忘録としてPython・Rの文法をVBAと比較しながらまとめています。

以前の[記事](https://qiita.com/swathci/items/3489b9886799e2f61c4f)でデータフレームについて書きましたが、今回はその続きで、Rの[`dplyr`](https://dplyr.tidyverse.org/) というパッケージについて書きます。
前回と同じ項目について、Pythonの[`pandas`](https://pandas.pydata.org/docs/index.html)とRの[`dplyr`](https://dplyr.tidyverse.org/)を比較したいと思います。

**目次**

– [データフレーム](#データフレーム)
– [データフレームへのアクセス](#データフレームへのアクセス)
– [指定した列へのアクセス](#指定した列へのアクセス)
– [指定した行へのアクセス](#指定した行へのアクセス)
– [指定した行と列

元記事を表示

PyTorch Lightningで予測時に”Missing key(s) in state_dict: …” のエラーが出た時の対応メモ

#はじめに
PyTorch Lightningで保存されたモデルを使って予測をしようとした時に、“`Missing key(s) in state_dict:…“`のエラーが出てハマった話

# コードとエラー内容
## コード
“`python
model = GraphConvModel.load_from_checkpoint(args.model)
“`

## エラー
“`
model = GraphConvModel.load_from_checkpoint(args.model)
File “C:\Users\kimisyo\.conda\envs\OpenChem\lib\site-packages\pytorch_lightning\core\saving.py”, line 158, in load_from_checkpoint
model = cls._load_model_state(checkpoint, strict=strict, **kwargs)
File “C:\Users\kimisyo\.conda\en

元記事を表示

dlibとOpenCVのそれぞれで顔検出した結果比較

## はじめに
google-image-downloadで取得した画像ファイルから、学習用の顔画像をファイルに保存するために、OpenCVのHaarCascadeとdlibのface Detetor(HOG)を試して、性能を比較してみました。

## 開発環境
Ubuntu 18.04.4 LTS
Python 3.6.9
oopencv-contrib-python (4.5.1.48)
dlib (19.21.1)

## 比較結果
| |入力画像ファイル数|正しく検出した顔の数|誤検出した数|処理時間|
|—|—|—|—|—|
|OpenCV HaarCascade|468 |278 |8|real 0m28.000s|
|dlib Face Detector(HOG)|468 |841| 9 |real 9m43.149s|
入力画像に含まれている顔の数は様々です。
誤検出したどうかは、切り出し後の画像を目視して確認しました。

## ソースコード
“`
#!/usr/bin/env python3

import cv2
import dli

元記事を表示

WealthNaviサイトにPythonとSeleniumを使ってログインする

WealthNaviのサイトにPythonとSelenium使ってログインする方法を解説します。

※2021/02/23時点の情報です

## 環境
– Windows 10
– Python 3.8
– Selenium 3.141.0

## 全体の処理の流れ
全体の処理の流れについては、下記記事に詳しく書いたのでこちらもあわせて確認してみてください。楽天銀行の例になっていますが、処理の流れは同じです。

[楽天銀行サイトにPythonとSeleniumを使ってログインする](https://qiita.com/yoshi2045/items/2fff5bf5f0fa763f7104)

## WealthNaviでのポイント
全体の処理の流れについては上記記事を参考していただくとして、ここではWealthNaviサイトにおけるポイントを解説します。

### 二段階認証設定を有効にしている場合はログインできない
WealthNaviにはセキュリティ強化のため二段階認証を設定することができます。

>2段階認証とは、WealthNaviにログインする際、ログインIDとパスワードに

元記事を表示

PyTorch のネットワーク?クラス?ポイント 5 個抑えたら大丈夫!(Python 基礎_特にクラス_を飛ばして学び始めてしまった方向け)

Python で最初につまづくポイントの 1 つがクラスだと思います。
私は最初はずっと Keras(Functional API) でディープラーニングを実装していました。
そしてクラスの理解を疎かにしたまま PyTorch へ手を出し、苦労した経験があります。
きっと同じような経験をした方もいるのではないでしょうか(Keras でも Subclassing API に慣れている方は大丈夫かな。)

また、機械学習・ディープラーニングを学び始めてクラスを使ったネットワーク構築でつまづいた方も多いかと思います。

## 本記事がおすすめの方
– 最近、機械学習、ディープラーニングについて学び始めた方
– TensorFlow、Keras を利用していたが PyTorch も挑戦してみたい方
– PyTorch でネットワークを組んでみたがクラスの理解につまづいた方

クラスの最低限の基礎を習得して、フレームワークを上手く使いこなせるお役に立てれば幸いです。

PyTorch では一般的にクラスを用いて(オブジェクト指向プログラミングで)ネットワークを組んでいきます。
[オブジェクト指向

元記事を表示

Pytorchで乱数生成状態の保存

例えば、一定時間でジョブが停止してしまうような計算サーバーで、
一定時間内に終わらない学習を行う場合、チェックポイントをとり、
新しいジョブを投げてチェックポイントから学習を再開することになる。

この時、例えは`DataLoader`で`shuffle=True`に設定している場合等は、
ジョブ再開時に乱数が初期化されてしまい学習の再現性が担保されなくなってしまう。

本記事には乱数の状態を保存することで学習再開時の再現性を担保する方法を記す。

# PytorchにおけるRandom Stateの保存

Pytorchにおいて乱数の生成状態は次のように一時保存と読み出しできる。
(Python標準モジュールの`random`を使用しない場合は削っても問題ないです。)

~~~python3
import random
import torch

def save_random_state(file_path):
random_state = random.getstate()
torch_random_state = torch.random.get_rng_sta

元記事を表示

Qiita 1日トレンドスクレイピング (Python)

## はじめに
前回の[Pythonでのスクレイピング](https://qiita.com/FukuHiro/items/01e49118192080a527cd) でスクレイピングするための基礎的な文法をまとめたので、今回はQiitaの1日トレンドのタイトルとそのURLをPythonでスクレイピングしてみました。

## 対象者
– Pythonを使ってWebページをスクレイピングしてみたい方
– Python初学者の方

## サンプルのコード
“`python:app.py
import requests
from bs4 import BeautifulSoup

def get_qiita_trend():
”’Qiita 1日トレンドスクレイピング”’
load_url = requests.get(“https://qiita.com/”)
soup = BeautifulSoup(load_url.text, “html.parser”)
elems = soup.find_all(‘article’, class_=”css-8

元記事を表示

株価予測モデルの構築(Youtubeの解説版)

#概要
Youtubeで
エンジニアチャンネルさん(https://www.youtube.com/channel/UCMMjv61LfBy5J3AT8Ua0NGQ)
が株価予測をしていくら儲かるかという面白い企画をしていました。

どんなモデルを考えていたのか気になったので、コードを追って解説版を作ることにしました。

#株価データ
下記のサイトは銘柄コードを入れるだけでCSVファイルをダウンロードできます。いくつもの企業の株価を10年分とか集めるなら、SeleniumとBeautifulSoupを使ってスクレイピングすればいいのですが、これ系の話は今回置いといて、、
https://kabuoji3.com/stock/

適当な企業の株価データをダウンロードしました。(2019,2020,2021年のデータを1社のみ)

#コード

####ライブラリ

“`python
from glob import glob
import pandas as pd
import numpy as

元記事を表示

webスクレイピングを学んだ記事を誤って削除してしまったので、コードの供養をします

つい4時間前に帰宅してから
ずっと記事を書いていたのに
誤って削除をしてしまいました…
ので、コードの供養がてら記事を掲載します…

ポケモンのバトルデータを掲載しているサイトから
ランキング形式で表示されている値をスクレイピングして出力するものです。

引数にポケモンの名前を与えてやると
図鑑番号を検索して、URLに図鑑番号が入るので
うまいことページが拾えます。

“`main.py
import sys, requests
import tkinter
from bs4 import BeautifulSoup
import os
import psycopg2
from psycopg2.extras import DictCursor

DATABASE_URL = XXXX
reply_message = “”
poke_name = sys.argv[1]

# DB接続
def get_connection():
return psycopg2.connect(DATABASE_URL)

# ポケモン名の問い合わせを行い、完全一致・部分一致する

元記事を表示

Vue.js POSTでpythonプログラムを動かしてみた

# やってみた
環境はAWS EC2 Amazon linux2を使う。そこでDockerでApache2を起動する。
公式ドキュメント
https://jp.vuejs.org/v2/cookbook/using-axios-to-consume-apis.html
を見てみたが全然わからなかった。

## Dockerfile

– Apache2でWebページ公開
– run.sh でApache2起動
– sample.py の権限を緩めないとPOSTは`500 Internal Server Error`で失敗する

サーバーエラーレスポンス一覧
https://developer.mozilla.org/ja/docs/Web/HTTP/Status

“`Dockerfile
FROM ubuntu:18.04

COPY ./src/index.html /var/www/html/
COPY ./src/sample.py /var/www/html
COPY ./run.sh /root/

RUN apt-get update && \
apt-get –

元記事を表示

PHPで暗号化した情報をGoogle Colab(Python)で復号する

Google Colabでインターネット上にある情報にアクセスできるのは便利だ。個人情報や機密情報をインターネット上に置くのはもってのほかだが、インターネット上に公開して問題ないが第三者に利用されたくないので暗号化しておくといった場合があるかもしれない。(というか、このあたりは自己責任で)

まず、PHPで暗号化して出力する方から。AES256(CBCモード)で暗号化する。

“`php
$message = “Hello”
$plaintext = sprintf(“%s %s”,date(“Y-m-d”),$message);
$cipher = “aes-256-cbc”;
$ivlen = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivlen);
$key = “12345678901234567890123456789012”;
$ciphertext_raw = openssl_encrypt($plaintext,$cipher,$key,$options=OPENSSL_

元記事を表示

APIを使用し、PythonからInstagramの情報を取得する方法

#APIを使用し、PythonからInstagramの情報を取得する方法

“`python:instagram.py

from instagram_basic_display.InstagramBasicDisplay import InstagramBasicDisplay

instagram_basic_display = InstagramBasicDisplay(app_id =’********’, app_secret=’**********’, redirect_url=’https://localhost:8080/’)

#ig_codeにはredirect_urlに記載されているcodeが入る
auth_token = instagram_basic_display.get_o_auth_token(ig_code)

#auth_tokenから取得したaccess_tokenが代入される
instagram_basic_display.set_access_token(auth_token[‘access_token’])
ig_profile = in

元記事を表示

schedule_interval=Noneの場合はnext_execution_time=prev_execution_time=execution_time

# schedule_interval=Noneの場合、next_execution_timeはどうなる?

Airflowのデフォルト変数には `next_execution_time` という、次の実行時の `execution_time` が格納される変数があります。
これはDAGがスケジュール設定されている(schedule_intervalがNoneではない)ときに意味のある値なのですが、スケジュール設定されていない(schedule_intervalがNoneである)ときにどうなるか調べました。

# 確認したバージョン

* Airflow 1.10.9

# 確認手順

schedule_interval=NoneのDAGを作り、Airflowコンソール上から手動実行する。

# 結果1: schedule_interval=Noneの場合、next_execution_timeはexecution_timeと同じ値になる

スケジュール設定がない以上次の実行も何もないのでNoneが入るのかなと思いましたが、意外にも `execution_time` と同じ値が入ってい

元記事を表示

cassavaコンペの振り返り

![スクリーンショット 2021-02-21 19.43.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632106/fd3503bb-9957-289b-2abd-b265f6f6d801.png)

こんにちは。ユウキ|Kagglerです。先日、自分が参戦していたKaggleのcassavaコンペが終了しました。参加されていた皆様、お疲れ様でした。そしてメダルを獲得された皆様、おめでとうございます。
今回も、前回に引き続きコンペの振り返りをしていこうと思います。(前回はMoAコンペに参加しました。今回の取り組みは前回の反省点も踏まえております。[ここ](https://qiita.com/Yuki_Kaggler/items/9271755b65c704733292)から見れますので、お時間が許すならばご覧になってください。)

## 目次
– 最終結果
– 手短に自己紹介
– cassavaコンペについて
– 具体的な取り組み
– その他の工夫(主にkaggl

元記事を表示

The PEP 8 Song

? The PEP 8 Song ?

元記事を表示

[Python3] 正規表現で、括弧で括ったところの直後を数字に置換

**Python 3.7.3** で動作確認

“`python
import re

url = “https://www.example.com/aaa/bbb/ccc?x=123&y=456&z=789”
re.sub(r”(?Phttps://www\.example\.com/aaa/bbb/ccc\?x=123&y=)\d+(?P&z=789)”, r”\g0\g“, url)
# “https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789”
“`

`https://www.example.com/aaa/bbb/ccc?x=123&y=456&z=789`
のような文字列の`456`を`0`に変えて、
`https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789`
のようにしたくなりました。

いつもの調子で置換後を`r”\10\2″`と書いたところ、「`\1`と`0`と`\2`」ではなく「`\10`と`\2`」と解釈されたのかエラーが出

元記事を表示

ESP32でBLEの実装作業【ペリフェラルとセントラル】

# はじめに
今回はESP32でBLEの実装作業の最終回として、本格的なBLEでESP32同士の送受信を紹介します。本文にはubluetoothを使って一つのESP32をペリフェラル(peripheral)ともう一つのESP32をセントラル(central)でBLE通信を構築しました。
前回:
[ESP32でBLEの実装作業【スキャン】](https://qiita.com/C0118185/items/753ca056443eca574be4)
[ESP32でBLEの実装作業【ブロードキャスト】](https://qiita.com/C0118185/items/32da60974e1593e0587b)
# 環境
– IoTデバイス(ESP-WROOM-32)
– ファームウェア(MicroPython1.13)

この記事の作業を始める前にmicropythonのバージョンが1.13であることを確認してください。確認手順は下にある図を参考してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazona

元記事を表示

DjangoとReact redux TypeScriptを使ってオリジナルアプリを作ってみました(TwitterAPI)その2

##前回までのあらすじ
Djangoでアプリのデータベースを作成とsettings.pyを編集した。

DjangoとReact redux TypeScriptを使ってオリジナルアプリを作ってみました(TwitterAPI)その1↓
https://qiita.com/kenshow-blog/items/8d2768b9f4b53cdd4dfd

今回はviewの部分を構築し、djangoを使ったAPIを完成させる
##この記事でやること

・ユーザー周りのAPIをdjango-rest-frameworkで完成させる
・TwitterAPIを叩いて画像を収集するAPI(media_api)を完成させる

この記事で外部APIを使ってどのようにバックエンドを構築していくのかを参考にできると思います

#アプリ構造

git↓
https://github.com/kenshow-blog/twitter

バックエンドディレクトリ構造図(django)

““““
twitter
├── auth_api #ユーザーのアカウントを管理するところ
│ ├── __in

元記事を表示

OTHERカテゴリの最新記事