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

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

ROSの勉強 第17弾:キーボード操作(シミュレーション)

# #プログラミング ROS< キーボード操作(シミュレーション) >

##はじめに
1つの参考書に沿って,ROS(Robot Operating System)を難なく扱えるようになることが目的である.その第17弾として,キーボード操作(シミュレーション)を扱う.

##環境
#####仮想環境
|||
|:-:|:–|
|ソフト|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(pandas)にて省略せずに表示させる対応策メモ【初心者】

Python初心者の私が躓いたポイントを備忘録としてまとめていきます。

Pandasライブラリを使ってcsvを読み込み・表示させる場合がよくありますが、
長すぎると表示が省略されてしまいます。

これだとデータの中身をチェックできないので、省略を解除しすべて表示させることが
重要です。

この方法は以下の通り。

行方向にて省略させずにすべて表示するには以下のコードでOK。

“`python:python
pd.set_option(“display.max_columns”,99999)
“`

同様に行方向にて省略させずにすべて表示するには以下のコード。

“`python:python
pd.set_option(“display.max_rows”,99999)
“`

この時元のデータよりも上で入力した数の方が
大きくないと解除されなかったので注意が必要

参考サイト

https://life-freedom888.com/pandas-shouryaku-none/

元記事を表示

pythonで簡単に顔認証ライブラリ使ってみた

#開発環境
Macbook Air (M1チップ)
anaconda
ANACONDA.NAVIGATORでGUIを使った仮想環境を用いる。
M1チップでもRosetta2で普通に使える。

python 3.7.9
openCVが3.7以降だと失敗した気がする。

numpy 1.19.2
opencv 3.4.2
pillow 8.1.0

#アーキテクチャ
Face_detection
├ face_learner.py (学習用プログラム)
├ face_id.py (認証用プログラム)
├ pos
 └ 撮った正解画像と傘増しした画像
├ pos.txt (正解画像のリスト)
├ pos.vec (正解画像の特徴量を示したベクトルデータ)
├ neg
 └ 不正解画像
├ neg.txt (不正解画像のリスト)
├ haarcascade_frontalface_default.xml (人間の顔認識用xml)
├ cascade
 └ 認証する人の顔認識用xml

不正解画像は自分で適当に集め、listを作成。

“`neg.txt
./neg/neg1.jpg
./n

元記事を表示

Bag of Words Model (BOW) from Zero

It’s common to interpret data in numbers in machine learning, deep learning, and statistical modeling. Particularly in NLP, it is necessary to represent text numerically. There are numerous ways to express text numerically. One of the known techniques is Bag of Words which is known as BOW. We can quickly build a BOW model using Scikit-Learn, NLTK and etc.

For a beginner, I think it’s better to understand the concept under the BOW. So I will implement the BOW model from zero and try to explain

元記事を表示

ブラックジャックを完璧にプレーイングするPythonプログラムを組んで、儲けることができるか検証した結果

タイトルに興味を示していただきありがとうございます。
初めての記事のため読みづらいところがあると思いますが、ぜひ最後まで読んでいただきますと、ブラックジャックのルールや完璧にプレーイングするPythonプログラムの内容について理解していただけると思います。ちなみにPythonを学び始めてあまりたっていないのでクラスのところでとんちんかんなことを言ってる可能性があるので、その場合は指摘をお願いします。

#20万円すった話と結論
では早速結論から申し上げたいと思います。ブラックジャックにおけるチートシートであるベーシックストラテジー(後述)通りの完璧なプレーイングをしても最後には必ず全持ち金が消え去ります。(縦:所持金 横:プレー回数)
![kakezentai.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1138601/d2b9be95-6f71-50c2-bb38-0a5dcb907481.png)

ギャンブルで一攫千金なんて甘い話は本当に存在しないらしいです。しかし著者がこれに気

元記事を表示

Ubuntu に python の opencv をインストール

Ubuntu に python の opencv をインストールします。

なにやら OpenCV の sift が普通に使えるようになったからインストールしてみました。

[SIFTの特許が切れてOpenCV v4.4.0から普通に使えるようになってた話 – Qiita ](https://qiita.com/herr-shigeo/items/ec9abac4212628162598)

ただし、2021年3月1日現在、下記でインストールされるバージョンは 4.2 になります。

今来た3行向けの方

~~~~bash
# pip3 install
sudo apt update ;
sudo apt install python3-pip ;
pip3 –version ;

# opencv install ;
pip install opencv-python ;
pip install opencv-contrib-python ;
dpkg -l | grep libopencv ;
~~~~

####参考リンク
– [pip で OpenCV のインストール – Q

元記事を表示

SIFTの特許が切れてOpenCV v4.4.0から普通に使えるようになってた話

## はじめに
最近、OpenCVを意図せずアップデートしたところ、SIFTを使っているコードで警告が表示されました。その原因は、SIFTの特許が切れて普通に使えるようになったためでした。その時の備忘録です。

## 開発環境
Ubuntu 18.04.4 LTS
Python 3.6.9
opencv 4.5.1
dlib 19.21.1

## 遭遇した警告
OpenCV 4.5.1で以下コードを呼び出したところ

“`python
sift = cv2.xfeatures2d.SIFT_create()
“`
以下の警告が出ました。

“`python
[ WARN:0] global /tmp/pip-build-uyw1ttra/opencv-contrib-python/opencv_contrib/modules/xfeatures2d/misc/python/shadow_sift.hpp (15) SIFT_create DEPRECATED: cv.xfeatures2d.SIFT_create() is deprecated due SIFT tranfer

元記事を表示

AtCoder ABC192 D Python 灰コーダーによる灰コーダーのための解説

#0. はじめに

この記事は、AtCoder ABC192 D問題について、初心者が書く初心者向け解説記事です。言語は、Python3です。

– 公式解説を読んだが。。。わからん。
– 二分探索ってなに?半分にするやつだっけ?
– 二分探索を、この問題でどうやって実装すればいいの?

AtCoder初心者である私は、解説を読んでもこんな感じでした。
まず、二分探索の説明を行い、それを踏まえてD問題の解説を試みます。同じく解けなかったAtCoder初心者の理解の一助になることを目的とします。

二分探索の説明・コードについて、以下の書籍を参考にしました。

>参考文献
増井敏克(2020)『Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量』、翔泳社

####目次

1. 二分探索とは?
2. 二分探索 Pythonコード
3. ABC192 D問題で、二分探索を思いつくには何が足りなかった?
4. ABC192 D問題 Python実装
5. まとめ

#1. 二分探索とは?

二分探索は、探索範囲を半分ずつに狭めていくことで、目的の値を求める探索ア

元記事を表示

Python: 熱力学のパズル問題

# 熱力学のパズル問題
ヨビノリさんの動画で紹介されていた熱力学問題について実験してみた。過去問題集があったので張っておきます。

[物理チャレンジ2008(第1チャレンジ理論問題 第5問)](http://www.jpho.jp/images/pdf/riron-q2008-1.pdf)

では、まず問題を確認していきましょう。

# 問題

 断熱性のよい容器A, Bと熱伝導性の高い容器C, Dがある。容器A, Bにはそれぞれ, 80℃のお茶(ただし,比熱は水と等しいとする)1ℓと,20℃の水1ℓが入っている(ℓはリットルを表す単位記号である)。A, Bは容器C, Dを中に入れられる大きさで,中の液体がこぼれることはない。
 これらの容器は, 次のような使い方ができる。
1) 容器Bに入っている水を全て容器Cに移し,容器Cを容器Aに入れる。
2) 熱伝導によって,しばらくすると,容器Aのお茶と,容器Cの水の温度は等しくなる。
 このとき,
$$(移動する熱量) = (物質の量)×(比熱)×(温度変化)$$
とすると,
$$(容器Aの中のお茶が放出した熱量) = (容器Cの中の水が吸

元記事を表示

Python から gimp を操作する pgimp のインストール(失敗編)

Python から gimp を操作する pgimp のインストール(失敗編)の紹介です。

ことの発端

[GIMP python-fu の不満点 – やってみる ](http://ytyaru.hatenablog.com/entry/2019/12/28/222222#step1)

これを見て、コマンドラインでも python と gimp で遊べたらなあってことでインストールしようとしたときの議事録です。インストールできてません。

まずは Ubuntu に python 2と3 、pip 2と3 をインストールします

python 2と3のインストール

~~~~bash
sudo apt update ;
sudo apt install python3-pip ;
pip3 –version ;
sudo apt update ;
sudo apt install python2 ;
~~~~

pip 2と3のインストール

~~~~bash
curl https://bootstrap.pypa.io/2.7/get-pip.py –output get-p

元記事を表示

[Python] Slack APIを使用してチャンネル内のメッセージを一件だけ残して一括削除してみた

## はじめに
社内で使用している#generalチャンネルの運用を変更することになったため、メッセージを一括で削除してほしいと依頼されました。一件だけ残したいメッセージがあるとのことだったので、一件残しで削除するコードを作成しました。

## 環境
Visual Studio Code
Python3.9.1

## 準備
* python-slackclientのインストール
ターミナルで以下のコマンドを実行します。

“`
pip install slackclient
“`

* ユーザートークンの取得方法
ユーザートークンを取得するには、アプリを作成する必要があります。
アプリ作成は下記の記事を参考にしました。
[Slack API 推奨Tokenについて](https://qiita.com/ykhirao/items/3b19ee6a1458cfb4ba21)
アプリ作成後、ユーザートークンを取得できるようになります。
![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

Pythonからテスト用コンテナを手軽に作成する方法(testcontainers-python)

# 概要
https://github.com/testcontainers/testcontainers-python

pythonコード内でMySQLやPostgres、Seleniumなどのテストコンテナを作成することができる、testcontainersというライブラリがあるらしいというので試してみた結果です。
最初はDocker環境もいらないとかまさかないよね、と思いつつちょっと期待して試しましたが、予想通り、単にどこかにある既存のDockerホストに対して命令するだけだったのですが、それでも手動で上げ下げするよりは楽だと思われます。

対応範囲も広く、以下に対応しています。
– MySQL
– MariaDB
– PostgreSQL
– ElasticSearch
– Oracle DB
– MongoDB

MongoはなぜかReadmeに記載ないですが、以下のように対応しています。
https://testcontainers-python.readthedocs.io/en/latest/database.html#testcontainers.mongodb.

元記事を表示

pyppeteer製のクローラをplaywright-pythonに移行したときのTips

SPA向けのクローラをpyppeteerで実装していたのですが、[playwright-python](https://github.com/microsoft/playwright-python)に移行してみました。

基本的な使い心地はそのままに、細かいところで便利になっている印象だったので、pyppeteerを単純なクローラとして利用しているのでしたら、試してみてはいかがでしょうか。

# ■導入

普通にpip, pipenv, poetry等でplaywright-pythonを入れたあと、`playwright install`でバイナリを取得します。

“`
$ poetry add playwright
$ poetry run playwright install
“`

ただし、これだと`chromium`/`firefox`/`webkit`の全バイナリが入ってしまうので、クローラのように複数ブラウザで動かす必要がない場合は、明示的に指定するのがおすすめです。

“`
$ poetry run playwright install webkit
“`

元記事を表示

pytestでFizzBuzz問題をテスト駆動開発(TDD)

## 分かること
**・テスト駆動開発(TDD)はどの順序で開発すべきか?**
**・テスト駆動開発(TDD)はなぜ失敗をわざと行うのか?**
**・pytestはどう使うべきか?**

## 目次
**1. テスト駆動開発(TDD)について**
**2. Python, Pytestでテスト駆動開発**([FizzBuzz問題](https://wa3.i-3-i.info/word18535.html))

#1. テスト駆動開発(TDD)について
**テスト駆動開発は以下3種のサイクルである。**
(ToDoリストを作成し、簡単な処理から手を付けると良い)

**1. RED(テスト失敗)**
テストコードを作成してテストする。(実装コードを作成してないので失敗する)
**2. GREEN(テスト成功)**
成功するように必要最小限の実装コードを書く。(正しさや綺麗さは考えない)
**3. リファクタリング*

元記事を表示

C – Modulo Summation, D – Flipping Signs

##[C – Modulo Summation](https://atcoder.jp/contests/abc103/tasks/abc103_c)

O(N)
最小公倍数を計算。
その後、最小公倍数-1の値で余りを取得し加算していきます。

“`python:python
import math
import heapq
import itertools
from functools import reduce

def my_lcm_base(x, y):
return (x * y) // math.gcd(x, y)

# main
def main():
N = int(input())
A = list(map(int, input().split()))

g = reduce(my_lcm_base, A, 1)
g = g – 1
res=0
for i in range(0, len(A)):
res += g % A[i]

print(res)

# エントリポ

元記事を表示

Gaussian-Bernoulli RBMの分散学習をちゃんと行う

#Gaussian-Bernouili RBMって
RBMと言えば可視層と隠れ層がBernouili分布に従いますよね。
本題のGaussian-Bernouili RBM(GBRBM)は可視層がGaussian分布で隠れ層がBernouili分布に従うRBMなわけです。
GBRBM学習って分散の学習が上手くいかない〜、とか、分散を1に固定して学習しない記事や実装コードばかり目にするので、
GBRBMを使おうとしてた時に相当困りました・・・(4年前)。
ということでコードを混ぜてGBRBMについて!!!
#
#
###########################################################################
#
#分散の学習について
#
悩んでる人は当時の僕だけじゃないはずですが、
一応前置きすると、可視特徴量の分散をきちんと再現できるわけでは無いです。
あくまで「途中でパラメータが発散してしまう!」などの、学習が破綻するようなレベルの問題をクリアするためのお話です。
#
#
結論から言うと、”学習時にCD法を行う際、きちんと隠れ層

元記事を表示

ディープラーニングのデータセットづくりのためにpythonのpixivpyを使ってタグに一致した画像をダウンロードする。(その3)

#初めに
ganやらcnnやらで二次元の画像のデータセットを作りたくなったので
タグを指定してpixivから画像をダウンロードするスクリプトを作った。

[pythonのpixivpyを使ってpixivから特定のユーザーの作品をすべて一括でダウンロードする(うごイラ含む)](https://qiita.com/yuki_2020/items/acad0a1e1939dccdde59)
これをベースに作りました。

#注意
pixivpyはおそらく中国の有志が作ったライブラリであり、公式のものではありません。
そのためログイン時のユーザーid、passwordは流出してもいいように捨て垢を使うなどの方法を使うことをお勧めします。
また乱用厳禁です。
スクレイピングのルールとして1秒当たりリクエリは1回までという暗黙のルールがあります。
これがないとdos攻撃となってしまい、法的にアウトです。
sleepをコメントアウトする際は自己責任でお願いします。
また何か問題が起きても自己責任でお願いします。

#ソースコード
“`tag_downloader.py
from pixivp

元記事を表示

pytesseract 概要と使い方 メモ

* `pytesseract`の概要と使用方法についてメモする。

## pytesseract 概要

* OCRツール`Tesseract`のPythonラッパー。

* `Pillow`や`NumPy`などの形式で解析対象データを受け取ることが可能。

* コマンド呼び出しで実行。

## インストール

* `pip`コマンドを使用し、インストールする。

“`shell
pip install pytesseract
“`

※必要に応じて解析データの読み込み用途で`Pillow`などもインストールする。

※`tesseract`本体も必要。Linux環境などでは`apt-get -y install tesseract-ocr tesseract-ocr-jpn`でインストールしておく。

## 使用方法

* Pythonコード

“`python
from pytesseract import pytesseract
from PIL import Image

# 読み込み対象ファイルの指定
img = Image.open(“./test.p

元記事を表示

Numeraiに上位20%以上のスコアがでる予測値を提出する方法

#はじめに
はじめまして。
[tit_BTCQASH ](https://twitter.com/tit_BTCQASH “tit_BTCQASH “)と申します。

この記事では上位20%以上の性能が出る予測値を[Numerai](https://numer.ai/tournament “Numerai”)にサブミットする方法を解説します。

Numeraiにステークしたいけど、毎週プログラミングなんてめんどくさい・プログラミングなんてできない、という人向けです。

Numeraiって何?という方は、私の過去記事( [日本語版](https://qiita.com/tit_BTCQASH/items/366a2d1c273507dd4b8c “日本語版”) /[英語版](https://tit-btcqash.medium.com/a-comprehensive-guide-to-competing-at-numerai-70b356edbe07 “英語版”))をご参照ください。

#データのダウンロードから予測の提出まで
本項ではNumeraiに予測値を提出する方法を説明します

元記事を表示

Github Actionsで始めるプログラム定期実行

# はじめに

よくプログラムの定期実行の方法として、Windowsではタスクの登録、Linuxではcronでの定期実行が紹介されるが、ローカル環境でこれらを行う場合は、もちろんPCを起動しておく必要がある。しかし、たかが1プログラムのために電気代を消費するのも勿体ないし、サーバーを借りて実行するほどでもない、といった需要に一番マッチするのがGithub Actionsである。
`※この記事はGitに関しての記事ではないため、コミットやプッシュなどは理解しているものとして話を進める。`

# GitHub Actionsとは?

Github Actionsはその名の通りGitHubから提供されているワークフローを自動化するためのツールである。
具体的には、リポジトリの`.github/workflows`の配下にYAML形式の実行制御ファイルを配置することによって利用することができる。Linuxで利用されるcronによる定期実行やレポジトリへのプッシュを検知して、ワークフローを実行することもできる。

公式ドキュメント -> https://docs.github.com/ja/ac

元記事を表示

OTHERカテゴリの最新記事