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

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

ROSの勉強 第14弾:Teleop-bot ~ key_to_twist ~

# #プログラミング ROS< key_to_twist >

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

##環境
#####仮想環境
|||
|:-:|:–|
|ソフト|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.

元記事を表示

弱教師あり学習 snorkelの実装

#1.はじめに
初投稿です。
大学のゼミナールでsnorkelというpythonライブラリの実装を行ったので、snorkelについての簡単な説明とsnorkelの実装について投稿しました。
snorkelは日本語の情報が少なく、私自身ライブラリの実装に苦戦したので、snorkelの実装の参考になればなと思い記事を書いてみました。
**【注意】**Windowsでの実装となっています。
#2.snorkelとは
snorkelについて軽く説明します。
![alt](https://d229noksprj98s.cloudfront.net/wp-content/uploads/2020/07/labelling-data-using-snorkel.png)

+ snorkelはstanford大学で開発された、教師付き学習で必要になるラベル付きデータを簡単に作成することができるオープンソースのpythonライブラリ。
+ 通常、データのラベル付けは手作業によって行われており、大量のラベル付きデータの作成は時間とコストがかかります。
+ また、データの評価は時間とともに変化するので、古

元記事を表示

Selenium で Web 全体画面のスクリーンショットが欲しい

# Selenium で save_screenshot() をしてもページ全体が取得できない

Selenium に実装されている `save_screenshot()` は今表示されている画面しか保存することができない。
例えば、[Selenium PyPI](https://pypi.org/project/selenium/) のページを開いて保存すると以下のように保存される。

![save_screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174323/3ea29387-1b7d-3d36-ab94-17361f76e833.png)

このようなウェブサイトで、ページ全体のスクリーンショットを取得したい。
(あとスクロールバーを削除したい)

# 作成した関数

今回以下の3つの関数を作成しました。
– `get_concat_image()`
– `get_screenshot_image()`
– `get_full_screenshot_image()` <- ス

元記事を表示

Numpy の便利ツール

#Numpyの便利ツール
NumPyは、多次元配列を扱う数値演算ライブラリ
Numpyには、いくつかの便利なツールが存在する

#必要なライブラリーなどをインポートする

“`
import numpy as np#Numpyをインポートする
A=np.array([[1,2],[3,4]])#2×2行列を作成する
“`

#sum()
行列の全部の要素を足す
引数に0を設定すると行の和を出力
引数に1を設定すると列の和を出力

“`
a=A.sum()
b=A.sum(0)#行の和
c=A.sum(1)#列の和
“`
“`text:出力結果
10#a,1+2+3+4
array([4,6])#b,(1+3,2+4)
array([3,7])#c,(1+2,3+4)
“`

#mean()
行列の要素の平均を出力する
引数の設定はsum()と同じ

“`
a=A.mean()
b=A.mean(0)
c=A.mean(1)
“`
“`text:出力結果
2.5#a
array([2.,3.])#b
array([1.5,3.5])#c
“`

#std()
行列の要

元記事を表示

図形だけで初音ミクを描く【OpenCV】

# 0. はじめに
– OpenCVの図形を描画する関数を用いて,初音ミクを描きました.
![miku.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484145/699b30c8-23e0-7d7f-2912-f09170ef2bc3.png)

※ この作品はピアプロ・キャラクター・ライセンスに基づいてクリプトン・フューチャー・メディア株式会社のキャラクター「初音ミク」を描いたものです
# 1. OpenCVの図形描画関数
– [こちら](https://note.nkmk.me/python-opencv-draw-function/)のサイトを参考にさせていただいております.

### 共通引数
– `img`:図形を描画する画像
– `pt1`:始点
– `pt2`:終点
– `center`:円の中心
– `color`:色(今回はカラー画像で(Blue, Green, Red)で指定する)

元記事を表示

Pandasの文字列のSplitとJoinが変だった件

# Split (pd.Series.str.split)
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.split.html

Pythonのstr.splitと同様に指定の文字列で文字列を分割できます。

“`python
df = pd.DataFrame({“name” : [“a”, “b”, “c”],
“code”: [“123.456.789”, “234.567.890”, “345.678.901”]})
df
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/181998/22153ec3-06a2-c1a4-57c0-4c1ba1ec19b4.png)

“`py
df[“code_split”] = df[“code”].str.split(“.”)
df
“`
![image.png](https:/

元記事を表示

macOS Big SurでのPython環境構築の備忘録

macOS Big SurでのPythonの環境構築にかなり手間取ったので記録しておきます。
#1. pyenvでminiforgeをインストール
インストール一覧にあるminiforgeをインストールする

“`
pyenv install –list
pyenv install miniforge3-4.9.2
“`
#2. Path設定
グローバル化

“`
pyenv global miniforge3-4.9.2
“`
ファイル位置検索

“`
which python
“`

#3. condaでNumpy, pandasをインストール
“`
conda install numpy
conda install pandas
“`

とりあえずこれで環境構築できました。

#参考サイト
[AppleSilicon M1 Macにpythonをインストールする](https://braveam.com/archives/1409)
[pyenvを使ってMacにPythonの環境を構築する](https://qiita.com/1000ch/items/9384

元記事を表示

機械学習についてさらっと理解する

※本記事は[Techpit](https://www.techpit.jp/?utm_source=qiita&utm_medium=social_media&utm_campaign=qiita&utm_content=ai)の教材[自然言語処理を使ってメンヘラ判定AIを作ってみよう!](https://www.techpit.jp/courses/51/?utm_source=qiita&utm_medium=social_media&utm_campaign=qiita&utm_content=ai)を一部修正したものです。

近年、いろいろなところで耳にする「AI」という言葉。「機械学習」と同じような場面で使われることも多いです。
本記事を最後まで読むことで、**「AI」と「機械学習」は何がどう違うのかをざっくり理解**することができます。

**他にもプログラミング学習に役立つような情報を発信しています!**
[アカウントをフォロー](https://qiita.com/techpit-jp)してお待ちください!

# 「AI」と「機械学習」について

「Artificia

元記事を表示

Raspberry Pi Zero でLチカ(オンボードLED編)

今回、基板上のLEDを用いるため、ハードウェアの知識がなくとも、Lチカを行うことができます。
(LEDを準備しなくてだいじょぶ! 抵抗とか、わからなくてもだいじょぶ!)

なお、少しコマンドの知識と、Pythonの知識が必要です。
ですが、コピペで進行できるようにしています。(viの操作も無いです)
(適宜、ターミナルにコピペしてください)

# すること
– 基板上のLEDの制御
– PythonによるLEDの制御
– PWMとsleepを利用したLEDの制御

# 必要な物 (TOP写真に写っているものだけでOK!)
Raspberry Pi ZERO W (Wがなくとも大丈夫だと思われます)
以上!! (あとUSBケーブル、端末とか)

# 環境
– Raspberry Pi ZERO W (他のRPiでは、説明でのGP

元記事を表示

アフィン変換(Affine Transformation)を試す。

この投稿は以下の投稿の再現テストです。とりあえずプログラムで動かせたら自分的に敷居が下がるので…
[完全に理解するアフィン変換](https://qiita.com/koshian2/items/c133e2e10c261b8646bf)
[Python, OpenCVで画像ファイルの読み込み、保存(imread, imwrite)](https://note.nkmk.me/python-opencv-imread-imwrite/)
[Pythonのif __name__ == “__main__” とは何ですか?への回答](https://blog.pyq.jp/entry/Python_kaiketsu_180207)
[matplotlib逆引きメモ(フレーム編)](https://qiita.com/cnloni/items/20b5908fbae755192498)

元画像はこちら。
[数学者のイラスト(女性)](https://www.irasutoya.com/2019/10/blog-post_724.html)
![suugakusya.jpg](https:/

元記事を表示

YouTube, Deepspeech, with Google Colaboratory [testing_0003]

##deepspeech-0.9.3-models
[This version is not backwards compatible with earlier versions.](https://github.com/mozilla/DeepSpeech/releases)

##Chinese language models

**deepspeech-0.9.3-models-zh-CN.pbmm**
deepspeech-0.9.3-models-zh-CN.tflite
**deepspeech-0.9.3-models-zh-CN.scorer**
which are [under the MPL-2.0 license](https://www.mozilla.org/en-US/MPL/2.0/FAQ/).

“`python
#Chinese language model
import os
from os.path import exists
import wave

!pip install -q deepspeech-gpu==0.9.3 youtube-d

元記事を表示

Asepriteで縦横サイズが2のべき乗値のPNGファイルを出力する

# 概要

Asepriteで縦横サイズが2のべき乗値のPNGファイルを出力するにあたって調べたことをまとめる。

この記事執筆時のAsepriteのバージョンはv1.2.25-x64である。

# 背景

[Aseprite](https://www.aseprite.org/)はコマンドラインインターフェース(CLI)を持っていて、コマンドを叩くことでAseprite専用の`.aseprite`ファイルからPNGファイルに出力したり、フレームの情報(UV位置やフレームの時間間隔)をJSONファイルに出力したりできる。

1枚の画像の上に複数のフレームのデータを並べたテクスチャをドットバイドットで描画するためには、テクスチャの縦横のサイズを2のべき乗(2,4,8,16,32,…)の値にしないといけないらしい(参考: [このページ](http://marupeke296.com/NGDV_No3_Sprite.html)の下のほう)。AsepriteのCLIのオプションに出力画像サイズを2のべき乗値にするオプションがあれば便利なのだが、そのようなオプションは現状は無いみたいである(

元記事を表示

マイクロサービス作りたかったのでとりあえずWebフレームワーク作ってみた

## 動機
サーバーサイドのアプリケーションを開発する機会を頂いたんですが,どうしたら良いのかわからずサーバー系のサイトをネットサーフィンしていたところ,**マイクロサービス**というワードに出会いました.色々調べてみたら,とても美しいアーキテクチャだったので,これを開発の基盤にすることに決定.さっそく慣れてる Python でそれっぽいフレームワークを探そうと思ったのですが,せっかくだし勉強がてら Flask のような**軽量 Web フレームワーク**で,かつ**マイクロサービスのアーキテクチャにフィットしたもの**を作ってみようと思ったのがきっかけです.

# 作った Web フレームワーク
作ったのは [**Bamboo**](https://github.com/jjj999/bamboo.git) というフレームワークです.以下は簡単な実装例です.他の Web フレームワークに親しみのある方は大体何しようとしているのかわかるかなと思います.

“`python
from bamboo import App, Endpoint

# App オブジェクトの生成
app =

元記事を表示

【Python】FizzBuzzで理解するジェネレータの特長(主に消費メモリ)

# この記事でやってること

FizzBuzzを関数、ジェネレータでそれぞれ実装し、メモリ消費量と処理順序を比較する(ことでジェネレータの特長を理解する)。

# 環境

“`sh
$ python3 –version
Python 3.8.5

uname -o
GNU/Linux

$ uname -p
x86_64
“`

# 基本のソースコード

まずは通常の関数とジェネレータでそれぞれ FizzBuzz を実装。

## 関数

“`python
def fizzbuzz(nums):
result = []
for num in nums:
if num % 15 == 0:
result.append(‘Fizz Buzz’)
elif num % 5 == 0:
result.append(‘Buzz’)
elif num % 3 == 0:
result.append(‘Fizz’)
else:

元記事を表示

Codeforces Round#704 C. Maximum width

https://codeforces.com/contest/1492/problem/C

# こう考えた
まず最初、sの中でtを作れる最短の場所を探す。例えば、上の図でabcは(0-indexとして)0,1,2文字目である。これは、tの0文字目から順番にsを探索すればわかる。例えば、s=axxbxxxcでt=abcなら、$[0,3,7]$となる。ここでまず距離のmaxを求めておく。

さて、次に、tの後ろの文字にあたる文字から、なるべく後ろにその文字を持っていく。

図の場合、cは2つの候補があるが、2つ目の移動候補の方が遠いので、そちらに移動する。次に、bを考えると、1つしか移動先がない(これは全くないこともあり得る)ので、1つ目の候補に移動する。
さて、aは3つの移動先の候補があるが、順序を保たないといけないので、1つ目の候補しか

元記事を表示

openpyxlのchartでグラフの枠線を消す

# openpyxlのchartでグラフの枠線を消す

openpyxlは便利なライブラリで、excelのグラフも自動で作ることができます。
たくさんのデータから、同じようなたくさんのグラフを作る場合など、excelでポチポチポチポチとクリックをしたくない時にとても便利です。
便利なのですが、グラフの枠線を消したり背景を変えることがうまくできなかったので、調べてみました。

## まずグラフを作成

円グラフを表示してみます。

“`python
import openpyxl
from openpyxl.chart import PieChart, Reference

wb = openpyxl.Workbook()
ws = wb.active

ws[“A1”] = “りんご”
ws[“B1”] = 30
ws[“A2”] = “みかん”
ws[“B2”] = 60

chart = PieChart()
chart.add_data(Reference(ws, min_col=2, min_row=1, max_row=2))
chart.set_categories(R

元記事を表示

Seleniumチートシート

#SeleniumでDOM要素を選択する方法
##DOMの中から最初に見つかった要素を1つだけ取得

|メソッド名|説明|
|—|—|
|find_element_by_id(id)|id属性から要素を1つ取得|
|find_element_by_name(name)|name属性から要素を1つ取得|
|find_element_by_css_selector(query)|CSSセレクターを指定して要素を1つ取得|
|find_element_by_xpath(query)|XPathを利用して要素を1つ取得|
|find_element_by_tag_name(name)|タグ名nameの要素を1つ取得|
|find_element_by_partial_link_text(text)|リンクの子要素を含むテキストから要素を1つ取得|
|find_element_by_class_name(name)|クラス名nameから要素を1つ取得|

##DOMの中にある全ての要素を取得

|メソッド名|説明|
|—|—|
|find_elements_by_css_

元記事を表示

ros2-web-bridgeを使ってみた

## 経緯
web上でros2のtopicの情報をやりとりできるパッケージ無いのかなと探していたところ、[ros2-web-bridge](https://github.com/RobotWebTools/ros2-web-bridge)に出会いました。リポジトリの手順通りにセットアップする途中で、詰まる箇所があったので、自分がやった方法を共有します。

## 環境

– Ubuntu20.04
– ROS2 foxy

## 手順
まずは下の手順で進めてください。

“`bash
$ cd /src
$ git clone https://github.com/RobotWebTools/ros2-web-bridge.git
$ sudo apt install nodejs npm
$ cd ros2-web-bridge
$ npm install
“`
npm installした段階で、node-gyp関連でエラーが発生した場合は下のコマンドを実行してください。

“`bash
$ pip install git+https://chro

元記事を表示

AWSのコスト配分レポートをいじり倒し、料金を超絶見える化する

# はじめに
AWS料金、どこにどれだけかかってるか、とても分かりづらくないですか?
CostExplorerを使えばそれなりに可視化できますが、例えばEC2。
EC2インスタンス料金は見えますが、そこにアタッチされたEBSやそのEBSスナップショット、そのEC2で発生したデータ通信料金などは、すべてバラバラでしか確認できません。
これらすべて、発生元のEC2に紐づけて見たいと思ったことはないでしょうか。

Auroraもインスタンス料金は見えますが、ストレージ、I/O、バックアップなど、そのインスタンスで発生している料金は紐付けて確認したいですよね。

会社の取締役から「どのサーバでいくら、どのシステムでいくら、かかってるんだ?」
と聞かれ、ぐぬぬとなってしまったのをきっかけに徹底的に見える化することにしました。

# ゴール
先に完成版をお見せしたいと思います。
今回はコストを抑えたかったため、DBは使わず単純CSVファイルとAWSのBIサービスであるQuickSightを使いました。
(CSVファイルをQuickSightにロードしています)

例えば、ある月のリソース単位の料金

元記事を表示

[TBU 更新予定] マルチモーダル深層学習 分類編 Multi Modal Deep Learning Classification (P4)

# マルチモーダル深層学習の分類をやってみた
以下の動画の応用例の話です。

マルチモーダル分類のサンプルコードは以下のリポジトリです。
https://github.com/moriitkys/MultimodalClassification.git

マルチモーダル画像分類の例
![mdl_butter_roll_qiita.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/282390/e11ee8e0-8293-f7dc-104b-02b2ba8383ef.jpeg)

上の通り、従来のようなRGBデータに加えて他の情報も深層学習することにより新しい応用を実現するための手法、「マルチモーダル深層学習」の分類編、特に温度情報を取り扱いました。
水の温度やパンの温かさなどを分類できるようになります。このような例では深層学習する必要ないのでは?と思われるかもしれませんが、ニッチな応用領域では利用可能性があると考えています。温度は特に限定的かもしれま

元記事を表示

OTHERカテゴリの最新記事