Python関連のことを調べてみた2020年04月16日

Python関連のことを調べてみた2020年04月16日

Win10でのAnaconda上でのRNN稼働状況(俺の)

# Win10 Anacondaの環境

個人的な備忘録です。すみません。
## Base環境
– RTX2070
– Python 3.7.3
– Tensorflow なし

## 仮想環境
Python 3.7.3
Tensorflow 1.13.1
– この状況なら`tensorflow.keras`に書き換えることでRNNが動く

“`
(opencv gyoumu) C:\Users\ユーザー名>pip list
Package Version
——————– ——–
absl-py 0.7.1
astor 0.7.1
attrs 19.1.0
backcall 0.1.0
bleach 3.1.0
certifi 2019.3.9
colorama 0.4.1
cycler 0.10.0
dec

元記事を表示

[Python] カラーバーの調整

単語帳.毎回検索するのが面倒なので転載多め.元URLあり.

[matplotlib.pyplot.colorbar]
(https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.colorbar.html)
[Qiita@skotaro: matplotlibのcolorbarを解剖してわかったこと、あるいはもうcolorbar調整に苦労したくない人に捧げる話]
(https://qiita.com/skotaro/items/01d66a8c9902a766a2c0)

## 位置の調整:指定したAxesにカラーバーを描画

### `fig.add_axes`による指定

`cax=`オプションで指定.

“`Python
fig = plt.figure(figsize=(8,5))
ax = fig.add_axes((0.05, 0.15, 0.9, 0.8))
im = ax.imshow(np.random.random((10, 20)), cmap=’jet’)
cax = fig.add_axes

元記事を表示

Pythonの応用: Pandasその3: Dataframe

# Dataframeとは

DataFrameは、Seriesを複数束ねたような2次元のデータ構造をしています。
pd.DataFrame()にSeriesを渡すことでDataFrameを生成することができます。
行には0から昇順に整数の番号が自動で付きます。

“`pytohn
pd.DataFrame([Series, Series, …])
“`

また、バリューがリスト型である辞書型で表記しても生成することができます。
この際、各要素のリストの長さを揃えなくてはならない点に注意してください。

“`python
import pandas as pd

data = {“fruits”: [“apple”, “orange”, “banana”, “strawberry”, “kiwifruit”],
“year”: [2001, 2002, 2001, 2008, 2006],
“time”: [1, 4, 5, 6, 3]}
df = pd.DataFrame(data)
print(df)
# 出力結果
fru

元記事を表示

paramiko、scpを使ってLinuxからファイルを取得する【Python】

# 初めに
毎月決まったサーバから決まった画像ファイル取得して定例会資料を作っていましたが、
WinSCPで潜っていき取得してくるのが面倒になり、Pythonにて自動化しようと決意。

調べたところparamikoとscpを使えばできそうだったので、やってみました。

## 動作環境
実行側:Windows Server 2012
取得先:CentOS Linux 7
※ ともにクローズドネットワーク

## インストール
インターネットに接続されている端末の場合通常のpipで問題ありません

“`
py -m pip install paramiko
“`
オフライン環境の場合、1度ダウンロードしてからインストールを行います。

“`
py -m pip download -d C:\tmp –no-binary :all: paramiko
“`
上記コマンドを打ったところ、
` ERROR: Command errored out with exit status 1:`
というエラーが出てダウンロードできませんでした。
しばらく戦ったところ、

“`
py -m

元記事を表示

pythonでプライベートメソッドやプライベートフィールド【暗号】

# 0.時間を無駄にしたくない方向けの要約
この記事はpythonでprivateメンバを無理やり実装するため、nonceや暗号化を取り入れたけど、可読性下がるしすぐに破られるから意味なかったってだけの記事です。

# 1.アイデア
暗号化nonceを設計すればいいじゃん。
暗号化機構については[teitei_tkさんの記事](https://qiita.com/teitei_tk/items/0b8bae99a8700452b718)を丸パクリさせていただいた。
特に`aes_cipher.py`はそのままディレクトリに保存した。
ただし`pip install pycrypto`はwindows環境ではビルドエラーになるようなので、
`pip install pycryptodome`で代替のこと。

# 2.実装

“`python:プライベートメソッド
import numpy as np
from aes_cipher import AESCipher
import string, random;
# importはすべてprivateメソッド用

class Test

元記事を表示

高卒技能員の分かりやすい【Pandas】実践・データ確認方法

**pandasを用いたデータの確認方法まとめ**
# ざっくり見たい
データの形を確認

“`データの形(行数×列数).
print(〇〇.shape)
“`
カラム(列名)を確認

“`
print(〇〇.columns)
“`
最初の5行だけ表示

“`5行表示させたい場合.
print(〇〇.head())
“`

指定の行数、見たい場合はhead()の括弧内に数を入れる

“`10行表示させたい場合.
print(〇〇.head(10))
“`

Kaggleの**タイタニック:災害からの機械学習**のtrain_dataでやってみると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588211/8940add8-42e1-01a2-fad4-ba78b4d1e771.png)

#詳細に見たい(行数・列数・要素数・型・メモリのチェック)

詳細に見たい場合はinfo()を使いましょう

“`情報を取得.
print(〇〇.info())
“`
![ima

元記事を表示

自分のITライフを振り返りつつ、プログラミング言語の学ぶ順番について考える

http://www.minekawada.com/program-language-oder.html

目次
自分のプログラミング言語の学んできた順番

川田さとし、C言語を始める
川田さとし、Javascriptを始めるの巻
川田さとし、Pythonに目覚める
川田さとし、C#で仕事としてのプログラミングへ

後編は作成中

元記事を表示

svmの実験1

## 1. どんな内容か

H x W pixel の1チャンネル画像が3枚セットで与えられる。
2枚がセットで特徴ベクトルを与え、1枚はセグメント化されていて目的変数となる。
題意は、2チャンネルのデータからセグメント化されたもう1チャンネルを再現することである。

最初のアイデアとして、pixel単位で2チャンネルの画素値からもう1チャンネルを予測できれば良さそうである。
無論題意的には、convolution matrixを何か考えて、周辺数pixel距離までを読み込んで予測させるとかだろう。

また、目的変数については、画素値が規定値以上かでクラス分けされ、規定値以下については回帰で画素値の予測が期待されている。

とりあえず最初の試みとして、このクラス分類について試みてみた。

なお、 python の実行環境は venv を使って分離しておいて、その中で pip を使って必要なライブラリをインストールした。

“`sh
python3 -m venv ./P
source P/bin/activate
pip install –upgrade pip
pip insta

元記事を表示

Bokehの初歩を完全に理解したい

bokehの対話的プロットを極力丁寧に理解するために、[手頃なサンプル][0]を例に解読を試みる。
ソースコードから予想で仕様を書いているが、ドキュメントも確認しているので大まかには間違いないはず。
全体のソースコードは[こちら][1]

こんなやつ↓
![bokeh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283539/baf96a4a-8cb2-a8da-fa91-6f008c3412ce.png)

### データ生成

“`python
# create three normal population samples with different parameters
x1 = np.random.normal(loc=5.0, size=400) * 100
y1 = np.random.normal(loc=10.0, size=400) * 10

x2 = np.random.normal(loc=5.0, size=800) * 50
y2 = np.random.normal

元記事を表示

PytorchでDataFrameのデータをNNで訓練できる形に整形する

# 概要
ニューラルネットワークでデータを訓練させたり検証したりする際に、データを(データ群,ラベル)の形に整形する必要がありますよね。
MNISTやCIFAR10だと事前にこの形になっているんですが、手持ちのデータを使うときには自分でこの形にする必要があります。が、理解するまで時間がかかったのでこちらにしたためておきます。

尚、基本的な方法については英語でどんぴしゃ回答してる方々がいたため、英語が行ける方は以下の一連のやりとりをご覧ください。
[Convert Pandas dataframe to PyTorch tensor?](https://stackoverflow.com/questions/50307707/convert-pandas-dataframe-to-pytorch-tensor)

このQiitaでは文脈を補って少し詳しく解説しているので、適宜必要なところだけサク読みして下さい。

##データとラベルに手持ちのデータを分ける

###DataFrameからラベルを引っ張って来る(ラベルのコラム名:target)

“`python
train_labe

元記事を表示

Pandasの基本操作をJupyter Labで書いてみた(後編)

## 第14回
## DataFrameのNaNについて

“`python
import numpy as np
import pandas as pd
“`

“`python
df = pd.read_csv(‘train.csv’)
df.head()
“`

PassengerId<

【失敗談】スクレイピングを約1時間学んだだけで作業時間が激減した件。

# 失敗談
過去記事にて、競艇の順位予想をするプログラムを作成し、紹介しました。

↓過去記事については、下記リンクを参照してください。↓
[【ディープラーニング】機械学習初心者が競艇1位予想を作れるのか試してみた。](https://qiita.com/gorilland/items/c203fee4362e8dea0037)

プログラムに関してはある程度の評価をいただきましたが、ひとつ気になることが私にはありました。

それは、**データ収集の大変さ**でした。

Webページからデータを収集していたので、この作業を楽にするのはスクレイピングをすることだとはわかっていました。

しかし私は、食わず嫌いというのとディープラーニングで手一杯だった為、難しそうなスクレイピングの中身さえ確認せずにコピーアンドペーストをしてデータを集めていました。

実際にスクレイピングの基礎を学習してみて、まず**取り掛かりやすさに驚き**、私が必死にコピーアンドペーストして収集していたテキストが

“`html

テキスト

“`

のみで囲われていたことに絶望しました。

つま

Pandasの基本操作をJupyter Labで書いてみた(前編)

## この記事はかめ(@usdatascientist)さんのブログ(https://datawokagaku.com/python_for_ds_summary/) に書かれているPandasの基本操作を実際にJupyter Labを用いてコーディングしてみた、という記事です。¶

# Pandasの基本操作まとめ

## 第10回

“`python
import pandas as pd
import numpy as np
“`

## Series

“`python
data = {‘name’:’John’, ‘sex’:’male’, ‘age’: 22}
john_s = pd.Series(data)
print(john_s)
“`

name John
sex male
age 22
dtype: object

“`python
array = np.array([10,20,30])
pd.Series(array)
“`

0 10
1 20

【pandas】Pythonで営業データ分析をやってみた【初心者向け】

海外のyoutuberのKeith Galliという方のPythonのレクチャー動画を見てワークをやってみました。

【PythonのPandasライブラリを用いて現実のデータサイエンス課題を解いてみよう!】
[Solving real world data science tasks with Python Pandas!](https://youtu.be/eMOA1pPVUc4)
難易度は高くなく、平易な英語なので是非ご覧ください。

1時間半ほどの動画です。非常に丁寧な説明です。
Googleでstackoverflow(海外版プログラミングQ&Aサイト)で、
解決法を調べる過程なども見せてくれています。

CSVのエクセルデータを用いて分析するタスクになります。
データは彼のGithubからダウンロード出来ます。

[Githubはこちらから](“https://github.com/KeithGalli/Pandas-Data-Science-Tasks”)

私はjupyter notebookで実行しています。

コードに補足を日本語で入れながらやっています。

仮想マシン配置最適化問題(簡単版)をblueqatで解いてみた

前回はblueqatを使ってVQEの動作確認を実施した。今回は、仮想マシン最適化問題(簡単版)をblueqatのVQEで解いてみる。

# 仮想マシン配置最適化問題とは
一言で表すと、**「仮想化基盤において、仮想マシンを無理なく詰め込むことができる仮想マシンの配置ってどんな配置?」**っていうのを求める問題です。私が現在勝手にそう呼んでいますが、正式名称があるのでしょうか・・・?

# この問題を考えるに至った背景
私の日頃の業務は、VMware製品を利用してオンプレ環境での仮想マシン提供、基盤全体の運用保守を行っています。基盤としては700VM程度の中規模基盤です。業務をしていて思うのは、「仮想マシンの配置を工夫すればもう少しリソース(特にCPU、メモリ)の空きができるんじゃない?」ってことです。

どこの基盤管理者も同じだと思いますが、新規の仮想マシンを提供する時は以下のことを特に意識しているんじゃないでしょうか?

– 仮想マシン搭載予定の物理マシンにリソースの余力があるか

1台の物理マシンに仮想マシンを詰め込み過ぎると、仮想マシンのパフォーマンスに影響するため、この観点は非

Dockerfile + docker-compose.ymlでFlask環境構築

手軽にflask環境を構築したいときの備忘録として。

# 実行環境
* Mac OSX 10.15.4
* Docker version 19.03.8

# ディレクトリ構成

“`
test/
|- Dockerfile
|- docker-compose.yml
|- app/
|- app.py
“`

# 各ファイルの記述

## Dockerfile
* 以下の記事と同様に記述
* [Docker+Flaskによるお手軽Webアプリ開発](https://qiita.com/phorizon20/items/57277fab1fd7aa994502)
* コンテナ内に `app` ディレクトリを作成するコマンドを追加
* ローカルの `app` ディレクトリをマウントするため

“`dockerfile
FROM ubuntu:latest

RUN apt-get update
RUN apt-get install python3 python3-pip -y

RUN pip3 install flask

RUN

Pythonの応用: Pandasその2: Series

前回の続きより

1次元配列を扱う、Seriiesを投稿します。

# Seriesの生成

基本はNumpyと一緒で、Pandasをインポートして、名称を変えて使用します。

“`python
import pandas as pd
# importでpandasを導入
# asでpandasをpdでも扱えるようにしました。
“`

Pandasのデータ構造のうちの1つであるSeriesは1次元の配列のように扱うことができます。

pd.Series(辞書型のリスト)の形式で辞書型のリストを渡すことでSeriesを生成できます。

また、データとそれに関連付けたインデックスを指定することでもSeriesを生成でき

“`python
pd.Series(データ配列, index=インデックス配列) # これの形式で指定します。
“`

インデックスを指定しない場合は0から昇順に整数がインデックスとして自動で付きます。

Seriesを出力すると

“`python
dtype: int64
“`

上記のように出力されますが
Seriesに格納されている値が”int64”

API GatewayのAPIキーにスロットリングを効かせたりGitHubのSecretsに登録してActionsから利用したりする

# API GatewayのAPIキーにスロットリングを効かせたりGitHubのSecretsに登録してActionsから利用したりする

## はじめに
先日、[静岡県オープンデータカタログ(csv)からCOVID-19対策サイトのデータ(json)に変換して取得するAPI](https://qiita.com/w2or3w/items/55ff3159aea0c7a9e096)という記事を書きました。

この時点(4/11)で「認証なし」だったのですが、変な使われ方して課金されてしまったらイヤだなぁと思いまして、遅ればせながらAPIキーによる認証とスロットリングを効かせましたので記事にします。
またこのAPIはGitHub Actionsから呼んで利用しているのですが、そこでのAPIキーの管理方法(Secrets)についても記載します。

## API Gatewayに対してAPIキーによる認証設定をする
[この記事](https://qiita.com/w2or3w/items/55ff3159aea0c7a9e096#lambda%E3%82%92%E5%91%BC%E3%81

Raspberry Pi3 B+と超音波距離センサーHC-SR04で自動運転ロボットカーを作る

# はじめに
現実世界の自動運転車を構成する要素は自車位置推定、物体認識、行動判断、車体制御です。これらの4要素全てをラジコンをベースに実装することも可能ですが、自車位置推定を簡易的に実現するのは容易ではなく、また今回は低速走行が目標のため車体制御もほとんど必要ありません。そこで今回は超音波距離センサーで前方に存在する物体を認識し、それを回避するための行動判断をラジコンをベースとした自動運転のロボットカーで簡易的に実現したいと思います。

# 仕様
– Raspbian GNU/Linux 9.4
– Python 3.5.3
– GNU Make 4.1
– gcc version 6.3.0
– lircd 0.9.4c
– ServoBlaster(2nd Oct 2019)

# ロボットカー全体構成
市販品のラジコンにPWM信号をラズパイから送信しアクセルとステアリングを制御します。前方の3つの超音波距離センサーを用いて前方にある物体を認識し、左右にステアリングを切るように行動判断します。
アメダスのデータで遊んでみる~その1

ニューラルネットワークの勉強として、なんらかのデータを扱ってみたい。
そこで、簡単に入手できそうな、アメダスのデータで遊んでみることにしました。
以下のURLからデータがダウンロード出来るようです。

https://www.jma.go.jp/jma/menu/menureport.html

気象 → 過去の気象データ・ダウンロード

で、適当な地点の適当なデータが取得できそうです。
一回にダウンロードできるデータ量が限られるようなので、適当に設定して、ダウンロードしてみます。
今回は、私がよくジョギングしている近所の長野県松本市のデータを使ってみました。

![matsu.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/607345/53a6c765-0c72-d110-30ce-d7eae6e0c575.jpeg)

選んだ項目は・・・
■気温
■風向・風速
■天気
の3つ。
期間は適当に選択して「CSVファイルをダウンロード」というボタンをクリックすると、無事ダウンロードできました。

開い