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

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

HarmonyEngineっていうサイトを創っていく日記(不定期) 1

# HarmonyEngineってなんやねん

まあ端的に言うと、うちの兄貴が作ろうとしている新しいサービスの実装です。
以下**HE**と呼称していきますね。人生で初めてこういった記事を書くので下手糞ですがお付き合いください。その際使った技術などのアウトプットのために記事を作成していこうと思います。ブログに書くかQiitaに書くか迷ったのですが、結局Qiitaにしました。

#HEの内容

HarmonyEngine、通称**HE**は**普段埋もれてしまっている才能あるクリエイター達を発掘するための新しいサービス**のプロトタイプネームです。と兄貴は言っていますが今のところ概要はあんまし掴めてません。でもサービスの内容的にちょっと面白そうなので制作に加わりました。あと、私のTwitterを見ている方ならわかるとは思いますが、将来やりたいことのためのポートフォリオとして有効活用していきたいなと。

#ちなみに

このサービスの名前は某小説家の中に出てくる名前からとったそうです。まあ**steins;gate**みたいでカッコいいと思うけどね。

#仕様

一応今後のポートフォリオにす

元記事を表示

Python最適化モデルでコスパの良いクリスマスデートをシミュレートする


####Pythonで最適化モデルを作成して安近短なデートプランをシミュレートしてみよう。

#####目的
あまりお金と時間をかけずに楽しいデートにしたい。
#####条件
予算:月末で給料前なので5000円まで。
所要時間:平日で翌日も朝早いので7時待合わせなら12時まで。
コース:出来れば自宅マンションでクッキングデートが安近短で良い。
#####参考データ
#####[政府統計e-Stat](https://www.e-stat.go.jp/stat-search/file-download?statInfId=000031654490&fileKind=0) 曜日,男女,ライフステージ,一緒にいた人,時刻区分別行動者率
この統計データから人気のコースを集約し、さらに経験則から時間当たりのコストや所要時間を加えて以下の表をCSV形式で作ってみた。
ninki 月2~3回はするという女性の人数(単位千)
jikan、cost 普通にかかる所要時間と予算(¥/h)を経験則で付加
![キャプチャ2.PNG](https://qiita-image-store.s3

元記事を表示

Python scikit-learn 現場でよく使う予測モデルTIPS集


###ここではscikit-learn 予測モデルを汎化して現場でコピペTIPS集として掲載します。

####条件
#####1.データ、特徴量
・某エンターテインメント系銘柄の2019年一年分の株価データを使用
・同期間の日経平均インバース・インデックスを使用
・特徴量の最適な組合せか否かについては追及しない
#####2.モデル
・実装方法を趣旨とし学習不足や過学習、予測値の精度といった評価指標については言及しない


####線形回帰
1.単回帰
出来高と株価の相関をみる

“`python
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
npArray = np.loadtxt(“stock.csv”, delimiter = “,”, dtype = “float”,skiprows=1)
# 特徴量(出来高)
z = npArray[:,2:3]
# 予測データ(株価)
y = npArray[:,

元記事を表示

pyusbでオーディオインターフェースコントローラーを作る (2)

大分間が空いてしまったが、[前回](https://qiita.com/c_kuwata/items/2dcf59f7e8e16a79b8d9)の続き。今回は

* Linuxでの動作確認
* Pythonコードからのデバイス状態の変更

この2つ。ただしLinuxではFocusriteのソフトウェアが当然対応していないので、Windowsでは勝手にやってくれた初期化シーケンスを自前で行う必要がある。まずはその解析から。

# Scarlett初期化シーケンスの解析

まずはRatatoskrを起動した上でScarlett 18i20の電源をON/OFFしてみる。

![VirtualBox_Windows 10_07_01_2020_00_40_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531760/a6f54ab2-8a47-994c-bf0f-7f1091343544.png)

かなりの量の通信が行われているが要点となるのは通番のリセットなので、通番の位置に着目して当たりをつける。通番

元記事を表示

AtCoder ABC151 問題D C++ / Python での速度比較

# 概要
[AtCoder ABC151](https://atcoder.jp/contests/abc151) に参加した。問題Dをこの問題にはおそらく最適ではない方法([ワーシャル-フロイド法](https://ja.wikipedia.org/wiki/ワーシャル–フロイド法))でC++/Pytho3で解いて実行時間を測定・比較してみた。

結果は問題サイズがある程ど大きくなるとC++の方が安定して60倍-70倍程度高速だった。TLEの不安が少しでもある場合はPythonで実装するのはやめたほうが良さそうである。

# 経緯
AtCode ABC151 に参加した。問題Dみたとき以下のように考えた。

「蟻本にのってた方法(ワーシャル-フロイド法)でとけるなぁ。でもノード(マス)は上下左右のとしかつながっていないし、隣り合うノード間の距離はいつも1だからもっと効率的な方法ありそう。

でもO(N^3)でN=400だから400^3 = 64,000,000かまぁいけるんじゃない?他の方法考えるのも面倒だしこれでやれば解けるのわかっているしワーシャル-フロイド法でいこう。」

とあ

元記事を表示

インクリメント・デクリメントの書き方のまとめ(Scala、Java、Rust、C言語、C++、Go言語、PHP、Perl、Python、Ruby、JavaScript)

いろんな言語を触っていると、言語の細かい仕様がだんだんごっちゃになってきてしまいますので、メモです。

インクリメント・デクリメントの有無

あり: Java、C言語、C++、Go言語△、PHP、Perl、JavaScript
なし: Scala、Rust、Python、Ruby

Go言語は式を構成する演算子ではなく文(statement)という扱いにすることで、インクリメントの演算子としての問題を回避していて、個人的にはちょうどいい仕様に感じます。

ついでに代入演算子も確認しましたが、こちらはだいたいの言語にあるようです。

# Scala

– インクリメント・デクリメント演算子はない
– 代入演算子はある

“`scala
i += 1
i -= 1
“`

`i += 1` などは `i = i + 1` などのシンタックスシュガー。

参考

[Assignment Operators – Expressions | Scala 2.13](https://scala-lang.org/files/archive/spec/2.13/06-expressions.ht

元記事を表示

言語処理100本ノック-86:単語ベクトルの表示

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)の86本目「単語ベクトルの表示」の記録です。
今回は[前回のノック](https://qiita.com/FukuharaYohei/items/f3d975e7a9a801dd29fc)で300次元まで圧縮した単語ベクトルを表示するだけです。結果を見るだけなので非常に簡単です。[第9章: ベクトル空間法 (I)](http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch9)は今までのノックが重かったのですが、以降は基本的に結果を使うだけなのでたいして重い処理がないです。

# 参考リンク

|リンク|備考|
|:–|:–|
|[086.単語ベクトルの表示.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)/086.%E5%8D

元記事を表示

Tensorflow 2.x で出来ること・出来ないこと・お作法

# Tensorflow 2.x なんもわからん
TF 2.x で手法実装を行なった結果、炎上している人です。TF 2.x が出てきてから一年位経ちましたが、現在までに TF 2.x で出来たこと、出来てないこと、また最近見えてきたお作法についてまとめます。

これ出来るよ?とかこのお作法間違ってない?みたいなのがあったらご指摘なり修正なり下さい。今後この ~~クソ~~ フレームワークで苦しむ人が救われます。

# Tensorflow 2.x で出来ること
## PyTorch、Keras っぽい書き方
Eager Execution が出来るようになったので、 `tf.session` は廃止され、インタプリタで tf の関数を実行できるようになりました。これによってデバッグが容易になった他、実行が簡単になったそうです。

また keras と統合する流れのために、 `tf.keras.layer` を用いた実装 (PyTorch でいう `nn.Module` ?)が推し進められるようになりました。その一方で既存の関数的な実装は `tf.nn` 以下に集約されるようになり、例えば

元記事を表示

【EV3 x Python】mjpg-streamerを使ってPCにカメラ映像をストリーミングする.

# 概要
ev3からmjpg-streamerを使ってカメラ映像をストリーミングする手順を紹介します.ev3devではソフトウェアの導入のみでストリーミングサーバーをセットアップできます.PC側でOpenCVを使って映像を表示するコードを作ります.

# 前提
* PC : mac (macOS Mojave 10.14.6)
* EV3 (ev3dev)
* vscode
* opencv-pythonインストール済み

# MJPG-streamerのインストール
MJPG-streamerをインストールためにapt-getを使いますが,デフォルトの設定のまま,メモリ不足で失敗することがあるのであらかじめスワップ領域を作成してください.やり方はこの記事を参考に作成してください!
[【EV3 x Python】スワップ領域を作成する方法](https://qiita.com/RYoTA1209/items/71d0efeae59930fbcf6b)

そもそもターミナルの開き方がわからない方は↓
[【EV3 x Python】SSH接続をする](https://qiita.com/

元記事を表示

LambdaでCloudWatchLogsのログ保存期間を変更する

# 0. 筆者環境

AWS Lambda: Python 3.8

# 1. 概要

今回はLambda Functionのロググループを大量にログ保持期間の変更が必要になったので、
Lambdaを叩けば一括で変更できるような仕組みを作った。

# 2. 使い方

こーど1とこーど2でLambdaを作成、Lambdaの環境変数に以下を設定し実行。

pattern: 変更したいロググループの名前(正規表現)
days: 変更したいログ保存期間

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237765/4e706f18-5c55-d9c1-1f72-7f28c5655c7b.png)

# 3. こーど1

“`Python3
import boto3
import os

def setLogretention(func_list):
policies_dict = {}
policies = []
days = os.environ[‘days’]

元記事を表示

itertoolsを用いた要素の組み合わせの取得

複数のリストの内容の組み合わせ一覧を取得するために、itertools.productというメソッドを使用すると非常に便利

“`
Input = [“Docment”,”StyleSheet”,”Value”]
Output = [“XML”,”Shema”,”DTD”]
Action = [“Read”,”Write”,”GetRoot”,”EditSubELM”,”EditDescELM”,”Append”,”Insert”,”Iterate”,”Find”,”Format”]

writeObj = list(itertools.product(Input,Output,Action))

with open(“write.txt”,”w”) as writer:
writer.write(str(writeObj))
writer.close()
“`

出力結果は次の通り。
“`
(‘Docment’, ‘XML’, ‘Read’)
(‘Docment’, ‘XML’, ‘Write’)
(‘Docment’, ‘XML’, ‘GetRoot’)
(

元記事を表示

pythonでGhostScriptを動かし、PDFをページ分割して、JPEG画像に変換してみた

#はじめに
こんにちは!
GhostScriptをpythonで使用する機会がありましたので、今回はその中で得られた知見をまとめようと思います。
具体的にはGhostScriptを使ってPDFをJPEG画像に変換(PDF⇒JPEG変換)します。
本稿でやろうとしているPDF⇒JPEG変換は「1ページもののPDFはもちろん、複数ページあるPDFも1ページに分解してJPEG画像として保存していく」というものになります。

#なぜGhostScriptなのか?
GhostScriptは公式サイトにもあるように、PostScript言語やPDFのためのインタプリタになります。

公式サイトより引用
>An interpreter for the PostScript language and for PDF.

本稿でやりたいことをgoogle先生に聞いてみると、pdf2imageやPyPDF2が一般的な解決方法かと思いますが、なぜGhostScriptを使ったのかというと、理由は簡単です。

PyPDF2では変換できず、GhostScriptで変換できるPDFがあったからです笑

なお、G

元記事を表示

英語論文をpdfからコピペしてGoogle翻訳に入れたい

#1.概要
論文をpdfからコピペし、Google翻訳したいときに使用するもの。
出力したconv.htmlを開いて右クリックから翻訳する。
急遽必要だったためめちゃくちゃ適当に作成。メンテの予定も無し。

#2.ソースコード

“`python
“””
論文をpdfからコピペし、Google翻訳に入れたいときに使用するもの。
引数の.txtの末尾が.以外の場合、改行を取り除き、スペースを追加する。
“””
“””
論文をpdfからコピペし、Google翻訳したいときに使用するもの。
htmlで出すので右クリックから翻訳する。
“””

import sys

filepath = sys.argv[1]

with open(filepath, “r”, encoding=”utf-8″) as f:

lines = f.readlines()
newlines = []

for line in lines:
if len(line) >= 2:

if line[-2] == “.”:

元記事を表示

[Python3 入門 8日目] 4章 Pyの皮:コード構造(4.1〜4.13)

#4.1 #によるコメント
– プログラムの中に含まれるテキストで”#”によるコメントはPythonインタープリンタから無視される。
– Pythonには複数行コメントはないため、コメント行、コメントセクションの冒頭には必ず#を入れなければならない。

#4.2  \による行の継続
– 行末に\を置くとPythonはまだ行替えをしていないと思って動く。

“`py

#小さい文字列から長い文字列を作りたければ次のように少しずつ作っていく方法がある。
>>> alphabet = “”
>>> alphabet +=”abcdefg”
>>> alphabet +=”hijklmnop”
>>> alphabet +=”qrstuv”
>>> alphabet +=”wxyz”

#継続文字を使えば見づらくせずワンステップで作ることもできる。
>>> alphabet = “abcdefg” + \
… “hijklmnop” +\
… “qrstuv”+\
… “wxyz”

#行が複数行にまたがる場合にも行継続が必要になる。
>>> 1+2+
Fil

元記事を表示

PythonGUI(コンボボックス)で行列を作成

GUI(コンボボックス)で行列の要素の値を入力し2次元配列型のデータを取得するソースです。行列のサイズ、コンボボックスのリストも変数により変更可能。

“`ruby:qiita.rb
from tkinter import *
from tkinter import ttk
import numpy as np

#入力用のGUI
def GUI_Input(n,m):

root = Tk()
root.title(‘Table Input’)

#入力用フレーム
frame = ttk.Frame(root)
frame.grid(row=0, column=0)

list_Items = [0]*(n*m)
N = n
M = m
k=0
for i in range(0, n):
for j in range(0, m):

valuelist = [1,2,3,4,5,6,7,8,9]
list_Items[k] = ttk

元記事を表示

【Python】 PythonでJSONを使う

# はじめに
Pythonでjsonのデータを扱うことがあったのですが、Python標準のdict型と親和性があるので紹介します。

# jsonとは
[こちら](https://qiita.com/chihiro/items/dd1912c1406dbfe16b72)とても参考になります。ありがとうございます。
JavaScript Object Notation
データを表現するための記法です。
JavaScriptの構文に似ていますが、JavaScriptとは独立して扱われます。
JavaScript以外のプログラミング言語でもJSONを扱うことができる機能が準備されています。

この記事はJSONを使っていくことを中心な記事なので細かい説明は省略します。
形式は以下のようなものです。keyに対してvalueが紐づいているという感じです。

“`
{
“key”:value,
“key”:value,
“key”:value
}
“`

keyとvalueのセットというのはPythonのdictと同じですね。

# Pythonのjsonモジュール
Pythonに

元記事を表示

Blue Prism のプロセスを Python を使って実行する(SOAP)

はじめに
—————-
Blue Prism では、プロセス(ロボット)を WebService として公開し、外部から実行することができます。
この記事では、Python でクライアントを書いて、Blue Prism のプロセスを呼び出してみます。

WebService として公開したプロセスを実行するためには、2つの前提条件があります。[別記事](https://qiita.com/muuuuuwa/items/8fdd65eb0e0b71263644#blue-prism-%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B)を参照して前提条件を整えておきましょう。

> * A. Blue Prism のサーバーサービスが起動していること
> * B. public スイッチで起動したランタイムリソースがあること

プロセスを WebService として公開

元記事を表示

Pythonのパの字も知らない人間がTensorFlowチュートリアルやりながら”完全に理解”していった記録

## まえがき
こんにちは、 Webエンジニアをやっている[ますみん](https://twitter.com/masumi_sugae)と申します。機械学習が巷では流行りに流行っていますね。自分も大学の講義でなんとなーくやった記憶があるのですが、もう既に覚えてません。さすがにチュートリアルくらいやっておかないと流行についていけないだろうという若干後ろめたい気持ちがドリブンにドリブンを重ねたので、今回はTensorFlowのニューラルネットワークのチュートリアルをやってみることにします。

### 注意
この記事は、Pythonを触ったこともない初心者がドキュメントあさりながらあーだこーだやった記録です。やったこと、思ったことをそのまま書いていますので、読みやすさは保証できかねます。

## 環境構築
何から手を付けたらいいのかすらよく分からないけれど、自分の中ではとりあえず「機械学習といえば[Python](https://www.python.org/) + [TensorFlow](https://www.tensorflow.org/)」っていうイメージなので、TensorFl

元記事を表示

ジェネレーター

“`py:forループで
l = [‘おはよう’, ‘こんにちは’, ‘こんばんは’]

for i in l:
print(i)
“`

“`:forループでの実行結果
おはよう
こんにちは
こんばんは
“`
これをジェネレーターを使って書くと、

“`py:ジェネレーター1
def greeting():
yield ‘おはよう’
yield ‘こんにちは’
yield ‘こんばんは’

g = greeting()

print(next(g))
print(next(g))
print(next(g))
“`

“`:ジェネレーター1の実行結果
おはよう
こんにちは
こんばんは
“`
ジェネレーターを2つにすると、

“`py:ジェネレーター2つ
def greeting():
yield ‘おはよう’
yield ‘こんにちは’
yield ‘こんばんは’
g = greeting()

def counter(num=10):
for i in range(num):
yiel

元記事を表示

Python初心者がとりあえず動くものを書いてみた(復習用)part1

#はじめに
こんにちは。プログラミング(Python)歴約4か月の初心者です。
具体的には、TechAcademyさんの「Pythonコース」と「データサイエンスコース」を各2ヶ月ずつ受講しました。
本記事は、これまで私が学習したことを整理する目的で書きました。上記コースでどのようなことが学べるのか、また受講後にどのようなことが出来るようになるのか、参考になれば幸いです。(特に本記事では「Pythonコース」の内容を書かせて頂きます)。
不格好な部分も多々あると思いますが、よろしくお願いいたします。

#Pythonコースで学んだ内容
変数、オブジェクト、関数、メソッドとは?というような基礎から始まり、よく使用する構文(条件分岐if-elif-else, 繰り返しfor/while, 例外処理try-except)、シーケンス(リスト・タプル・セット・辞書)の種類と扱い、オブジェクト指向プログラミング、各ライブラリ(Numpy・Pandas・Matplotlib・Pillow・Imageio・scikit-learn)の使い方を学ぶことができました。定期的に演習課題があり、モデルデータ

元記事を表示

OTHERカテゴリの最新記事