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

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

AtCoder Beginner Contest 051 過去問復習

#所要時間
スクリーンショット 2020-01-15 22.23.51.png

#感想
今回は意外と早く解けました。
DPやグラフなどの典型問題は解けるようになってきましたが、実験して把握する問題とか数列の問題とかが苦手なのかもしれません。

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

綺麗にかけたと思ったらreplaceで良いことに気づいた…

“`python:answerA.py
print(” “.join(input().split(“,”)))
“`

“`python:answerA_better.py
print(input().replace(‘,’,’ ‘))
“`

#[B問題](https://atcoder

元記事を表示

Raspberry Piを用いた室内監視

#はじめに
Qiita初投稿です.よろしくお願いします.
#提案
RaspberryPiとセンサで安価な監視システムを作りたいと思いました。具体的には、研究室内にRaspBerryPi Zero,RaspBerryPi camera,人感センサ(HC-SR501)を設置し、人を検知したらカメラで撮影し,その画像をSlackに送信する監視システムです(未完成).

#使用した機材
・RaspberryPi zero
・RaspberryPi camera
・HC-SR501人体赤外線感応モジュール
・ジャンパーワイヤー(メス・メス) 3本

![35B3DEB4-8FBA-453F-943E-1122772F86F7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557268/aee61ea6-cbbb-93c4-2351-5ad2b8597e69.jpeg)

#実装
人感センサが人を検知したら、RaspberryPi cameraで撮影するプログラムは下記の通りです。

“`Python:moni

元記事を表示

Pythonで、デザインパターン「Adapter」を学ぶ

GoFのデザインパターンを学習する素材として、書籍「[増補改訂版Java言語で学ぶデザインパターン入門](https://www.hyuki.com/dp/)」が参考になるみたいですね。

ただ、取り上げられている実例は、JAVAベースのため、自分の理解を深めるためにも、Pythonで同等のプラクティスに挑んでみました。

# ■ Adapter(アダプター・パターン)
Adapterパターン(アダプター・パターン)とは、GoF (Gang of Four; 4人のギャングたち) によって定義されたデザインパターンの1つである。Adapterパターンを用いると、既存のクラスに対して修正を加えることなく、インタフェースを変更することができる。Adapterパターンを実現するための手法として”**継承を利用した手法**”と”**委譲

元記事を表示

スクレイピング時のプロキシ対策

PythonのRequestsモジュールは環境変数のプロキシを使用しています。なので環境変数として設定してやりましょう。APIの利用時も同様です。
※ここで設定するプロキシはプログラム内でのみ有効です。

以下の関数をmainの最初に呼んでやることでrequestsでプロキシを抜けられるようになります。

“`Python
import os

# Proxy setting
def proxy_setting():
proxy_user = ‘proxy_user’
proxy_pass = ‘proxy_pass’
proxy_url = ‘http://******:8080’
os.environ[“http_proxy”] = ‘http://’ + proxy_user + ‘:’ + proxy_pass + proxy_url
os.environ[“https_proxy”] = ‘http://’ + proxy_user + ‘:’ + proxy_pass + proxy_url
“`

元記事を表示

言語処理100本ノック-88:類似度の高い単語10件

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)の88本目「類似度の高い単語10件」の記録です。
すべての単語から似たやつを抜き出します。これまた、自分のメールボックスや議事録等からやってみたい処理ですね。
技術的には前回の内容とほぼ同じです。

# 参考リンク

|リンク|備考|
|:–|:–|
|[088.類似度の高い単語10件.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/09.%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E7%A9%BA%E9%96%93%E6%B3%95%20(I)/088.%E9%A1%9E%E4%BC%BC%E5%BA%A6%E3%81%AE%E9%AB%98%E3%81%84%E5%8D%98%E8%AA%9E10%E4%BB%B6.ipynb)|回答プログラムのGitHubリンク|
|[素人の言語処理100本ノック:88](http://qiita.com/segavvy/ite

元記事を表示

静岡県の点群データDBをVue+Leafletで表示してみた

## 今回作ったもの
[静岡県点群データマップ](https://shizuoka-pcdb.herokuapp.com/)
[GitHub – shizokaPCDB](https://github.com/Kanahiro/shizuokaPCDB)
![スクリーンショット 2020-01-16 1.35.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73197/ab1fccb5-5423-2c37-0543-7f6d5dda839d.png)

## 注意
この記事はLIDARデータをLeafletに表示する記事ではありません。
点群データベースの情報(データの取得地や工事日など)を表示するものです。

## はじめに
![スクリーンショット 2020-01-16 1.49.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73197/9a7c4882-95a2-a542-43d7-2e19eef08d7a

元記事を表示

Oputunaを用いて RF or lightGBM を最適化

## 個人的な備忘録

Boston住宅価格データを使用

“` model.py
# !pip install optuna lightgbm
from functools import partial

import optuna
import lightgbm as lgb

from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_validate
from sklearn.metrics import mean_absolute_error
from sklearn import datasets

def objective(X, y, trial, clf = ‘RandomForestRegressor’):
“””最小化する目的関数”””

if clf == ‘RandomForestRegressor’:
# RF

元記事を表示

Pythonで決定性有限オートマトンを実装して、3の倍数を判定する

automata-libライブラリを使うと、Pythonで簡単にオートマトンを実装できます。
# この記事でやること
Pythonで決定性有限オートマトンを利用して、2進数が3で割りきれるかどうかの判定を行います。よく教科書に載っている例題ですね。
入力が3の倍数であれば受理され、そうでなければ拒否されます。
状態遷移図にするとこんな感じです。
![mod3dfa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/19807/553e19e2-974c-919b-53d3-b7a681627425.png)

大学の宿題であれば自分で実装した方がいいと思いますが、ここではautomata-libライブラリで実装します。

# 環境
## OS
– [Pengwin 1.4.1](https://www.whitewaterfoundry.com/) on WSL

## Pythonバージョン
Python 3.8.1

## 使うライブラリ
[automata-lib](https://pypi.org/

元記事を表示

Pythonで始めるgRPC

# 概要

gRPCはあらゆる環境で実行できるモダンで高性能なオープンソースRPC(Remoto Protocol Call)フレームワークです。Protocol Buffersを使ってデータをシリアライズし、高速な通信を実現できるという利点がある。様々な言語やプラットフォームに対応しており、http/2を活かした双方向ストリーミングなどが可能である。Protocol Buffersを使用してシンプルにサービス(通信するデータや関数)を定義でき、APIの仕様を明文化できる。

※この章は[gRPC](https://grpc.io/)を参考にしています。

git: [k-washi/stereophonic-Sound-System/proto](https://github.com/k-washi/stereophonic-Sound-System/tree/master/proto)

Golang versinのgRPCの記事を[Golangで始めるgRPC](https://qiita.com/kwashi/items/533bbb7d09e723c8b56f)に記載してい

元記事を表示

Tensorflow2のMirroredStrategyを使って複数GPUで計算する

# 概要

非常に簡単。tf.distribute.MirroredStrategy`tf.distribute.MirroredStrategy`のスコープ内でネットワークを構築するだけ。変更は数行ですむ。

# Keras APIを用いた実装例

ここでは簡単な例として隠れ層が1層のみからなるシンプルなネットワークを構築しています。

“`python
import tensorflow as tf
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, Input
from tensorflow.keras.optimizers import Adam

with tf.distribute.MirroredStrategy().scope():

# このブロックでネットワークを構築する
x = Input(32, dtype=tf.int32, name=’x’)
hidden = Dense(20, activation=’relu

元記事を表示

[Python3 入門 9日目] 5章 Pyの化粧箱:モジュール、パッケージ、プログラム(5.1〜)

#5.1 スタンドアローンプログラム

– テキストターミナル、またはターミナルウィンドウでPythonを実行している場合、Pythonプログラムの名前に続いてプログラムファイル名を入力する。

“`py
#test1.py
print(“This stadalone program works!”)

#結果
$ python test1.py
This stadalone program works!

“`
#5.2 コマンドライン引数

“`py

#test2.py
import sys
print(“Program arguments:”,sys.argv)

#結果
$ python test2.py
Program arguments: [‘test2.py’]

$ python test2.py tra la la
Program arguments: [‘test2.py’, ‘tra’, ‘la’, ‘la’]

“`

#5.3 モージュールとimport文

– **モジュール**はPythonコードをまとめたファイルである。
– 他のモジュールのコ

元記事を表示

モンテカルロ法で琵琶湖の面積の割合を求める

###Discraimer
このPostには、技術的な内容と同様かそれ以上に滋賀県民が滋賀県をひたすら愛するだけの内容が含まれています。純粋な技術記事を読みたい方は他をあたってください。技術的にすごいことは何も起きていません。

##滋賀県民
こんにちは。滋賀県民です。
皆さんは、 1/6という数字を聞いて何を思い浮かべるでしょうか。

実はこれは、滋賀県全体の面積にしめる琵琶湖の面積の割合です。
この数字は、県内の小学校5年生以上なら誰しも必ず知っているはずの値で、結構な割合の県民は知っています。

というのも、滋賀県では、**フローティングスクール** という事業が展開されており、県下の小学5年生は、琵琶湖上に浮かぶ学習船(一応県立学校という位置づけです)の中で一泊の宿泊を含む研修活動を行います。この船は、**うみのこ** と呼ばれていて、2018年、30年以上親しまれた船が引退して、今はリニューアルされた新船となっています。

なかなかいい体験なので、滋賀県民で良かったことの一つです。

ぜひ一度ご覧ください。 : https://uminoko.jp

ちなみにですが、このうみ

元記事を表示

Create Page/Todo Block with Notion API

![notion-banner.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144058/688ed8f7-92cb-3234-37fe-52c8ebbf3916.png)
> How to add a Page / Todo block with the [Notion](https://www.notion.so/) API call.
> I used https://github.com/jamalex/notion-py

> ☕️ Ex) Starbucks man drinks nine o’clock every morning and check.

## Ready
– [python](https://www.python.org/) v3.5 ↑
– token_v2
✅ Notion web login -> F12 -> Application -> Cookies -> token_v2
![notion00.png](https://qiita-image-store.

元記事を表示

Siri に Slackbot が投稿した AWS 請求額を読み上げる仕事をさせる

# はじめに
iPhone を使い始めて10年弱、 Siri が全く働いていないことに気付きました。
スマートスピーカーが流行っている昨今、自分の Siri にももっと活躍して欲しいので Slackbot が投稿した AWS 請求額を読み上げてもらうことにしました。

結果から見せるとこんな感じです。
料金を聞くと…
スクリーンショット 2020-01-14 22.12.01.png

Slackに投稿した内容を読み上げてくれました。
スクリーンショット 2020-01-14 22.12.21.png不均衡データの確率予測

# はじめに
機械学習でクラス分類を行う際、クラス分類結果と同時に、それらのクラスに属する確率も得たいときがあります。
正例のデータ数が負例のデータ数に比べて極端に少ない場合(このようなデータを不均衡データと呼びます)、それらのデータをすべて用いて予測モデルを構築すると、予測結果も負例となることが多く、正例のデータを精度よく分類することが難しくなる傾向があります。そこで、負例のデータ数が正例のデータ数と等しくなるようにアンダーサンプリングしたデータを用いてモデルを構築することが多いです。これによって、正例のデータも精度よく分類できるようになりますが、正例と負例のデータ数のバランスがもとのデータと異なるため、確率の予測結果に、アンダーサンプリングによるバイアスが生じてしまいます。

この問題への対処法は、すでに下記のブログなどにまとめている方もいらっしゃいますが、アンダーサンプリングしたデータで構築したモデルが出力する確率のバイアスを除去し、補正する方法について、備忘録としてまとめます。本記事では、確率予測のためのモデルとして、シンプルにロジスティック回帰モデルを利用します。

– [U

元記事を表示

poetryで作ったpythonプロジェクトをVSCodeに読み込ませるとエラーになった時の対処法

# はじめに
Poetryの環境をVSCodeに読み込ませたらimportエラーになってしまいました。
その後、無事にエラーが解消されたのですが、ハマったのでメモを残します。

# 環境
Mac mojave

# なぜ起きるのか
Poetryは仮想環境を設定値に従って作成するのがデフォルトの動作です。
VSCode的にはそんなん知ったことではないので、poetryを無視して読み込もうとするもライブラリが全く見つからないという自体になり解決できないとしてエラーになります。

# それじゃどうするのか
設定変更してpoetry環境の作り直しをする必要があります。
Poetryはどんな設定でも一度作ってしまうとその環境を優先して読み込む仕様のようなので、手順を踏んで作り直さないと思った通りになりません。

## 1:設定確認
まずはpoetryの設定を確認します。
ここで重要なのは`virtualenvs.in-project`です。
エラーになる人はここが`false`になっているかと思います。

この設定はpoetryでインストールしたものをどこに配置するかの設定になっており、`fal

元記事を表示

Pythonが書きやすいんじゃなくて、numpyやscipyが書きやすいんだよ

numpyやscipy
をもっと良い言語に移植してくれ。

元記事を表示

集合内包表記

“`py:1
s = set()
for i in range(10):
s.add(i)
print(s)
“`

“`:1の実行結果
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
“`

これを内包表記にすると

“`py:内包表記1
s = {i for i in range(10)}
print(s)
“`

“`:内包表記1の実行結果
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
“`

リスト内包表記の時と同様に、
3で割って余り0の数字のみ集合に入れるには

“`py:内包表記2
s = {i for i in range(10) if i % 3 == 0}
print(s)
“`

“`:内包表記2の実行結果
{0, 3, 6, 9}
“`

元記事を表示

集合のメソッド add remove clear

“`py:1
s = {1, 2, 3, 4, 5}
s.add(6)
print(s)
“`

“`:1の実行結果
{1, 2, 3, 4, 5, 6}
“`

“`py:2
s = {1, 2, 3, 4, 5}
s.remove(5)
print(s)
“`

“`:2の実行結果
{1, 2, 3, 4}
“`

“`py:3
s = {1, 2, 3, 4, 5}
s.clear()
print(s)
“`

“`:3の実行結果
set()
“`
空の辞書{}と区別する為に、
空集合はset()と表す。

元記事を表示

Python で任意の関数をカリー化……もどき。

Python で任意の関数をカリー化するのは、結構面倒です (参考: [Pythonでカリー化を書いてみる](https://kazuhira-r.hatenablog.com/entry/20120401/1333295408))。

ですが、呼び出し可能オブジェクトを利用して一見カリー化できているように見せかけることはできます。 カンタンナコト。

## あぁ、そんな簡単に言うな

カリー化というとラムダ式を頑張ってこねくり回したくなりますが、この方法だと Dunder メソッドの実装を工夫するだけで同様のことができます。

“`python
import re

class Curried:
def __init__(self, f, regex=None, *args, **kwargs):
self.__f = f
self.__regex = regex if regex is not None else \
re.compile(‘{}\\(\\) missing \\d+ required’.format

元記事を表示

OTHERカテゴリの最新記事