Python3関連のことを調べてみた2020年08月19日

Python3関連のことを調べてみた2020年08月19日

「ゼロから作るDeep Learning」自習メモ(その7)

「ゼロから作るDeep Learning」(斎藤 康毅 著 オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。 [その6](https://qiita.com/slow_learner/items/5589a95081d30f82fbbd)←

そんなもんだよね、でわかったつもりでいればそれで済むことが、どうにも気になり、ひっかかって先に進めません。損失関数について、あれこれいじってみました。

##4.2 損失関数

数式とか、よくわからない時は、実際に数字をあてはめてみるのが理解への近道です。
何回もやってみれば、理解できなくても納得くらいはできます。

ということで、まずは2乗和誤差から。

##2乗和誤差

(P88)
![p88.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686010/cfe7e11d-4107-5b2b-c209-f972ea9911a6.jpeg)

y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1,

元記事を表示

WEBページの国別アクセス数の可視化

ストックではなくLGTMしてね(・∀・)

## 目的
明らかな海外からの攻撃的アクセスをわかりやすくする

## 概要
### 事前準備
– apache or nginxのログを1日ごとになるように設定しておいてください。
(やり方はいくつかあるので、自分で調べてやってみてください)

– GeoLite2-City.mmdb
を使用します。
[GeoIP](https://www.maxmind.com/en/home)を使うので登録してください。
ライセンスと取得方法が昨年末に変更があったので、[ここ](https://kitkatayama.hatenablog.com/entry/2020/01/09/223403)などを参考にしてみてください

### 環境


サーバ: クラウド(AWS lightsail)
OS: CentOS 7.8
Webサーバ: apache 2.4.6
Python: 3.6.4
apacheRoot: /var/www/html/
apacheログ: /var/log/httpd/

“`
[root@fishkil

元記事を表示

Herokuでscikit-learn,pandas,numpyなどの特定のPythonライブラリを使うのが楽になっていた話

#はじめに
以前までは,scikit-learnやpandas,numpyなどのPythonライブラリは,他のライブラリとの依存関係が多いため,Heroku上にデプロイするにはひと工夫が必要でした.
そのひと工夫がいらなくなっていたという話です.

#以前までは
ひと工夫としては,[buildpackの設定](https://elements.heroku.com/buildpacks/projetoeureka/heroku-buildpack-python-sklearn)もしくは[Dockerの利用](https://devcenter.heroku.com/articles/container-registry-and-runtime),もしくはPipfile,Pipfile.lockの生成が必要でした.

自分はrequirements.txtを書いたあとに,以下のコマンドを実行して,Pipfile,Pipfile.lockの生成を行っていました.

“`
pipenv install
“`

#現在
他のライブラリをインストールするのと同様に,requirements.

元記事を表示

Pandas 列名×行番号で要素を抽出する

### はじめに
loc,ilocなど、行名/列名,行番号/列番号を基に要素抽出は出てくるものの、
列名×行番号による抽出方法が上手く探せなかったため、メモ投稿です。

## やりたかったこと
大元のデータフレーム(列名有り,行名無し)から、特定の要素を持つグループに分け、
各データフレームに対して1行ずつ参照して処理をしていく必要があった。

その際、列の指定は出来るが行の指定が思うようにできないため、行番号で処理を試みた。
(reset_indexも考えたが、きっと列名×行番号での指定も出来るはず…)

## 結論
atとindexを組み合わせ、df.at[df.index[行番号],’列名’] で抽出できる

(↓の記事をきちんと読めば良かった…)
https://note.nkmk.me/python-pandas-at-iat-loc-iloc/

### お試し

“`python:DataFrame
# 列名のみのデータフレーム作成
df = pd.DataFrame({‘person’:[‘a’,’b’,’c’,’a’,’b’,’c’],\

元記事を表示

RuntimeError: DataLoader worker (pid(s) ~) exited unexpectedlyの原因と解決法

# 実行環境
– Windows10 Home
– torch 1.1.0

# PytorchでDataLoaderを使おうとしたところ以下のエラーが発生

“`:実行したプログラム
torch.utils.data.DataLoader(
dataset = dataset,
batch_size = 100,
shuffle = True,
num_workers = 8)

“`

“`:エラー文
RuntimeError: DataLoader worker (pid(s) ~) exited unexpectedly
“`

# 原因
メモリ不足が原因

# 解決策
num_workersをエラーが出ない値まで小さくする
ex) `num_workers = 0` 等

元記事を表示

AttributeError: module ‘torch.utils’ has no attribute ‘data’の解決法

# 実行環境
– Windows10 Home
– torch 1.1.0

## PytorchでDataLoaderを使おうとしたところ以下のエラーが発生

“`:実行したプログラム
import torch

torch.utils.data.DataLoader(
dataset = dataset,
batch_size = 100,
shuffle = True,
num_workers = 0)
“`
“`:エラー文
AttributeError: module ‘torch.utils’ has no attribute ‘data’
“`

# 解決策
`import torch`ではなく、`import torch.utils.data`とすると解決する。

元記事を表示

Pythonのスクリプトを実行するための環境構築(for mac)

最近Instagramをやっていて思うこと、

「いいね、自動化できんかな〜」

を現実化するために調べたところ、[この記事](https://ang.tokyo/insta_auto_likes/)を見つけました。
しかしPythonワカラナイ私は環境構築がキツかったので、やったことを残しておきます。

## 手順
(1) pipのアップグレード

“`
$ python3 -m pip install –upgrade pip
“`

(2) seleniumのインストール

“`
$ pip3 install Selenium
“`
(3) chromedriverのインストール

“`
$ brew tap homebrew/cask
$ brew cask install chromedriver
“`

これで、`python3 <ファイル名.py>`が実行できるようになりました〜:v_tone1:

元記事を表示

Lake Counting(POJ NO.2386)をPython3で解く

#蟻本の練習問題初級編
競プロの勉強中の者です。
探索問題で有名なLakeCountingをPythonを使って解いたので載せます。
再帰関数で解く方が多いのですが、僕はスタックを使って解きました(再帰がまだできない…)
以下が実装したコードです。
テストケースを2通りしか試していないので、処理できないパターンがあったら申し訳ありません。

“`lakecounting.py
n,m=map(int,input().split())
field=[list(input()) for i in range(n)]
visited = [[0 for i in range(m)] for j in range(n)]
move = [[0,1],[1,0],[1,1],[0,-1],[-1,0],[-1,-1],[1,-1],[-1,1]]

cnt=0

for i in range(n):
for j in range(m):
if field[i][j] == “W” and visited[i][j]==0:
sx,sy=i,j

元記事を表示

ラズパイのデスクトップから任意のPythonスクリプトを起動

`home/pi/Desktop/aaaa/my_excellent_script.py`
をデスクトップからダブルクリック(+1クリック)で起動できるようにします。

# Pythonコードに記述
“`python
# これは最初の行に記述。ハッシュ記号も含めて書くこと。
# シバンって呼ばれる。このファイルはPythonスクリプトだよってLinuxに伝える。
#!/usr/bin/env python3

# デスクトップから起動すると、作業フォルダがデスクトップになってしまう。
# 相対パスで色々指定している場合は必要。
os.chdir(‘/home/pi/Desktop/aaaa/’)
“`

# シェルで実行
“`sh
# 実行権限を付与。これでダブルクリックした際に「端末で実行」が出てくる
cd Desktop/aaaa/
chmod +x my_excellent_script.py

# リンクの作成。Windowsでいうショートカット。
# 左がリンク元のフルパス。右は何でもOK。
cd Desktop
ln -s my_excellent_script.py

元記事を表示

bootcampのeasy100をやった記録 11-20

[AtCoderProblemsのTrainingをPython3でやる Easy編](https://qiita.com/hortensia/items/364f33a7909c169cdd45)
↑これの11-20のやつです。

# 11.[ABC068-B Break Number](https://atcoder.jp/contests/abc068/tasks/abc068_b)
Nが$2^i$以上か否かをi=6から0まで降順に調べるとわかります。
全列挙でもいいですが内包表記を使うとオシャレでいい感じだと思いました。

“`python
n=int(input())
a=[2**i for i in range(6,-1,-1)]
for i in a:
if n>=i:
print(i)
break
“`

# 12.[ABC160-C Traveling Salesman around Lake](https://atcoder.jp/contests/abc160/tasks/abc160_c)
これプログラミングコンテス

元記事を表示

pythonでDyson扇風機の操作 やってみた

#はじめに
aloha !
本日(2020/8/17)、浜松では、国内最高の41.1度(タイ)を記録したそうです。
熱中症には十分ご注意ください。
そんな暑い中、我が家では数年前に購入したのDyson Pure Hot + Cool Link(扇風機)もエアコンと併用して大活躍です。
このDyson Pure Hot + Cool Linkをpython3からコントロールしてみようと思います。
どうやら、いろいろ検索してみたところ、MQTT(Message Queuing Telemetry Transport)を使うと実現できそうです。

#準備物
・Dyson Pure Hot + Cool Link (HP03)
・Python3が動くMacなど
・Wi-Fi(同一LANセグメント)
・Wireshark(必要であれば。フィルタをmqttにすると確認しやすいです)

#方針
いろいろ調べていくとDysonアカウント(メールアドレス)とパスワードが必要だそうです。
Dysonの公式アプリ(Dyson Linkアプリ)へ登録するとアカウントを発行できます。
このDysonアカウントと

元記事を表示

Geopandasを使いたいけれどインストールに失敗(関連するパッケージが正しく認識されていない?)

※この記事は問題解決ができたわけではありません。対処がわかったらその段階で追記してゆきたと思います。
追記しました。根本的な問題は解決できていないですが、別の環境をあきらめて作り、geopandasをインストールしました。

**Geopandasを使いたい**
GISデータで扱われる主要なファイル形式としてシェープファイル(.shp)がありますが、
各々のフィーチャにくっついている膨大な量の表データもPandasのように扱うことができれば、その表の値に応じたデータ処理ができればということで調べていた時に[Geopandas](https://geopandas.org/”Geopandas”)でそのようなことができると知りました。

早速今の環境にも導入したい!arcpyとの併用もできるだろうか、と早速インストールをしてみたのですが、ここで早速発生してしまったエラーの対処ができず参りました。

**インストールで行った手順**
普通にconda install geopandasを実行

“`python3
(arcgispro-py3) C:\Users\hoge\AppData

元記事を表示

AIやるうえで知っといた方がよい線形代数の知識

## はじめに

これは私がAIを学んでいくうえで調べた線形代数の知識を纏めたものです。
万人に分かりづらい箇所を纏めたものではありませんが、多くの方が難しいと感じるところでもあると思います。
基本的には諸々のページから引っ張っていた情報を纏めただけですが、よろしければ参考にしてください。

もっと体系的に基本から学びたい!というかたはには[ヨビノリたくみ先生のYoutube](https://www.youtube.com/watch?v=svm8hlhF8PA&list=PLDJfzGjtVLHnc1vTpBaCNKMUl6HauQv1a&index=1)をおすすめします。

## 行基本変形

これは連立方程式を解くときにやっていい操作、と言い換えることができる。

以下の3つ

操作1:ある行を定数倍する
操作2:二つの行を交換する
操作3:ある行の定数倍を別の行に加える

この操作を繰り返すことで連立方程式を解くことができる。

## 階数(rank)の定義

任意の行列Aは行基本変形を繰り返すことによって階段行列にすることができる。このとき、この階段行列のなかの少な

元記事を表示

Flask-paginateの表示文言の日本語化

# 概要
Flaskで簡単にページング機能を実装しようとした際、Flask-paginateが便利です。
しかし、Flask-paginateで表示した場合、表示される文言が英語で表示されてしまう為、
日本語のアプリを作る際にそのままでは使用できません。
今回は、Flask-paginateでの表示文言の日本語化方法を記載します。

## 前提条件
– Flask
– Flask-paginate

## 方法
– Paginateクラスをインスタンス化する際にdisplay_msgを引数に設定する

“`sample.py
from flask import Flask, Response, render_template, request
from flask_bootstrap import Bootstrap
from flask_paginate import Pagination, get_page_parameter

@app.route(‘/index’)
def index():

page_disp_msg = ‘表示範囲 {start}件 – {

GISを扱うための環境づくり arcGIS proとそれに付随するpythonのインストールの記録

買い替えたばかりのPCにGISデータとpythonを扱うための関連ソフトを入れていきます。ArcGISはすでに所有しているBasicアカウントを使用。
**PCの環境**
・windows10(x64)
・intel corei7, メモリ16GB, 256GB SSD

**入手するソフト**
・ArcGIS Pro 2.5 Esri製品サポートサイトから。 ArcMAPとの違いがいまだによく分かっていません。
・Atom テキストエディタは基本的にこれを使う。

**作業手順の記録** 
・まずArcGISをインストール。ファイルの抽出先フォルダにOneDriveのフォルダが勝手に選ばれていたが普通のローカルフォルダにおいてほしいと思いCドライブのユーザーディレクトリに変更しました。OneDriveを避けて展開する方法がわからず、ひとまずは必要ないからとOneDriveごとアンインストール。そのあとはセットアップツールの指示にそのまま従ってセットアップが終了しました。
・ArcGIS Proのインストールと同時に付随してPython環境が自動的に導入されました。

“`
C:\U

ROS noeticでImportError: No module named rospkgを解決する

# ImportError: No module named rospkg
いつもどおり
`rosrun rqt_topic rqt_topic`
したら何故かこのエラーが出たので、同じ目に合った人のためにメモを遺す
# 原因
Ubuntu 20.04.1だとpythonコマンドはpython2系をまだ指しているので、何もしないでrosrunするとこっちが動いてしまう。しかしROS noeticはPython3で動くように作り直されているのでPython2では動かない。
# 解決法
update-alternativesでデフォルトを置き換えてやればいい。一応2系に戻せるようにそっちも登録しておく。
“`sudo update-alternatives –install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives –install /usr/bin/python python /usr/bin/python3.8 2“`
私の手元の環境に合わせて決め打ちしたが、マイナーバージョン一個ぐ

AtCoderProblemsのTrainingをPython3でやる Easy編

[ここ](https://kenkoooo.com/atcoder/#/training/Boot%20camp%20for%20Beginners)のEasy100のことです。
@tnodino さんの[この記事](https://qiita.com/tnodino/items/e4c1caef800e87464093)をみて「面白そうだなー」と思ったので勝手にパクりましたごめんなさい。
10個やるたびにあーだこーだ書いて公開するプランです。
提出したコードと、解いたときの考えと、解説を見て思ったことを書こうと思います。

[1-10](https://qiita.com/hortensia/private/31d7982f6d7481c8a8e1)
[11-20](https://qiita.com/hortensia/items/658ea99b8485f7e0fca4)

ここからまだやってない

21-30
31-40
41-50
51-60
61-70
71-80
81-90
91-100

【AtCoder】Beginner Contest 175 ABCD python 解法紹介

# 成績
初めての参加でした。
ABCを正解しましたが、D問題で挫折。
アルゴリズムは正しいようですが、バグが最後まで取れませんでした。
パフォーマンスは904です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218309/f8383058-b7d3-41d7-1484-39ccdf9c1362.png)

# 感想
色々解説を見てみましたが、問題をどうシンプルに解釈するのか(インデックスを0からに修正したり、負の座標を絶対値で正の座標に移したり)が大切だと思いました。
また解法も自動化にこだわらず、全列挙するような解き方もありなのだと知ることができました。
そして、次回はD問題解きたいです。

# [A問題](https://atcoder.jp/contests/abc175/tasks/abc175_a)
– 私の回答
Rの連続する回数を数えました

“`A.py

input_str = input()
cnt = 0
max_cnt = 0
for tmp in inpu

オブジェクト指向についての論理的な考え方をまとめてみました。

#オブジェクト指向について
#####これから説明する中で使われる用語を簡単にまとめました。
“`
オブジェクト = 全てのデータのこと、物、

オブジェクト指向 = 一言で言うと「抽象的な概念」=それぞれの持つ共通の情報をまとめたものから個別の情報を持った物を作る

メソッド = プログラミングにおける何らかの処理をすること。例えば print(“hello world”)
“hello world”と言うのが**オブジェクト**。これを出力するための処理が**print**になります。つまりprintメソッド)

クラス = 設計図のこと

インスタンス = 設計図(クラス)で作られた実体のこと
“`

##**はじめに**
RubyやPython(オブジェクト指向言語は他にもあります。)と言うのは全てをオブジェクトとして扱っています。オブジェクトと言うのはそれぞれが固有の性質、固有の動作を使って返り値を返します。
例えば、現実世界で例えると、人間一人一人(Aさんと言う人間、Bさんと言う人間。)と言うのは別々のオブジェクトになります。一人の人間に「Aさん」と言うオブジェクトがあ

Python3エンジニア認定基礎試験の独学 Day1

参考書:『Pythonチュートリアル』第3版
購入先:Amazon

1章 食欲をそそってみようか 出題数:1 出題率:2.5%
2章 Pythonインタープリタの使い方 出題数:1 出題率:2.5%

第1章 食欲をそそってみようか
1.pythonの特徴
(1)WindowsでもMacOSXでもUNIXでも簡単に使え、仕事が早く終わるようになる。
(2)シェルスクリプトやバッチファイルに比べると、大きなプログラムを書くために提供された構造やサポートがはるかに多い。
(3)エラーチェック構造ははるかに多く、また超高水準言語として、柔軟な配列や集合、ディクショナリと言った、非常に高水準のデータ型を組み込みで持つ。
(4)Pythonで書いたプログラムは、分離されたモジュールとして再利用が可能だ。
(5)プログラムを小さく読みやすく書ける。
  理由:①高水準のデータ型が、複雑な操作を単一文で表記することを可能にしている。
     ②文のグルーピングは、カッコで囲うことでなくインデントで行われる。
     ③変数や引数の宣言が不要
(6)Pythonは拡張可能である。

2.以下は