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

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

matplotlibで複数の図にタイトルを付ける方法

#はじめに
 Matplotlibで複数の図をまとめて表示するという記事は多くあります。しかし、複数の図にタイトルを付けるというという内容は少なかったので記事にしました。

#方法

“`python:plot.py
#ライブラリを読み込む
import numpy as np
import cv2
import matplotlib.pyplot as plt

#円を描画(白、赤、緑、青)
white = cv2.circle(np.zeros((200, 200, 3), dtype=np.uint8), (100, 100), 50, (255, 255, 255), thickness = -1)
red = cv2.circle(np.zeros((200, 200, 3), dtype=np.uint8), (100, 100), 50, (0, 0, 255), thickness = -1)
green = cv2.circle(np.zeros((200, 200, 3), dtype=np.uint8), (100, 100), 50, (0, 255, 0),

元記事を表示

言語処理100本ノック-39(pandas使用):Zipfの法則

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)[「第4章: 形態素解析」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch4)の[39本目「Zipfの法則」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#sec39)記録です。
「Zipfの法則」は[Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%83%E3%83%97%E3%81%AE%E6%B3%95%E5%89%87)によると以下の説明で書かれていて、平たく言うと**出現頻度が多ければ全体での割合が大きい**という法則。
> ジップの法則(ジップのほうそく、Zipf’s law)あるいはジフの法則とは、出現頻度が k 番目に大きい要素が全体に占める割合が$\frac{1}{k}$に比例するという経験則

# 参考リンク

|リンク|備考|
|:–|:–|
|[039.Zipfの法則.ipynb](https://gi

元記事を表示

【スターターキットNo.2】テキスト分析機能(自動タグ付け/可視化)つき汎用Webスクレイピングツールをさらす

# Easy Customizable Scraper

[前回のスターターキット](https://qiita.com/Makotunes/items/dfde330b5054d7c06e0f)のアクセスが良かったので、第2弾をやります。
今回も簡単に利用でき、簡単に拡張可能な形でスターターキット提供します。

## コンセプト

![screencapture-mockers-io-scanner-2020-02-29-15_20_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/514619/c77b7b8f-2b77-d5ad-e2e1-a50af08f294b.png)

テキスト分析機能つき汎用Webスクレイピングツールです。

以下のような特徴で、ユーザーの開発スタートを支援します。

– 簡単設定
– カスタマイズ性
– テキスト分析機能(タグ付け/可視化)

ソースコードはこちら
https://github.com/makotunes/easy-customizable-scrap

元記事を表示

PythonでSlide(Google版パワポ)を編集しよう(Google APIとPythonで低コストRPA 事例)

# はじめに
みなさんはGoogle SlideやPowerPointで発表資料を作成する機会がどれくらいあるでしょうか?
多くの方が業務内で多くの時間をかけて使用されていると想定されます。

多くの時間をかける発表資料をPythonで操作でき、かつ、発表内容を自動で編集・更新できれば業務効率化にきっと繋がります。
また、Google SlideはPower Pointとしてppt形式に変換してダウンロードできます。
それでは、人気のPythonでGoogle Slideを操作してみましょう。

# 概要
本記事では、Google Drive内にあるSlideのタイトルや本文に対して「読み/書き/消去」を行うためのPython Classを公開します。
Slide内のTableを編集する使用例は別記事にて説明予定です。

この記事は元はGoogle APIのReferenceに準拠したものであり、今回はあえてClassを定義しインスタンス化して使用する例を提示します。

インスタンス化することで複数のSlideを同時に編集できますので是非試してみてください。
また、あくまでClassは

元記事を表示

学校のホームページを自動で更新確認

# はじめに

新型コロナウイルス感染症(COVID-19)のせいで,学校が休校となり最新情報を学校のHPで随時更新するらいいいので,自動で更新を取得,クラスLINEに通知システムを作ってみた.

# 環境

“`
ubuntu19.10
Python 3.7.5
“`

#実装方法

1.学校のホームページの情報を30分に一度取得する.
2.前回取得分のデータとの差分を調べる.
3.差分があればLINE Notifyを用いてクラスLINEに通知

# プログラム

1.学校のホームページの情報取得する.(TOPページと学年ごとの連絡を取得)

“`python
res = requests.get(url1)
res2 = requests.get(url2)
res.encoding = res.apparent_encoding
res2.encoding = res2.apparent_encoding
“`

2.前回取得分のデータとの差分を調べる.

“`python
m = “\n” + link
result = list(set(list1) – set(l

元記事を表示

Pythonではじめる機械学習 個人的備忘録 Part2

前回の続きです。

Pythonではじめる機械学習という本の2章の前半についての備忘録です。
この記事は「Pythonではじめる機械学習」を読んでいる人じゃないとなんのこっちゃだと思います。ぜひ買って一緒に勉強しましょう!

# 教師あり学習
何かを学ぶときはまずその学問や分野で用いられる言葉を身に着けていかなければ会話や議論ができない。初学者である私はまずこの大きな壁を少しずつよじ登っていかなければこの道に入っていくことはできない。ということで少々煩雑ではあるが、初めて耳にする言葉も同時に説明を入れていく。

### クラス分類と回帰
教師あり機械学習は大別すると
・クラス分類
・回帰
に分類できる(これはクラス分類)。

1章でやったアイリスの分類や、SPAMメールかどうかの判断もクラス分類になる。

一方、回帰は連続値予測をおこなう機械学習のことをいう。
例えば
・トウモロコシの収穫量
・年収の予測
・株価の変動
とかである。

### 汎化、過剰適合、適合不足
機械学習で目指すところは汎化(generalize)である。
訓練データから作った予測モデルが、未知のデータに対して正

元記事を表示

言語処理100本ノック-38(pandas使用):ヒストグラム

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)[「第4章: 形態素解析」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch4)の[38本目「ヒストグラム」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#sec38)記録です。
前回ノックの「豆腐」さえ乗り越えていれば簡単です。ラベルを出さなければ「豆腐」対応する必要もないです。

# 参考リンク

|リンク|備考|
|:–|:–|
|[038.ヒストグラム.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/04.%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3%E6%9E%90/038.%E3%83%92%E3%82%B9%E3%83%88%E3%82%B0%E3%83%A9%E3%83%A0.ipynb)|回答プログラムのGitHubリンク|
|[素人の言語処理100本ノック:38](http:/

元記事を表示

【LINE bot】おいら、だじゃレンジャー!その2

#はじめに

以前の作成した、[だじゃレンジャーLINE bot](https://qiita.com/Hexans/items/06b9abdcfb4a838a18f7)の更新。

#問題点

1. 小学生には難解な漢字が多く読めない。
2. 与えられたお題(キーワード)でだじゃれを返せない場合、botからのレスポンスがなく、利用者が不安に。

#目的

1. 漢字にフリガナをふる。
2. だじゃれを返せない場合は、返せない旨を伝える。

#コード

## 1. 漢字にフリガナをふる。

[こちらの記事](https://qiita.com/kt-tsutsumi/items/599f287f15b8e4cb84f3)を参考にした。
手順としては、
1. Mecabで形態素解析
2. 漢字であればふりがなをふる。ふりがなは形態素解析の結果を用いる。
3. ふりがなは括弧書き()で、送り仮名はふりがなとは別に()の外に表示。

“`python:furigana.py
import sys
import MeCab
import re

def henkan(text) :

元記事を表示

Python 標準入力で行列表現

#AtCoderでよく使われる標準入力を使用して3×3の行列を作った

環境 Python 3.7.3

“`python

import pandas as pd

s = [input().split() for i in range(3)]
N = pd.DataFrame(s,columns=list(“123”),index=[“Tokyo”,”Nagoya”,”Osaka”])
print(N)

“`

##入力
9 8 7
6 5 4
3 2 1

##出力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/489142/0d3e3a89-a4f0-f800-91da-59b9dd7fe302.png)

元記事を表示

[HackerRank] Alphabet Rangoli と 再帰呼び出し

# はじめに
[[HackerRank] Alphabet Rangoli](https://www.hackerrank.com/challenges/alphabet-rangoli/problem)
について再帰呼び出しを使用して解いたので記事にしたものです.
以下にネタバレがあるので先に解きたいひとは上のリンクからどうぞ.

# 問題文(要約)
整数Nが入力される.大きさNのアルファベット・ランゴリを出力せよ.(ランゴリはインドのフォークアートであるらしい.)

いくつかのサイズのアルファベット・ランゴリの例↓

### size 3
“`
—-c—-
–c-b-c–
c-b-a-b-c
–c-b-c–
—-c—-
“`
### size 5
“`
——–e——–
——e-d-e——
—-e-d-c-d-e—-
–e-d-c-b-c-d-e–
e-d-c-b-a-b-c-d-e
–e-d-c-b-c-d-e–
—-e-d-c-d-e—-
——e-d-e——
——–

元記事を表示

【Python GUI】Tkinterを使ったDICOMのコントラスト調節とBMP変換

#目的

コード保存。中身は汚い。
– DICOM画像を任意のコントラストに調節しBMPに保存。
– コントラスト調節の式が怪しいかも。

#コード

“`python:WL_WW_changer.py
import cv2
import numpy as np
import glob
import os
import shutil
import os, tkinter, tkinter.filedialog, tkinter.messagebox
from tkinter import filedialog
import pydicom
#from pydicom.data import get_testdata_files

def adjusted_WL_WW():
#delete previous folder
if os.path.exists(“adjusted_WL_WW”):
shutil.rmtree(“adjusted_WL_WW”)

#input WL and WW
WL = int(inpu

元記事を表示

【Deep Learning】SONY neural network consoleをCUIから実行

#コード内容
コード保存のため投稿。 コードは汚い。
SONYが開発した、neural network console(NNC)をCUIから実行。SONYが提供しているNNablaライブラリを使用する。

#準備
– NNCのProject File(*.sdcproj)
– Neural networkのArchitecture(*.nntxt)
– 学習したparameter(*.h5)
– Testするinput data(*.csv)

#実行

“`bash:start_DL.sh
#!/bin/bash

#delete previous output
rm output_result.csv

#folder_dir=`pwd`
sdcproj=`ls *.sdcproj`
testdata=`ls *.csv`
network=`ls *.nntxt`
parameters=`ls *.h5`

#Value test data
nnabla_cli forward -c $network -p $parameters -d $testdata -o

元記事を表示

time-windowを使ってみた

# はじめに
みなさま,はじめまして.
[株式会社オプティマインド](http://www.optimind.tech)にて,GISエンジニアをしている@tkmbnです.
Qiitaへの初投稿です.

# 概要
時間枠のあれやこれをしてくれるライブラリ[time-window](https://github.com/EncodeGroup/time-window)の使い方を解説します.
![Screen Shot 2020-03-02 at 11.29.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285596/3059514a-0bce-b911-3c23-57c5e780b444.png)

複雑な時間枠をスッキリまとめてくれたりします!←このライブラリを使って一番やりたいこと.

# なぜ書いたか

![Screen Shot 2020-03-01 at 23.09.29.png](https://qiita-image-store.s3.ap-northeast-1.amazona

元記事を表示

プログラミングスクール卒業後3ヶ月たった所感

2019年10月に最近youtubeでよく広告を見る某プログラミングスクールに通い、11月より機械学習エンジニア・データサイエンティストとして現職につきました。
卒業後3ヶ月経った今、スクールで学んだことで役立ったこと、今大変なことなどをつらつらと書いていきたいと思います。

# 経歴
2015年4月 食品会社の研究・開発職として4年間務める
2019年7月 プログラミングスクール学習開始
2019年10月 プログラミングスクール卒業
2019年11月 機械学習エンジニア・データサイエンティストとして転職

# スキルセット
## 言語の使用状況
| |スクール|転職後 |
|:–|:–:|:–:|
|HTML|○|○|
|CSS|○|○|
|JavaScript|○|○|
|SQL|○|△|
|Linux|○|○|
|Ruby|○|-|
|Python|-|○|

## フレームワークの使用状況
| |スクール|転職後 |
|:–|:–:|:–:|
|SCSS|○|○|
|jQuery|○|△|
|Vue|-|○|
|Ruby on Rails|○|-|
|Flask|-

元記事を表示

[整理用]Python開発環境

整理がてら自分のPython開発環境のメモ

## 用途

* Deep learning / 画像処理の開発
* リモートセンシング

## 方針

* なるべく楽に導入
* 管理は最低限出来れば良い
* コードを楽に書ける
* 補完やフォーマットなど

## OS: Ubuntu 18.04

* ライブラリなどの導入がWindowsに比べて楽
* 最近はそうでもないけど、Ubuntuじゃないと動かないものもあったので

## 環境管理: Anaconda

* 機械学習で必要なのが一通りインストールされる + 最低限の環境管理が出来るため
* 主なライブラリは以下
* numpyとかAnacondaについてくるのは省く
* geopandasはないとやってられない

“`python

# Deep learning用
pytorch
torchvision
tensorboard

# 画像処理用
opencv

# リモートセンシング用
gdal
qgis
geopandas
“`

## エディタ: VSCode

* Extensionの充実
*

元記事を表示

elasticsearch_dsl 覚書

## 環境
Python3.8.2
elasticsearch-dsl 7.1

Elasticsearch側は面倒だったので、Python上でクエリのみ確認。

### A, Q
“`python
test = A(“terms”, field=”hoge”)
print(test.to_dict())
print(type(test))

test2 = Q(“terms”, field=”huge”)
print(test2.to_dict())
print(type(test2))
“`

“`javascript

{‘terms’: {‘field’: ‘hoge’}}

{‘terms’: {‘field’: ‘huge’}}

“`

### Agg Array
“`python
array_test = [A(“terms”, field=”key_” +str(i)) for i in range(5)]

元記事を表示

Python Windows実行ファイル実行時に陥った罠

# PythonのWindows実行ファイル作成時に陥った罠
Pythonを用いてWindowsの実行ファイルを作成した際に、コマンドライン引数を用いて処理を行たかったが、その際に陥った罠について備忘として記録する。

## コマンドライン引数

### コマンドライン引数を用いたhelloworld
“`hello.py
import sys

str1 = sys.argv[1]

print(str1)
“`

`python test.py helloworld `
`>>> helloworld`

### pyinstallerを使って実行ファイル化
`pyinstaller hello.py –onefile`

### hello.exeの実行
`IndexError: list index out of range`
原因は、コマンドラインを使用しないため、リストが作成できなかった。

## 解決方法
### Input関数を使用

“`hello.py
str1 = input(“please put something”)

print(str1)

元記事を表示

pythonでのcsvファイル読み書きの際の文字コード ~windows環境ver~

# 本稿の投稿経緯
python初心者の私が、csvファイルの読み書きの際のエンコードにたまにエラーに躓くので、その内容のまとめをメモしたもの。同じく**初心者向けの記事**になります。なお、環境はwindows環境になります。

# エラー
csvファイルの読み書きの際に、よく引っかかるエラーについて
### 書き込み時のエラー
“`ruby:エラー内容
UnicodeEncodeError: ‘shift_jis’ codec can’t encode character ‘\u9ad9’ in position 14: illegal multibyte sequence
“`
shift-jisでエンコードできない文字があるよってことですね。ファイル書き込みの際にファイルの文字コードと書き込み文字の文字コードの不一致で発生します。

ちなみにコードの指定箇所はここなど。

“`ruby:コード例
with open(filepath, ‘w’, newline=”, encoding=’shift-jis’) as f
“`

### 読み込み時のエラー
“`rub

元記事を表示

AtCoder Beginner Contest 157 参戦記

# AtCoder Beginner Contest 157 参戦記

## ABC157A – Duplex Printing

1分で突破. 書くだけ.

“`python
N = int(input())

print((N + 1) // 2)
“`

## ABC157B – Bingo

7分半で突破. 書くだけ……ではあるけど、エレガントに書こうと思えばどう書けばいいんですかね……. 特にビンゴ判定のところ.

“`python
A = [list(map(int, input().split())) for _ in range(3)]
N = int(input())

for _ in range(N):
b = int(input())
for y in range(3):
for x in range(3):
if A[y][x] == b:
A[y][x] = -1

for y in range(3):
f = True
for x in range

元記事を表示

【Udemy Python3入門+応用】 19.リストのコピー

**※この記事はUdemyの
「[現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル](https://www.udemy.com/course/python-beginner/ “現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル”)」
の講座を受講した上での、自分用の授業ノートです。
講師の[酒井潤](https://twitter.com/sakaijun “酒井潤”)さんから許可をいただいた上で公開しています。**

##■リストを代入した場合の挙動
“`python:list_copy
x = [1, 2, 3, 4, 5]
y = x
y[0] = 100
print(‘x = ‘, x)
print(‘y = ‘, y)
“`
“`:result
x = [100, 2, 3, 4, 5]
y = [100, 2, 3, 4, 5]
“`
`x`をいじっただけなのに、`y`にまで変更が及んでしまう。

“`python:list_copy
x = [1,

元記事を表示

OTHERカテゴリの最新記事