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

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

pythonにおけるGraphvizの簡単なまとめ(macの場合のみ解説)

## Graphvizのインストール手順

1. homebrewでgraphvizをmacにインストール

“`
brew install graphviz
“`

2. pipでgraphvizをインストール

“`
pip install graphviz
“`

## ノードを生成

__コード__

“`python
from graphviz import Digraph

# pngとして出力
dg = Digraph(format=’png’)

dg.node(‘1’) # 1というラベルがついたノードを設定

dg.node(‘2’) # 2というラベルがついたノードを設定

dg.render(‘./test/dgraph1’) # テストフォルダにdgraphという名前で保存(拡張子は書かない)
“`
__出力結果__

![dgraph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328421/26219280-d91e-d088-14c8-1504ef2024

元記事を表示

【python】表の重複確認と重複を削除する方法(エクセルの重複削除と同等の処理)

#【python】表の重複確認と重複を削除する方法

表の中で重複する要素があるか調べる方法と、重複した値を削除する方法のまとめ。

excelで使う頻度の高い「重複の削除」と同等の処理ができる。

>公式ページ
・[duplicated](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.duplicated.html?highlight=dupli#pandas.DataFrame.duplicated)
・[drop_duplicates](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.drop_duplicates.html?highlight=dupli#pandas.Index.drop_duplicates)

**目次**

1. [重複する行の確認](#1重複する行の確認)
1. [duplicated](#duplicated)
2

元記事を表示

instagramでいいね数が多い投稿者をフォローするツール【25分を1秒に】

インスタグラムで特定のタグのうち、100以上のいいねを獲得している投稿者をフォローする自動化ツールを作りました。人気の投稿を探してフォローするので、バズりそうな投稿主をいち早く探すことが出来るツールになります。インフルエンサーになりそうな人材を確保したり、マーケティングにも使えます。

ニッチなハッシュタグでも、人気投稿になりそうな人をいち早く察知して、フォローすることが出来ます。

1人を選定する時間10秒×150人=1500秒=25分
ツール導入後はボタンクリック1秒で終了します。

とにかく良質なコンテンツを提供するには一流のコンテンツを参考にするしかありません。
一流の人の教えが必要なのです。

https://note.com/merukari_/n/n18c6db183b09

元記事を表示

AtCoder Beginner Contest 094 過去問復習

#所要時間

スクリーンショット 2020-04-02 18.52.21.png

#感想
以前といたので二回目の過去問になります。このレベルのものだと完答できるのですが、もう少し上のレベルのものでしっかり勝負できるようになりたいです。

#[A問題](https://atcoder.jp/contests/abc094/tasks/abc094_a)

a+b>=xだけでなくa<=xであることも必要なので注意が必要です。 ```python:answerA.py a,b,c,d=[int(input()) for i in range(4)] print(min(a,b)+min(c,d)) ``` #[B問題](https://atcoder.jp/contests/abc094/tasks/abc

元記事を表示

二項分布の確率密度関数をPythonで書き起こしてみる

数学や統計に興味があるのですが、数式を見ても記号がありすぎてどれがどれなのかわからなくなったり、すぐに忘れてしまったりするので、学んだことをプログラムに書いてみることにしました。

今回は二項分布における成功回数xの確率を求める確率関数と、xの下側累積確率、xの上側累積確率を求めるクラスを作成します。式の内容を覚えることを目的としてるので、パフォーマンスは考慮しません。

## 今回Pythonで再現する公式

成功確率がpのベルヌーイ試行(二項試行)を全部でn回行ったときの、

### 成功回数がxになる確率を求める関数(二項確率密度関数)
“`math
f(x,n,p) = {}_x \mathrm{ C }_np^x(1-p)^{ n-x } \quad (0 \leqq n;\ 0 \leqq x \leqq n;\ 0 \leqq p\leqq 1)\\
“`

### 成功回数xの下側累積確率を求める関数
“`math
P(n,x,p) = \sum_{i=0}^xf(i,n,p)

“`
### 成功回数xの上側累積確率を求める関数
“`math
P(n,x,

元記事を表示

Docker 上で入門する Apache Hadoop

# はじめに
はじめての並列分散処理のフレームワークとして Apache Beam を利用しているのですが、この辺りの学習をするにあたっては MapReduce などの従来からの用語や概念も頻繁に登場します。そのため、Apache Hadoop に入門してみました。今回は、環境をできるだけ楽に構築できるように Docker を利用しています。

![1600px-Hadoop_logo_new.svg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244338/c15942bc-5683-6db4-27b6-f41c298e5358.png)

# Hadoop 概要
Hadoop は、大容量のデータを処理するための**分散処理のフレームワーク**です。通常は **Linux** 上で動作させます。スケールアウトに優れているため、処理するデータ量が増えたとしても、**サーバーの台数を追加することで性能を向上させることができます。**

Hadoop は、主に次の2つのシステムで構成されます。

– **

元記事を表示

VBA(Excel)でWebページをPDF化,PNG化,JPG化する方法(Slenenium Basic)

#VBA(Excel)でWebページをPDF化,PNG化,JPG化する方法
-概要-
業務でよく使うことがあったので作りました。

Seleniumは、簡単にブラウザ操作を自動化するようなツールです。
よく聞くのは、PythonやJavaScriptでSeleniumをつかう方法ですが、実はVisualBasicで動かすことができます。

特に、日本ではExcelへの依存度が高い企業が多いと思うので、GUIとしてExcelを用いることは心理的抵抗がないのではないでしょうか?(いろいろ言いたいことはあると思いますが…)

-手順-
1.[Selenium Realease](https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0)から、SeleniumBasicをダウンロードする。
2.上のファイルをインストールする。
3.必要なブラウザにあったドライバをダウンロードする。(今回は、Chromeにします)
[Chrome Driver](https://chromedriver.chromium.org/)
4

元記事を表示

WSGI を使う場合と使わない場合

某技術コミュニティ Slack で話していた内容のまとめ。

推測が多分に含まれているので気をつけて欲しい。

## WSGI を使ったり使わなかったりする謎
自分は普段 Python で Web アプリケーションを開発するときは aiohttp Server を使っている。

“` python:main.py
from aiohttp import web
from app import app

web.run_app(app)
“`

だいたいいつもこんな感じのファイルを作って、本番環境で動かすときも (Docker コンテナで) `python main.py` と実行しているだけ。何も難しいことはなく、シンプルに Web アプリケーションを動かしている。

しかし以前 Flask で Web アプリケーションを開発していたとき、本番環境で動かすときは uWSGI なるサーバを使っていた。

あれは何か?
なぜあのときは uWSGI が必要で、今回は使う必要がなかったか?

いや別に、「WSGI が Web アプリケーションのためのインタフェースであり、uWSGI はその

元記事を表示

【python】欠損値(NaN)を含む行列を抽出・削除・変換する方法

#【python】欠損値(NaN)を含む行列を抽出・削除・変換する方法

csvやexcelファイルを読み込むときに、空白セルがあると欠損値(NaN)として読み込まれる。

この欠損値(NaN)が含まれる行列を探したり、削除したり、変換する方法のまとめ。

**目次**

1. [欠損値を含む要素・行列の特定](#1欠損値を含む要素行列の特定)
1. [isna()](#isna)
1. [isna().all()](#1-1-isnaall)
2. [isna().any()](#1-2-isnaany)
3. [isna().all().any()](#1-3-isnaallany)
4. [isna().any().any()](#1-4-isnaanyany)
2. [isnull()](#isnull)
2. [欠損値の数をカウント](#2欠損値の数をカウント)
1. [isna().sum()](#isnasum)
2. [isna().sum().sum()](#

元記事を表示

PipenvからPoetryへお引越しするお話

Pipenvのlockがなかなか終わらないんですが…という不満がチームメンバーから噴出しまして、
これを解消してくれそうなPoetryへお引越しする!

というお話です。

よく見るお話ですね :smiley:

## 前提

– プライベートなPyPIインデックスサーバがある
– バージョンの記述方法は変えない
– `packages`,`dev-packages`それぞれお引越し
– スクリプトもできればお引越し

## 引っ越しツール

[poetry#1701](https://github.com/python-poetry/poetry/issues/1701) や [poetry#663](https://github.com/python-poetry/poetry/issues/663) を見ると、
[dephell](https://dephell.org/) や ワンライナー の方法があるようですが、
上の前提を満たすような感じではありませんでした。

ということで、 [pipenv-poetry-migrate](https://pypi.org/proj

元記事を表示

Cloud Text-to-Speechによるボキャブラリーの強化

## 背景
ある時、息子クンが父さんである私に尋ねた。

息子クン:「父さん、英単語ってどうやって覚えるの?」
父さん :「そりゃあ、学校の授業でも音読するだろう?で、その次に暗唱っていう訓練をするんじゃないのかな?」
息子クン:「まぁ、やっている人はやっているけれど・・・」
父さん :「教科書をまず訳せるようになって、その次のステップで見ないで言えるようにする。そういう訓練が効果的だよ。」
息子クン:「その・・・。暗唱っていうのが、出来ないんだよ。」
父さん :「え?!何回も唱えれば、全部でなくても少しは覚えられるよね?」
息子クン:「少しはね。でも何回もやっているうちに疲れちゃうんだ、で、やる気もなくなって・・・」
父さん :「(マジか、これアカンやつや、勉強嫌いになってもうた、orz)」

![背景_図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121442/aecb0bdf-060b-ff9b-441b-220bcc89a5c8.png)

## 要求分析
「英単語を覚える」という修行はネイ

元記事を表示

東京都のCOVID-19陽性患者数に指数関数とロジスティクス関数をフィッティングしてみた

# 背景

世界のCOVID-19感染者数のトレンドを指数関数とロジスティクス関数にフィッティングし、倍増する期間を計算している人がいました (https://github.com/aatishb/covid) ので、clone して東京都が公開している患者数のデータに当てはめてみました。

なぜ東京都かというと、全国のデータだと地域による事情の差が一つの分布に紛れ込んでしまうので、限られた地域で理想的な感染爆発のモデルに当てはめるほうが合わせこみやすかろうという考えです。また、国内では今一番リスクを抱えている地域でもあります。

分析方法や注意点は Notebook に書かれています。

# 結果

Notebook はこちらにあります: https://github.com/msakuta/covid/blob/master/curvefit-tokyo.ipynb

“`
** Based on Most Recent Week of Data **

Confirmed cases on 2020-04-02 00:00:00 587.0
Confirmed case

元記事を表示

pythonで相対パスの指定の方法で悩んだ話。

自分の備忘録を兼ねて、問題の直接原因とは関係のないソースコードも記載

#事象

pythonでiniファイルを読み込む処理を行おうとしたら、
何故か、`KeyError` が出てしまい上手く行かない。

ソースは以下の通り

“`ini:config.ini
[USER_INFO]
address=testUser
password=testpass
“`

“`python:test.py
import configparser
config = configparser.ConfigParser()
config.read(‘./config.ini’, encoding=’utf-8′)

address = config[‘USER_INFO’][‘address’]
“`

keyの値が間違っている様子もない。

config.iniが読み込めていないのではないかと思い、ファイルの存在確認。
結果、Falseが返却された。

“`python:
import os

print(os.path.exists(‘./config.ini’))
“`

フォルダの

元記事を表示

【Python】複数クラスタの散布図を描くなら

# この記事の目的

複数のクラスターの散布図を描いたときに, 点が重なって見づらいことありますよね.
そこで, “`Plotly“`を使って1クラスターずつ確認できるようなプロットを作成しました.

![plot.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540956/2f952113-958d-b31e-7dfb-f487c65d23e2.gif)

# 背景
例えば, 5つのクラスターに分かれたxy座標を持つこんなデータがあったとき,

![image02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540956/b00ae863-bbba-3bb3-43db-d75b57f687c3.png)

例えば, “`seaborn“`なら1行で以下のプロットが描けます.

“`python
sns.scatterplot(x=”x”, y=”y”, hue=”class”, data=df)

元記事を表示

PythonからRustを呼んで高速化! PyO3 チュートリアル:クラスをラップする その➁

## 概要

1. Pyhtonでアルゴリズムまで書いてあるのは速度面では好ましくないな〜
2. よし、C, C++あたりで書いてあるものを探して、それをPythonから呼んで高速化しよう。
3. なかなかいいライブラリ見つからんな、
4. おっ、Rustていう言語で書かれてるのならあったぞ
5. RustてPythonから呼べんのか??

これは、[PythonからRustを呼んで高速化! PyO3 チュートリアル:クラスをラップする その➀](https://qiita.com/kenmaro/items/8ff37204feb37a4edbae)

の続きになります。

## 目標
目標は、
`Rustのクラス(struct + method)を定義し、それをPythonから呼ぶ`
でしたが、
前回でRustで書かれたクラスをPythonから呼ぶ方法を解説しました。

`クラスのコンストラクタ`および、`プロパティのgetter,setter`もPythonからPyO3経由で呼ぶことができました。

今回は、クラスメソッドをいくつか追加して、`RustからPythonへ

元記事を表示

TWELITE のチェックサムを計算する

「超簡単!標準アプリ」で使われているチェックサムの計算方法は、バイトごとの和の補数。

バイト文字列を入れると補数を計算してくれるツールを作りました。
言語は Python です。

“`

#!/usr/bin/env python3
import sys
chain = sys.argv[1]
chainbytes = bytes.fromhex(chain)
sum = 0
for item in chainbytes:
sum=sum+item
twilitechecksum = 256 – ( sum % 256 )
print(‘{:02X}’.format(twilitechecksum))
“`
実行すると、

“`

./checksum.py 00A01301FF123456
B1
“`

となるので、TWELITEには

00A01301FF123456B1

を送ると良い。

元記事を表示

docker環境下でのtensorflowの使い方

メモ。

docker pull tensorflow/tensorflow:latest-gpu-py3

`
docker run -it -p 8888:8888 -v $HOME:$HOME tensorflow/tensorflow:latest-gpu-py3 bash
`

特に重要なのはgpuが入っていること。
これがなかったらエラーが出た。
jupyterのoptionでやってもできたが、python2になった。

元記事を表示

Googleのロゴをダウンロード → OCRでテキスト化 → HTML上で表示

# 概要

以下の様に、Google 検索のトップページにあるロゴをテキストに変換し、それをHTML上で表示します。

スクリーンショット 2020-04-02 午後8.25.59.png

スクリーンショット 2020-04-02 午後8.11.10.png

# 応用例

画像形式でネット上に公開されている英文の書物などをこの方法でHTMLにまとめ、 Chrome のページ翻訳機能で日本語化して読む、という応用ができます。

# 実

元記事を表示

Mac OSXで「Tello_Video」の環境構築

#はじめに
このページは,

[Tello-Pythonのサンプル「Tello_Video」を動かす](https://qiita.com/hsgucci/items/c9082690c6d0695b722f)

の補足ページです.

※注意
**筆者のMacは古い(High Sierra)ので,試したのはXcode 10です.**
新しいMacでは別の問題が生じるかもしれません...

#概要
DJI公式のTello用Pythonサンプルプログラム「Tello-Python」のうち,
 [Tello_Video](https://github.com/dji-sdk/Tello-Python/tree/master/Tello_Video)
を試すためには、あらかじめ

– 様々な依存ライブラリのインストール
– H.264ビデオのデコードライブラリのビルド

を行う必要があります。

gitの [Tello-Pythonのページ](https://github.com/dji-sdk/Tello-Python/tree/master/

元記事を表示

PythonからRustを呼んで高速化! PyO3 チュートリアル:クラスをラップする その➀

## 概要

1. Pyhtonでアルゴリズムまで書いてあるのは速度面では好ましくないな〜
2. よし、C, C++あたりで書いてあるものを探して、それをPythonから呼んで高速化しよう。
3. なかなかいいライブラリ見つからんな、
4. おっ、Rustていう言語で書かれてるのならあったぞ
5. RustてPythonから呼べんのか??

これは、[PythonからRustを呼んで高速化! PyO3 チュートリアル:簡単な関数をラップする その➁](https://qiita.com/kenmaro/items/88326e94da9509d3b815)

の続きになります。

## 目標
`Rustのクラス(struct + method)を定義し、それをPythonから呼ぶ`
ことを目標にします。

今回は、クラスのパースの仕方と、getter, setterのPyO3経由での呼び方まで解説します。

## 手順
前回`cargo new –lib example`で作ったプロジェクトを使用します。
新しく作ってももちろん問題ありません。

### クラスの宣言
`lib

元記事を表示

OTHERカテゴリの最新記事