Python関連のことを調べてみた2019年11月09日

Python関連のことを調べてみた2019年11月09日
目次

IPアドレスをKibana+Elasticsearchでプロットするメモ

#目的
いろんなサーバを運用しているのですが、どこの国からアクセスされてるかをプロットしたい!
(Elasticsearch + Kibana + Python3で)
でもLogstashは使わない(事情があって使えない)・・・という時のメモ(普通ない)

#環境
ubuntu 18.04
Elasticsearch 7.4
Kibana 7.4
※Elasticsearchについてはいろいろ情報があるので、9200ポートで動いてるのが前提で書いてます。
 同じくKibanaは5601で動作中

#使用するモジュールのインストール

“`
sudo pip3 install python-geohash
sudo pip3 install geoip2
sudo pip3 install elasticsearch
sudo pip3 install pytz
“`

#geoip2用のマップをダウンロード
MAXMINDのページから「GeoLite2 City (MAXMIND DB版)」をダウンロード
[MAXMIND](https://dev.maxmind.com/geoi

元記事を表示

aaaaaaaaa

class Human {
private int age = 0;
public void birthday() {
age++;
print(‘Happy Birthday!’);
}
}

元記事を表示

WordPressに大量の画像をアップロードする

wordpressに大量の画像(1万枚以上)をアップロードする必要があり、『Media UP FTP』を使ってやろうとしたが、余りにも多すぎたせいかエラーが出た。そもそも読み込みに時間がかかりすぎて、まともにアップロードが出来なかった。
そこで、pythonでブラウザを操作して、RPA的にWordpressに画像をアップロードすることにした。
なお、WordpressのテーマにはAffinger5を利用している。他のテーマを使ったことがないので、他の環境で動く中は不明。
使用するブラウザはChromeです。

“`python

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from selenium.webdrive

元記事を表示

pythonでXMLRPCを使ってFC2ブログ等を更新する方法

pythonでXMLRPCを使ってfc2ブログを更新する例です。
自動でブログを投稿したい時なんかに非常に便利だと思っています。

“`
import xmlrpc.client
# xmlrpcで使用するドメイン
DOMAIN = “http://blog.fc2.com/xmlrpc.php”
# xmlrpcで使用するBLOG_ID
BLOG_ID = “”
# xmlrpcで使用するUSERNAME
USERNAME = “xxxxx@xxx.xxx”
# xmlrpcで使用するPASSWORD
PASSWORD = “xxxxx”

contents = {}
contents[“title”] = “タイトル”
contents[“description”] = “記事”

proxy = xmlrpc.client.ServerProxy(DOMAIN)
proxy.metaWeblog.newPost(BLOG_ID, USERNAME, PASSWORD, contents, 1)
“`

元記事を表示

【Python】 Bottleのソースコードを読んでみる その2

この記事は[前回](https://qiita.com/nyancook/items/7c00037c225986279eb1)の続きになっていますが、単独でも問題なく読めるはずです。
まあ、自分用の整理のための記事ですが…

# 本丸のBottleクラス

いよいよ天守閣の`Bottle`クラス。
まずは前回からの流れで、`__call__`メソッドから。

“`bottle.py

class Bottle(object):

def __call__(self, environ, start_response):
“”” Each instance of :class:’Bottle’ is a WSGI application. “””
return self.wsgi(environ, start_response)

def wsgi(self, environ, start_response):
“”” The bottle WSGI-interface. “””
try:

元記事を表示

pipのライブラリーを一括で自動更新するコマンド

自分用の備忘録です。
他の方も参考になれば幸いです。

updateできるライブラリーがあるか、確認する。
コマンドプロンプトで入力する

“`
pip list –o
“`

アップデートが一つしかない場合は以下のコードを入力

“`
pip install -U パッケージ名
“`

本題

まとめてアップデートしたい場合は、新しくライブラリーを入れます。

“`
pip install pip-review
“`

インストール完了後、以下のコマンドでアップデートが開始されます。

“`
pip-review –auto
“`

元記事を表示

ディープラーニングさえあれば、競馬で回収率100%を超えられる

![4370674310_b118d0f62a_c.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280076/a136d9bb-956d-2b10-6418-85302ddbbc07.jpeg)
pohotos by Pythonでライフゲームの実装

# 初めに
久しぶりにPygameを使ってプログラムを実装しました。今回はゲームから少し離れてライフゲームを実装しました。(名前にゲームが入っていますがゲームじゃないのでセーフ)実装の難易度はそこまで高くないです。

# ライフゲームとは
ライフゲームは簡単に言うと生命のシミュレーションです。時間の経過とともに生物が誕生したり、死滅していく様子が観察できます。ライフゲームにはほんの少しのルールがあり、それに従ってセルと呼ばれるブロックの個数が更新されていきます。

## ライフゲームのルール
ライフゲームの更新規則は誕生、生存、死に分けられます。
誕生はセルが死んでいるとき、隣接するセルに生存しているが3つのときに新たにそのセルに生存しているセルが誕生します。
一方で、生存しているセルは隣接する生存しているセルの個数が3または4のときに生存し、それ以外のときに死滅します。ここでの死滅は現実世界の過疎や過密に対応しています。
ここで下の図では、中心のセルはそれぞれ左から誕生、生存、死(過疎)、死(過密)の規則が適用されます。
![Screenshot from 2019-11-09 00

元記事を表示

Github ActionsでPipenv + Pytestの自動テストを行った

# 概要
前回[「Travis CIでPipenv + Pytestの自動テストを行った」](https://qiita.com/devara/items/fb0f144ac859f529839a)でTravis CIを使った自動テストを実施したが、[Github Actions](https://help.github.com/ja/actions/automating-your-workflow-with-github-actions/about-github-actions)が使えるようになったので、こちらでも試してみた。
実際に試してみたリポジトリは下記である。
https://github.com/doara-developer/weatherlib

# Github Actions
GithubのCI/CDツール。現在はまだベータ版だが、まもなく標準サポートされる。[ベータ版への参加リクエスト](https://github.com/features/actions)を送ることで利用可能。私の場合は申請してから数日後に通った。
申請が通ると下記のようなActionsタブが

元記事を表示

UbuntuにpipでDaskがインストールできない

“`
pip install “dask[complete]”
“`

したのに、以下のようなエラーが出る。

“`
ERROR: Command errored out with exit status 1:
command: /home/xxx/.virtualenvs/main/bin/python3 -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-r_tsl8qg/psutil/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-r_tsl8qg/psutil/setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ bdist_wh

元記事を表示

ラズパイでモーターを動かしたかったので、WaveshareのMotor Driver Boardを使ってみた

# とりあえず動画

[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/65pnIw8lZFw/0.jpg)](http://www.youtube.com/watch?v=65pnIw8lZFw)

こんなマニアック記事誰が読むんだ。。

Raspberry Piには、ある分野に特化したHATと呼ばれる拡張基盤がたくさん存在します。
今回、ラズパイでモーターを動かす任務が舞い込んできました。
最初はブレッドボードで頑張っていたのですが、面倒になり、

いやいや、なんかHATを探せばいいやん!!!

というわけで探しにかかりました。

## HATの条件
– ラズパイのGPIOが全て生き残ること。
– 電池だけでラズパイ本体の給電もできること。
– 5000円以下
– 2つのモーターのセットが可能

の4点でした。

そして見つけたのがこれ!!
![20191106_234520.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/519741/65

元記事を表示

VTuberの生放送開始時に得られるデータから機械学習で関係性のある放送を判別したかった

機械学習初心者がVTuberの生放送開始時に得られるデータから機械学習で関係性のある放送を判別しようとした記事です。

##どのような結果が欲しいか
VTuberの放送には、個人枠とコラボ枠というものがあります、個人枠と呼ばれるのは文字通りそのVTuber一人で行う配信、そしてコラボ枠は複数人で行われる配信です、このコラボ枠では1つの放送に複数のVTuberが参加する場合と参加するVTuberそれぞれが配信し複数の放送が同時に行われる場合があります。
今回は、コラボ放送の中でも、同時に行われている複数の放送を機械学習で判別しようとしました。

##使用するデータ
今回用意したデータは以下のような形式になっています。

|開始時間|チャンネルID|VTuber名|配信タイトル|性別|所属|
|——–|——–|——–|——–|——–|——–|
|2019-10-20 11:32:06.823761+00|UCwePpiw1ocZRSNSkpKvVISw|Mary Channel / 西園寺メアリ【ハニスト】|【カップヘッド】キ

元記事を表示

気象×Python 〜衛星降水データ〜

JAXAから提供されている**GSMaPデータ**をpythonで読み出して、描画していきたいと、思います。
#1. GSMaPとは
![header_GSMaP_Logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354874/b643b023-aad2-154e-d1bc-794c83b76227.png)

▶複数マイクロ波放射計搭載の衛星群観測によって、時間降水量を推定したプロダクトで、[衛星全球降水マップ Global Satellite Mapping of Precipitation](https://sharaku.eorc.jaxa.jp/GSMaP/index_j.htm) の略。
▶日本列島は気象庁AMeDASによる密な時間降水量データが存在しているものの、雨量観測の乏しい山岳域や海上域における降水量は得られないため、衛星により推定された降水量を使うメリットは大きいのでは。

てなわけで、普段はというとGrADSやGMTなどのツールを使って気象データを解析していますが、pyt

元記事を表示

Spleeterを簡単に使えるGoogle colaboratoryのノートを作成しました.

#どこにあるか
[ここ](https://colab.research.google.com/drive/1EjysPW–w5a-NuQHkiCjL3mZg8y7Zdey)においてあるので使ってみてください.GPUを使用するので処理速度がかなり早いです.ただでGPU貸してくれるGoogle最高!!
#使い方
エラーが出たらランタイムの再起動をして,準備の章からセルを一つずつ実行し直してください.そうすれば,大概のエラーは解決すると思います.
もし,download時にnetwork〰なエラーが出る場合はもう一度そのセルを実行し直してください.ファイルの生成のタイミングによって発生するようです.ブラウザーChromeに変えると問題なく動くかもしれないです.
##準備
はじめに,[このノート](https://colab.research.google.com/drive/1EjysPW–w5a-NuQHkiCjL3mZg8y7Zdey)をplaygroundモードで開いてください.画面上部にあります.
![image.png](https://qiita-image-store.s3

元記事を表示

気象×Python 〜全国合成レーダー〜

気象レーダーによるエコー強度・エコー頂高度を描画していきたいと、思います。
#1. 全国合成レーダーについて
▶気象庁保有の全国20台の気象レーダーで観測した10分間隔のレーダーエコー強度・エコー頂高度が京都大学生存圏研究所より提供されている。
▶10分間隔の降水強度や雨雲の高さから降水システムを把握できる。

エコー強度 エコー頂高度
キャプチャ.PNG キャプチャ1.PNG[ゼロから作るDeep Learning]誤差逆伝播法でニューラルネットワークに逆伝播処理を実装

#はじめに
この記事は**ゼロから作るディープラーニング 6章誤差逆伝播法**を自分なりに理解して分かりやすくアウトプットしたものです。
文系の自分でも理解することが出来たので、気持ちを楽にして読んでいただけたら幸いです。
また、本書を学習する際に参考にしていただけたらもっと嬉しいです。

#ニューラルネットワークに逆伝播処理を実装
前回の記事で、誤差逆伝播法をするために必要なパーツは全て実装することができました。そこで今回はそのパーツを実際に使って誤差逆伝播法を行ってニューラルネットワークに逆伝播処理を実装したいと思います。

**1, パラメータの初期化・レイヤの作成**

“`python
from collections import OrderedDict
class LayerNet:
def __init__(self, input_size, hiden_size, output_size, weight_init_std = 0.01):
self.params = {}
self.params[‘W1’] = weight

繰り返し2乗法

# 繰り返し2乗法

繰り返し2乗法のアルゴリズムをpythonで書いた。
繰り返し2乗法とは、大きい数によるべき乗の計算を効率化するテクニックである。
具体的には、べき乗数を2の累乗の和に分解する。
例えば、$3^{50}$を計算する場合を考えると、
$50 = 2^5 + 2^4 + 2^1$と表せるため、$3^{50} = 3^{2^{2^{2^{2^2}}}} * 3^{2^{2^{2^2}}} *3^2$ と変形できる。2乗を繰り返し計算することにより、3を50回かけるよりも格段に早く計算することが可能。

以下がその実装になる。

“`python
def pow(x, n):
ans = 1
while n:
if n % 2:
ans *= x
x *= x
n >>= 1
return ans
“`

Discord.py 0.Xのエコーボットを1.Xに移行するだけ

# 経緯
以前Python3.6を利用したDiscordのメッセージをボイスロイドに読ませるために作ったプログラムが、Python3.7にしたら使えなくなっていた。(1年前から)
それとDiscord.pyのバージョンがかなり古かったので更新したかったためです。(更新してから動かないことが発覚)

いろいろダメになっているのと、Pythonを久しぶりに使いたかったので改修しよう!
# 環境
今回想定している環境は以下の通りです。
・Python 3.7.4
・Discord.py 1.2.4
・Windows10

Pythonの環境設定などは他のページとかを参考にしてください。
エディタなどお好きなのをどうぞ

# エコーボットの改修
簡単なエコーボットを作りたいと思います。
前回Discord.py 0.xの時に作ったものなので今は使えませんでした。

“`EchoBot.py
# Discord.py 0.x
import discord
client = discord.Client()

@client.event
async def on_ready():
pr

PythonでYahoo!ニュースのタイトルと配信日時を取得する

###こんにちは

ふと
“`cd desktop/python
“`をして
“`ls
“`したところ、3分クッキング的にできるスクレイピングがあったので記事にしようと思います。

###最初に

「ではこちらが環境設定のできているPCになります〜〜」なんてアシスタントの人が持ってきてくれるわけでもないので環境設定からやりましょう。

ちなみに僕の環境はmacOS Catalina10.15です、不具合だらけで最近よくいろんなアプリが落ちます。

あ、Python3は入ってる前提でお願いします。

今回用意するモジュールは
“`BeautifulSoup“`と“`requests“`です
どちらも入っていない人は“`pip3 install 〇〇“`でインストールしてください。
これでとりあえず材料が揃った感じです。
ここまでで3分経ってそうですね、頑張っていきましょう。

###次に
ターミナルを開いて“`cd destkop“`(ここは自分が保存したい場所でいいです)をして保存先を決めましょう。オススメはデスクトップに“`Python“`というファイルを

Pythonのリスト内包表記を使って色々やってみよう

#1.はじめに
 Pythonに関して記事を書くのは初めてですね。最近はnimなるマイナー言語を嗜んでいるのですが、本当にマイナーなのでPythonも並行して勉強しつつ、友人たちに「nimはいいぞ、ジョージ…」とnimを布教する日々を過ごしてます。
 さて話は逸れましたが、今回はPythonのリスト内包表記で色んな問題を解きつつリスト内包表記に慣れていこうかなという記事を書こうかなと思います。

#2.リスト内包表記の表現の仕方(ラムダ式とかif文とか)
まずは基本から
###全要素が同じ値のリストを作りたい。
“`python:
a=[0 for i in range(10)]
#[0,0,0,0,0,0,0,0,0,0]
“`
###ある規則に則った値を要素に持つリストを作りたい。
例えば交差1の等差数列

“`python:
a=[i for i in range(10)]
#[0,1,2,3,4,5,6,7,8,9]
“`
関数f(x)を用いて

“`python:
def f(x):
return x**2
a=[f(i) for i in range(10