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

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

pythonでymlからcommandをloadして実行する

yml fileからcommandを読み取るプログラムを書いたので掲載しておきます
### yml file
“`
cmd1:
command: ls -l
type: ls

cmd2:
command: ls -a
type: ls
“`

### python code
“`
import subprocess
import yaml

with open(‘sample.yml’) as file:
obj = yaml.safe_load(file)

cmd1 = obj[‘cmd1’][‘command’]
types = obj[‘cmd1’][‘type’]

print(‘実行モードは’, types,’です。’)
print(cmd1)
subprocess.run(cmd1, shell=True)

print(‘\n’)

cmd2 = obj[‘cmd2’][‘command’]
types = obj[‘cmd2’][‘type’]

print(‘実行モードは’, types

元記事を表示

google colabでの学習について

#概要

google colabはびっくりする位便利ですが、google driveから直接データを読み込むと異様に遅いという問題が存在します。(私の場合画像データ)
というわけで、.p ファイルやら .h5 ファイルやらを使って読み込みを高速化(普通にデバイスから読むのと同じくらいの速度にする)をしようと思います。

*各バイナリファイルがどのようなものかは特に説明しないので、知りたい方は他のページを参照してください。

#全体の流れ

人によってやり方は変わると思いますが、私の場合

1. データのパスをまとめた .txtファイルをtraining,validation,test用にそれぞれ作成する
2. 1.で作成した.txtファイルを .pファイルに入れる(たぶんここはそんなに早くならない)
3. 先ほど作成した.pファイルを用いて名前とデータ(今回は.png)を対応させた.h5ファイルを作成する

という感じで作ります。

私がいま取り組んでいるタスク(音声合成)の影響でoutputも仰々しく書いていますが、分類タスク等ならわざわざinputとoutputを分けずにタプルで

元記事を表示

featuretoolsの使い方メモ

# featuretoolsとは

機械学習を行う際に対象ドメインについての知識がある場合は適切な特徴量を考えて特徴量として与えることで精度向上を図ることができますが、ドメイン知識がない場合も足し合わせたりaggregateしたりして偶然当たりの特徴量を見出すことを期待するという作戦を取ることができます。あり得る組み合わせを片っ端から試すという総当たりアプローチであるので、総当り特徴量エンジニアリング(brute force feature engineering)と呼んだりするようです。

featuretoolsは手作業でやってると面倒な特徴量づくりを半自動化しちゃおうというpythonライブラリです。とても便利です。

featuretools公式チュートリアル
https://docs.featuretools.com/en/stable/

本記事ではこちらのブログのコードに沿ってやっていきます

#

元記事を表示

Pythonで入門 遺伝的アルゴリズム

– 遺伝的アルゴリズムについて、基本的で簡単なところを勉強として書いていきます。
– 理解を深めるために遺伝的アルゴリズムを実際にPythonでコードを書いて、いくつか問題を解く形で動かしていきます。

# 遺伝的アルゴリズムとは

英語ではgenetic algorithm。初出は1975年、ミシガン大学のジョン・H・ホランド教授によって提案されたそうです。

– [遺伝的アルゴリズム – Wikipedia](https://ja.wikipedia.org/wiki/%E9%81%BA%E4%BC%9D%E7%9A%84%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0)
– [ジョン・H・ホランド – Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A7%E3%83%B3%E3%83%BBH%E3%83%BB%E3%83%9B%E3%83%A9%E3%83%B3%E3%83%89)

ある程度、各個体で個別となる属性を持たせた「遺伝子」「染色体」扱いの要素

元記事を表示

matplotlibのfigureとaxesを使って複数のグラフを描く

# 概要
matplotlibをドキュメントを読まずに場当たり的に使っていると、
イマイチよく分からないままになるfigureとaxesをさらっと分かった気になる記事
(分かるわけではない)

# どうしてこれを書いたか

ちょっとドキュメントを読んだら分かった気になったので、
他の人にも分かった気になって欲しかったから。

# ちゃんと理解するには

– [公式](https://matplotlib.org/) を読む
– [matplotlibのめっちゃまとめ](https://qiita.com/nkay/items/d1eb91e33b9d6469ef51)
– [matplotlibの階層構造を知ると幸せになれる(かもしれない)](https://qiita.com/ceptree/items/5fb5e9e6f29d214153c9)

# 内容

## 前提

以下は省略して書きます。

“`python
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
“`

元記事を表示

Pystanを使った状態空間モデル練習 -デレステイベントアタポン形式 2001位ボーダー-

## 概要

* 本でStanを使った状態空間モデルによる分析方法を勉強したから、実際のデータで練習してみたもの
* 今回はとりあえず以下のモデルで動かしてみた
* ローカルレベルモデル
* 平滑化トレンドモデル
* ローカル線形トレンドモデル
* 時変係数モデル(説明変数はイベント期間の長さのみ)
* 結果としては、まだ全然うまくフィットできてない
* トレンドとイベントの長さのみでは説明しきれないため
* 他に特徴量作って時変係数モデルでの分析は、追々やりたい
* 今回作ったスクリプトたちは[ココ](https://github.com/kzy611/qiita/tree/master/dereste_event_border/2001/script)のc1~c4。

## Pystan使う前の準備

* pystanインストール

`pip install pystan`

* 少しハマったところ
* `pystan – Unable to find vcvarsall.bat`というエラーが出てバタバタした
* 解決方法
* [ココ](

元記事を表示

Azure Computer Vision APIを用いて、テキストの抽出(Read API)やーる(Python3.6)

# はじめに
画像からテキスト抽出をやってみました

# 開発環境
– Windows 10
– Anaconda
– Python 3.6
– OpenCV 4.4.0
– Azure Computer Vision API
– Computer Vision クライアント ライブラリ(必要なら)

# 導入
1.[Azureポータル](https://portal.azure.com/)にログインします
2.Computer Vision APIのリソースを作成します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/db52fef2-972e-fe1b-d430-d2914d5cdc75.png)

3.キーとエンドポイントをメモします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/f5c0b265-c718-98d6-893a-e11adabf078d.png)

元記事を表示

文字列検索の課題で速度アップのためにやったこと

会社の開発合宿で文字列検索の速度アップをするというアルゴリズム問題があったので挑戦しました。
ちなみにわたしは既存のものを参考に類似品を作ったりリファクタリングしてちょっと改良するのが得意な、いわゆるコピペプログラマです。

# 1. 課題
事前に下記課題の一部を隠した状態で一緒に隠した状態で実装したサンプルとテストデータ、その処理結果ファイルが提供されます。
>■プログラム内容
>——————–
> ・複数のテキストファイルに対し、複数件の文字列の検索実現し、次を出力する
>   - 該当文字列が何件含まれているか(複数テキストでの総数)
>   - 該当文字列が含まれているテキストファイルの個数
>
> ・コマンドプロンプト、もしくは、Windows PowerShell上で実行すること
> ・「program」に対して、次の引数を指定する
>   program フォルダ 入力ファイル 出力ファイル
>  フォルダ:検索対象ファイル(複数)を格納する
>  入力ファイル:検索文字列の一覧を記載
>  出力ファイル:検索結果
>
> ・検索の際、大文字・小

元記事を表示

pythonによるダイクストラ法の実装

#はじめに
ダイクストラ法をpythonで実装しました。
投稿は慣れていませんが、出来る限りわかりやすく書いたつもりです(嘘)

大学で最近グラフ理論を学んだことで、ふと最短経路を導き出したくなりました笑
コードは汚いですが、誰かの参考になればと思います!

#ダイクストラ法とは
ダイクストラ法は「重み最小の経路」を求めるアルゴリズムです。ダイクストラのアルゴリズムの基本的なアイデアは次の通りです。
1.頂点を探索済みの重み最小の経路を、確定した部分と未確定部分に分ける
2.未確定な部分への経路を確定部分との間の辺の値を用いて更新する。
3.逐次的に確定した重み最小の経路の頂点を一つずつ増やしていく
4.以上の操作をすべての頂点の最短距離がわかりまで行う

何を言っているかわからない人は以下の動画を見るのをお勧めします!
[ヨビノリのダイクストラアルゴリズムの解説](https://youtu.be/X1AsMlJdiok)

#作ってみた
さっそく、コードの紹介をします。

“`py:dijkstra.py
import heapq
class Map: #Mapクラスを定義

元記事を表示

plotly散布図で使いそうなtrace, layoutのテンプレート

# はじめに
plotlyで散布図を描く際に使いそうなtrace, layoutのテンプレートです
必要ない個所は適宜消してください

# 環境
Mac OS
python 3.8.5
plotly 4.12.0

# pip

“`terminal
pip install plotly
“`

# traceテンプレート

“`python
import plotly.offline as offline
import plotly.graph_objs as go

import plotly
colors = plotly.colors.DEFAULT_PLOTLY_COLORS
“””
デフォルトカラー取得
[‘rgb(31, 119, 180)’, ‘rgb(255, 127, 14)’, ‘rgb(44, 160, 44)’, ‘rgb(214, 39, 40)’, ‘rgb(148, 103, 189)’,
‘rgb(140, 86, 75)’, ‘rgb(227, 119, 194)’, ‘rgb(127, 127, 127)’, ‘rgb(188, 189,

元記事を表示

機械学習のためのデータセット

# What
これは機械学習の初歩的なモデルであるパーセプトロンモデルを実装するためのデータセットを可視化する記事です

#Content
###データセットの可視化 with Numpy Pandas Matplot
パーセプトロンモデルとは何か?についてはここでは述べません。有名なモデルですので調べればいろいろ出てきます。
機械学習を勉強し始めて初めてコーディングしたモデルなのでまとめます。

今回使用するデータセットは、**UCI Machine Learning Repository**という機関?orもしくは一種オープンソースから花に関するデータセットIrisを例題に使います。

まずは、データセットの確認をします。osモジュールとpandasライブラリを使ってオンラインからデータセットを取得し中身を表示します。

“`py
import os
import pandas as pd

s = os.path.join(‘https://archive.ics.uci.edu’, ‘ml’, ‘machine-learning-databases’, ‘iris’, ‘i

元記事を表示

Pythonでクイックソートの実装

100個の整数からなるリストを乱数で生成して、クイックソートするコードです。
partitionを用いない単純なクイックソートで実装しました。

最後に実行時間を計測するコードをつけています。

“`python:quick_sort.py
from typing import List
import random
import time

def quick_sort(numbers: List[int]) -> List[int]:

numbers_set = set(numbers)

if len(numbers_set) <= 1: return numbers p1 = numbers[0] p2 = 0 for i in range(len(numbers)): if numbers[i] != p1: p2 = numbers[i] break pivot = p1 if p1 > p2 else p2

le

元記事を表示

LINEでyahoo天気から好きな地域の天気を通知してもらおう!

#開発経緯
現代で誰しもが遭遇したことのあるはず「通信制限」
外出先で自由にスマホを使用できないのは辛いですよね。
~~月のパケット制限を大きくすればよいだけの話ですが~~

そんな中でも通勤や通学、さらには天気が知りたいなんてことは毎日あります。
通信制限中だとすぐにわからなくて困りますよね。

テキストだけでも見られれば何とかなりそう、、、
そこでLINEからメッセージを送ってもらえばいいのでは!?

そんなこんなで、最終目標としては始発と終着をLINEで送ったら返信で知りたい情報が得られることができればなぁということで開発を始めてみました。

多分テキストなら、アプリを見るよりも早くできるはず、、
#yahoo天気の情報を取得
まずは、各駅の情報収集だ!!

と行きたいところですが、まずは手始めにLINEでメッセージのやり取りをすることや、スクレイピングの練習として各地域の天気を通知するシステムを作ります。

ひとまず、yahoo天気からスクレイピングを用いて情報持ってきましょう。

“`python
import requests
from bs4 import Beauti

元記事を表示

AtCoder Beginner Contest 181 参戦記

# AtCoder Beginner Contest 181 参戦記

## [ABC181A – Heavy Rotation](https://atcoder.jp/contests/abc181/tasks/abc181_a)

1分で突破. 書くだけ.

“`python
N = int(input())

if N % 2 == 0:
print(‘White’)
else:
print(‘Black’)
“`

## [ABC181B – Trapezoid Sum](https://atcoder.jp/contests/abc181/tasks/abc181_b)

4分で突破. A以上B以下の合計を求める式が出てこなかったせいで、Bまでの合計からA-1までの合計を引く式に直したりしてたら時間がかかった.

“`python
N = int(input())

result = 0
for _ in range(N):
A, B = map(int, input().split())
result += B * (B + 1) //

元記事を表示

Braveブラウザに対応した日本中のサイトをTwitterAPIで集めてみる

__この記事は、Braveブラウザにクリエータ登録した日本中のサイトを紹介することを目的としています。__

## Braveブラウザとは何か

Mozillaの元CEOの開発したChroniumベースの新しいブラウザです。アドブロックできる高速なブラウザ、あるいはコンテンツ製作者へ投げ銭できるブラウザとして認知されていますが、__広告を表示させるとお小遣いが入ってくるブラウザ__でもあります。端的には、ユーザーが広告を管理できることを目指したオープンでセキュアなブラウザです。

Braveブラウザについては「グーグルが消える日 Life after Google(ジョージ・ギルダー著)」を参考にしつつ、[こちらのqiita記事](https://qiita.com/NP_Systems/items/43213990274467d8f7e9)にまとめました。

## Adsense、アフィリエイトに代わる第3の収益化の仕組み
コンテンツ製作者から見ると、__BraveブラウザはAdsenseやアフィリエイトに替わる第3の収益化の仕組みでもあります__。Braveブラウザを使うとユー

元記事を表示

データサイエンスを独学した1年間をまとめてみた。

#1 はじめに
データサイエンスに興味をもった大学生が1年間の勉強の振り返りをする記事です!

ではさっそく本題に入ります!

#2 この記事の目的
**① 自分の学習の整理**
1年間くらいやっていると、今までどういった学習をしてきたか忘れてきます。
いったん整理し今後の勉強に活かしたいという想いからです。
なので主観的な表現が多く読みづらいかもしれません。
なにか質問・意見がございましたらコメントお願いします。

**② 初学者の方に参考に!**
[シンニホン](https://www.amazon.co.jp/dp/B084SP5PLQ/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)という書籍でも書かれていましたが、今後より多くの人がデータサイエンス学び始めると思います。
自分もこの本を読んで将来この分野で活躍したいと考え、学習を本格的にはじめました。
そこで初学者の方にこの記事を参考にしてもらえればなと考えました。
![シンニホン.jpg](https://qiita-image-store.s3.ap-northeast-1.a

元記事を表示

Paiza Python入門編7: 関数を理解しよう

##01:関数について学習しよう

“`lesson.py
#printもtextも関数

#関数が値をを使った処理を行うことができる 
#その値を「引数」という 下記のprintの場合は”hello world”
#関数の中で処理した結果を「戻り値」として返されて変数などに代入することができる
print(“hello world”)

#inputであればキーボードから入力された値の文字列が「戻り値」となり変数にに代入できる
text=input()

“`
関数の働き
・長いコードを分割して整理→見通しが良くなる
・コードに名前をつけられる
・コードを何度でも呼び出せる→再利用できる
・コードを組み合わせられる

##02:関数を作ろう

“`lesson.py

# 関数を作る
#def=definition
def say_hello():
print(“hello world”)
say_hello()

“`

“`text.txt
hello world
“`

“`less

元記事を表示

gTTS で日本語の発話 (テキストファイルの読み上げ)

こちらと同じことを gTTS で行ってみました。
[OpenJtalk で日本語の発話 (テキストファイルの読み上げ)](https://qiita.com/ekzemplaro/items/1d669ffa8915db110180)

“`py:kusamakura02.py
#! /usr/bin/python
#
# kusamakura02.py
#
# Nov/01/2020
#
# ——————————————————————–
from gtts import gTTS
import sys
# ——————————————————————–
sys.stderr.write(“*** 開始 ***\n”)
file_in = sys.argv[1]
file_out = sys.argv[2]
#
fp_in = open(file_in,encoding=’utf-8′)
tex

元記事を表示

[aws] sqs メッセージの送受信

## 概要

業務でSQSを使用する機会があったため、その際に行った動作確認方法をまとめます。

## SQSとは

SQS(Amazon Simple Queue Service)はメッセージキューであり、データの送受信を仲介する役割を持つサービスです。
メッセージブローカとして有名な`RabbitMQ`とほぼ同じ機能を持っています。

SQSを使用する利点は以下の通りです。
https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html

* セキュリティ
* AWS KMS で管理されたキーを使用してキューのメッセージのコンテンツを保護するため、重要なデータを送信することが可能
* 耐久性
* メッセージの安全性を確保するため、 Amazon SQS 複数のサーバーに保存
* 可用性
* 冗長なインフラストラクチャを使用して同時実行性が高いメッセージへのアクセスと、メッセージの作成と消費のための高い可用性
* スケーラビリティ

元記事を表示

メール を指定した時間で定型分を送信するプログラム by Python

#モジュールをインポートする。
import datetime
import smtplib
import ssl
from email.mime.text import MIMEText
import sys, codecs

sys.stdout = codecs.getwriter(“utf-8”)(sys.stdout)
gmail_account = “” #→自分のメールアドレスを入れてください。
gmail_password = “” #→自分のメールアドレスパスワードを入れてください。
gmail to = “” #→送信したいメールアドレスを入れてください。
send_name = “ぷーやん”

#メールを送る期間を決める。
today_date = datetime.date.today()
delivery_date = today_date + datetime.timedelta(days=7)
print(today_date,delivery_date)

#メールデータ(MIME)の作成
subject = “{0}様、{1}分の発注書をお送りします。

元記事を表示

OTHERカテゴリの最新記事