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

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

折れ線グラフの作成(seaborn,matplotlib)

# はじめに
Python、pandas、matplotlib、seabornを使って気象庁からデータを取得し
平均気温、降水量、日照時間の折れ線グラフを作成します。
気象庁のHPから、好きな地域のCSVファイルをダウンロードしておきます。

## 完成形の確認
以下のようなグラフが本記事のゴールです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2544095/97affb80-c3ca-be8c-ab65-2b11b222daf9.png)

最終的なコードは以下の通りです。
“`
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.font_manager

df_weather = pd.read_csv(‘weather_sample.csv’,encoding=”SHIFT-JIS”, index_col=’日付’,parse_dates=

元記事を表示

AWS Robot Delivery Challenge 2022 に出場できなかった話 : 最適経路

概要を読んでいない方は先にこちらを読んでください!
[目次のページ](https://qiita.com/KyoBashi/items/153aff5ce8af7111b537)

## はじめに
![](https://i.imgur.com/oGCcepZ.png)

今回は上図のcsv_path_dataの部分について説明します.
ロボットの経路生成には最適制御を用いました.
様々な制約を考慮しつつ,評価関数を最小化することで設定した目的を達成できるという点から選択しました.また,それによって得られた最適経路情報をcsvファイルに保存しました.今回は最適制御による経路を事前にオフラインで保存するため,リアルタイム性を考える必要がなかったので,特にモデル化において線形化などを行わず非線形最適制御問題を解きました.

## 最適制御とは
ある連続時間システム $\dot{x}(t) = f(x(t), u(t), t)$ を考えます.
そのとき,最適制御問題は以下のように定式化されます.
$\min \hspace{5pt}
J = \int^{T}_{0} L\left({x}\

元記事を表示

AWS Robot Delivery Challenge 2022 に出場できなかった話 : 黄金探索

概要を読んでいない方は先にこちらを読んでください!
[目次のページ](https://qiita.com/KyoBashi/items/153aff5ce8af7111b537)
## 黄金探索とは
ロボットの目標位置を定めるためのアルゴリズムです。
現時点で自分がいる座標(自己位置推定により導いた座標)と、あらかじめ計画された経路を用いてリアルタイムで目標位置を決定します。

## アルゴリズム
この記事を参考にしました。
https://naoyat.hatenablog.jp/entry/2012/01/04/231801

## 全体としての位置付け
![](https://i.imgur.com/IFjlRDp.png)

## 実装
1. ダイクストラ法で導いた経路の情報を受けとる。
2. 経路上の離散化した座標群の中で、ロボットに一番近い点を黄金探索で探索する。
3. 探索で得た点の少し先の経路上の点をロボットの目標位置として金山制御に渡す。
![](https://i.imgur.com/MPd7TFL.png)

元記事を表示

Kaggle超入門

# はじめに
[Kaggleでユーザー登録するまで](https://qiita.com/makaishi2/items/0d9ca522733a6d9b1ca8)の続きです。
書籍「データサイエンスの森 Kaggleの歩き方」を読みながらメモをとっていきます。

# Kaggleで機械学習を学ぶ
書籍 p.50から解説があります。初期画面左の「**Coureses**」をクリックして、後はメニュー階層をどんどんたどっていくと、最後はチュートリアルの画面にたどり着きます。

元記事を表示

データ可視化:Microsoftのデータサイエンス講座:Day3

# はじめに

 Microsoftが無償で提供しているデータサイエンス初心者向け講座の三日目はデータ可視化にチャレンジします。

# 対象読者

 Python好き。

# ロードマップ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/aa0551c6-53cf-c63c-720a-c122e13d5253.png)

https://github.com/microsoft/Data-Science-For-Beginners/raw/main/sketchnotes/09-Visualizing-Quantities.png

# Day3-1

## Day3ゴール

birdsについてデータ可視化しながらmatplotlibに慣れる。

## git(rawデータ)からbirds.csvを取得しDataFrameに格納する。

“`Python

import pandas as pd

df = pd.read_csv(“https://raw.githu

元記事を表示

wsl2 で homebrew ベースで python 実行環境 (by pyenv) を揃える最小手順

## こんにちは

WindowsでのPython環境導入は[多数ありすぎて](https://qiita.com/hkzm/items/1f00caf199ea059ee800)迷いませんか。私は迷いました。そこでタイトル通り、wsl2 内の homebrew ベースで python, R 環境 を揃える最小手順のメモを残すこととしました。手順が再現しない等の場合はコメントにてやりとりできれば嬉しい限りです。

## この記事を書いた背景

– Windows環境でPythonを動かすためには、さまざまな方法がある(参考: [Windows 10 での Python 汚染に気を付けよう](https://qiita.com/hkzm/items/1f00caf199ea059ee800) )
– 自分メインの開発環境は pyenv & poetry with docker on Mac なので、これに追随するためには WSL2 環境一択
– 趣味として Ubuntu 上で homebrew をフル活用していきたい

## 実行環境

1. WSL2のインストール、およびそのイメージの

元記事を表示

pythonを触ってみた感想

#概要
【内容】
pythonを触ってみて感じたJavaとの違いや気になった点をまとめています。
※途中でコードスタイルのチェックを入れたので、ソースのスペースの入れ方などが前半と後半で違います。
【想定読者】
pythonは未経験だが、Javaでのコーディング経験がある方を対象にしています。
【環境】
プラットフォームはAnaconda、IDEはSpyderを使用しています。

#目次
[1.インデントを正しく書かないとコンパイルエラーが発生](#1-インデントを正しく書かないとコンパイルエラーが発生)
[2.for文での添え字の取得](#2-for文での添え字の取得)
[3.switch文がない](#3-switch文がない)
[4.型の宣言が不要](#4-型の宣言が不要)
[5.関数にデフォルト引数を設定できる](#5-関数にデフォルト引数を設定できる)
[6.インスタンスメソッドを呼び出す際は暗黙的に引数が1つ渡される](#6-インスタンスメソッドを呼び出す際は暗黙的に引数が1つ渡される)
[7.pythonにはオーバーロードがない](#7-pythonにはオーバーロードがない

元記事を表示

2のN乗分2進数全パターンの配列を作成する

タイトルの通り、2^N分2進数配列を全パターン作成するアルゴリズムを紹介します。
文章では伝わりずらいので、コードで。
例えば2^2の場合、
“` javascript:index.js
let list = [
[0, 0],
[0, 1],
[1, 1],
[1, 0],
];
“`

この2進数のすべてのパターンの配列を作成するには、2^N分配列の作成が必要になります。

# この配列のメリット
話は前後しますが、この2進数のすべてのパターンの配列があると何がうれしいかと言うと、N個の数値でそれぞれ異なるデータが存在する(重複OK)場合に全部を足したり引いたり、一部だけ足したり引いたり、足さなかったりの全パターンを簡単に計算することができます。

# 前提条件・データ説明
ではさっそく、今回は貿易を例に計算していきます。
自国日本では、A国、B国、C国と貿易取引を行っていると仮定します。

| 国 | 【輸出額】 | 【輸入額】 |
|:———-:|:—–

元記事を表示

Python基礎❸

# サードパーティーパッケージの導入

Pythonでは、標準だけでもさまざまな機能があるが、インターネット上で個人や企業が公開している「サードパーティ製パッケージ」を追加して様々な便利な機能を使うことができる。
❶メニューからpreference
❷pythonインタープリターで+ボタンをクリック
❸入れたいパッケージを検索
❹コマンドラインでpipでも可能

Python公式ドキュメント→

“`main.py
from termcolor import colored

print(‘test’)

print(colored(‘test’, ‘red’))

“`
# __name__と__main__

“`main.py
print(__name__)//このスクリプトを実行しているメインのスクリプトですと表示してくれる→__main__
“`

“`lesson_package/talk.py
print(__name__)
“`

“`main.py
from lesson_package.talk import animal

print(__name

元記事を表示

Tkinterでペイントもどきを作る

tkinterのcanvasで遊んでいる内に思いついたので
ちょっとづつ思いつくまま作っていきます

# マウスで簡単な絵が描けるモノを作る
まずはwindowsのペイントにある鉛筆を作ります
コードはこんな感じ

“`python:PaintModoki.py
# -*- coding:utf-8 -*-
import tkinter

class PaintModoki:
def __init__(self):
# 操作中の図形のID
self.curr_id = -1

# メインウィンドウ作成
root = tkinter.Tk()
root.title(“無題”)

# 画像表示用キャンバス作成
self.canvas = tkinter.Canvas(root, bg=”white”)
self.canvas.pack(expand=True, fill=tkinter.BOTH)
# キーバインド

元記事を表示

AWS Robot Delivery Challenge 2022 に出場できなかった話 : タスクプランニング

概要を読んでいない方は先にこちらを読んでください!
[目次のページ](https://qiita.com/KyoBashi/items/153aff5ce8af7111b537)
## はじめに
![](https://i.imgur.com/z88WpWD.png)

今回は上図のcommanderの部分について説明します.
WebUIから指令をうけとって,ロボットの各機能を操作する,いわば司令塔に相当する機能です.

## Commanderの制御フロー
WebUIは以下のような画面になっています.

![](https://i.imgur.com/kcHeuD1.jpg)

画面右上のControllerから確認できるように,送られる指令は以下の4つです.
* Dijkstra
* Navigation
* Manual
* Auto

それぞれの指令が送られたときのCommanderの対応について以下で説明します.
### Dijkstra
この指令を送る際は事前にMapで経由したい箇所(あれば)と目標地点の番号をクリックします.そのあとこの指令を送ることで,指定した番号のリス

元記事を表示

AWS Robot Delivery Challenge 2022 に出場できなかった話 : Kanayama Control

概要を読んでいない方は先にこちらを読んでください!
[目次のページ](https://qiita.com/KyoBashi/items/153aff5ce8af7111b537)
## はじめに
![](https://i.imgur.com/FUkgQ6x.png)

今回は上図のkanayama_controlの部分について説明します.
コントローラにはKanayama Controlという手法を用いました.
車両制御にはよく用いられる手法で,以下の論文を参考にしました.
https://ieeexplore.ieee.org/document/126006

Kanayama Controlでは,Plannerから参照位置と参照制御入力を受け取り,自己位置推定を行うノードから自己位置を取得し,制御入力を計算しています.

元記事を表示

AWS Robot Delivery Challenge 2022 に出場できなかった話 : ダイクストラ法

概要を読んでいない方は先にこちらを読んでください!
[目次のページ](https://qiita.com/KyoBashi/items/153aff5ce8af7111b537)

## ダイクストラ法とは
グラフ理論におけるアルゴリズムの一つで、グラフ上の2頂点間の最短経路を決定するアルゴリズムです。今回はコース上の2点間を最速で移動する経路を導くアルゴリズムとして使用しました。頂点の位置は下図のように決定し、各辺の重みは各ノード間を移動するのにかかる所要時間となります。これらの所要時間は最適制御によって計算されたものになっています。

![](https://i.imgur.com/QHiPk0G.png)

## アルゴリズム
この記事を参考にしました。
https://myenigma.hatenablog.com/entry/20140502/1399001915

## 全体としての位置付け
![](https://i.imgur.com/Uz8H5pP.png)

## 実装
1. commanderから通過するノードの順序を受け取る(始点、中継点、中継点、、、終

元記事を表示

AWS Robot Delivery Challenge 2022 に出場できなかった話

# AWS Robot Delivery Challenge 2022 に出場できなかった話

## はじめに
今回はじめてQiitaに投稿したのでわかりにくい箇所などが多いと思います。
大学生が移動ロボットの制御の勉強を兼ねて製作したものなので説明に間違いがあるかもしれません、ご指摘いただけるとありがたいです。

## AWS Robot Delivery Challenge とは?
詳しくは[こちら](https://aws.amazon.com/jp/robot-delivery-challenge/)
AWS Robot Delivery Challengeとは、AWS Japan が開催しているロボコンでROS上で自律二輪ロボットを制御し、どれだけ多くのチェックポイントを通過できたかを競う大会です。AWSロボコンは2020年と2021年の2回開催されています。

## 参加できなかったワケ
ルール発表が2月中旬頃にあるのですが、2022年はAWS Deep Racer Student に変更されてしまい、強化学習を用いたロボットの大会になってしまいました、、、
2021年の8

元記事を表示

pythonのbackoff

`@backoff`関連情報がないのでここにメモします。

pythonでbackoffは特定なエラーが発生するとそれをバックオップさせ、リトライをするデコレーターです。

まずpipインストールをします。

“`
$ pip install backoff
Collecting backoff
Downloading backoff-1.11.1-py2.py3-none-any.whl (13 kB)
Installing collected packages: backoff
Successfully installed backoff-1.11.1
“`

簡単な例えを見ましょう。

“`python
def test():
number = int(input(“Enter an integer: “))

test()
“`

このコードを実行しintではない値を与えたらValueErrorが発生しますが、入力の誤りを三回くらいは勘弁しようと思います。方法は二つです。

* `input(…)`の結果をタイプをチェックしてintであればPas

元記事を表示

快適なAtCoder環境構築【コマンド無しで提出まで】

毎度のごとくMacを初期化しまして、AtCoderの環境も再構築が必要になったのでこれを機に記事でも書くかと私の使っていたVSCodeでAtCoderの環境を作っていきたいと思います。

Mac + Python + 提出ショートカットの記事も無かったのでね。。。(もちろんC++などPython以外、Mac以外でも役に立ちます)

## Macの環境
プロセッサだったりOSだったりの情報は以下です。
### ハード情報
![環境.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/512282/2ff86778-97d4-006e-9a1f-83ba6ed993f5.png)
– MacBook Pro(2018年モデル)
– Intel プロセッサ

### ソフト情報
– MacOS Monterey
– シェルはzsh
– ほぼほぼ初期化した状態でChromeやらbrew、python、node.jsだけ入れた

## AtCoder-cliのインストール
AtCoder-cliのインストールからです。

元記事を表示

【Kaggle】H&M Recommendation Competitionでの教師なし学習的アプローチ

# はじめに
はじめまして.株式会社音圧爆上げくんにプロKagglerとして所属していますAshmeと申します.

これから業務の一環としてKaggleの様々なコンペティションに参加し,そこで得られた知見などを記事にして投稿していきます.よろしくお願いいたします.

基本的にKaggleではPrivate Sharingと呼ばれるKaggle外のコミュニティのみでの情報発信が禁止されています.なので記事にする情報につきましてはKaggleのDiscussionもしくはNotebookに同様のものを投稿いたします.本記事のものをNotebookにしたものは[こちら](https://www.kaggle.com/code/kaicho0504/projection-nlp-features)にあります.

今回は現在開催されている[H&M Personalized Fashion Recommendations](https://www.kaggle.com/c/h-and-m-personalized-fashion-recommendations/overview/descr

元記事を表示

Kaggleでユーザー登録するまで

# はじめに
「データサイエンスの森 Kaggleの歩き方」を読みながら、Kaggleの使い方を勉強しようとしたのですが、CHAPTER-2「はじめてのKaggle」の画面が全然変わってしまっていたので、手元でメモを取りながら新しい画面の記録をつけました。

# 前提
ユーザー登録では、Googleアカウント登録済みのパターンを利用しています」。

# 登録手順

## 初期URL
最初に次のURLにアクセスします。

[https://www.kaggle.com/](https://www.kaggle.com/)

![スクリーンショット 2022-03-20 21.59.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/35ee2adc-d84a-28f5-4846-e74292e68ca0.png)

上の画面で右上の 「Register」をクリックします。

Pythonによる移動通信シミュレーション 受信電力の変動

# はじめに

携帯電話などの通信では以下のよう理由から受信電力が常に変動します.

– 携帯電話など端末自体が移動する
– 都市部では電波は建造物等で反射するため,受信側ではあらゆる角度から複数の電波(素波)が受信される

本記事では,資料[1]等を参考に,このような移動通信環境の基本をまとめてみることにします.具体的には,**マルチパス波が存在する環境で,端末が移動する場合の受信電力の特性をPythonによりシミュレーションしてみます**.

# 定式化

## 送信・受信信号の表現

図に示すようなシンプルな送受アンテナが1つ存在する状況を考えます.受信側における信号$y(t)$は,送信信号$s(t)$と送信電力$P$により次のように表現されます.

“`math
y(t) = \sqrt{P} h s(t) + n(t)
“`

ここに,$h$は伝搬チャネル応答(複素数)であり,端末の移動やマルチパスによる信号$s(t)$の振幅変動の様子を示しています(後述).また,$n(t)$は熱雑音(複素数)であり,いわゆる加法性白色ガウス雑音(AWGN; Additive Whit

元記事を表示

[GCP] CloudFunctionsを使って指定日にLINE送信する仕組みを作ってみた [無料]

こんにちは、Googleズブズブエンジニアです。
今日もしっかりGoogleさんとズブズブしていきますよ!

毎週火曜日の夕方にサロンのslack(早速Googleじゃないサービスw)を確認をしないといけない用事があるけど忘れちゃうのでLINE(こちらもGoogleじゃな以下略)に通知したいな〜、お手軽に無料でできないかな〜ということで、
**GCPとLINEmessagingAPIを使って無料で定時にLINE送信するシステム**を作っていくよ。
そして、Googleさんとズブズブな私はちゃんと**GCPのベストプラクティス**に沿って作っていくよ!
# アーキテクチャ
アーキテクチャはこんな感じ
![スクリーンショット 2022-03-20 20.11.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2548921/d34e9e58-e30e-69d7-9939-024cd3973524.png)
## アーキテクチャのポイント
### 1. CloudPubSubトリガーで起動
CloudFun

元記事を表示

OTHERカテゴリの最新記事