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

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

Google ColaboratoryでEnd-to-Endシングルチャネル音源分離

夏休みなので,ディープニューラルネットワークで音源分離の学習と実行をおこなうプログラムの実装を行いました.
できるだけ誰でも利用できるように,Google Colaboratory上でDNNの学習が行えるようにしてあります.

# End-to-End音源分離
話者Aの音声と話者Bの音声が混合された信号A+Bから,元のAとBを分離するような技術を音源分離といいます.音声は長らく波形をフーリエ変換して得られるスペクトログラムを特徴量として分析されてきていました.しかし,近年,混合信号の波形から分離信号の波形を直接推定するような手法が考案されており,特にEnd-to-End(E2E)音源分離などと呼ばれます.

## Dual-path RNN TasNet
End-to-End音源分離のディープラーニングを使った手法の一つとしてDual-path RNN TasNetと呼ばれるものがあります.
Dual-path RNN TasNetはEncoder, Separator, Decoderの3つの部分からなります.
![DPRNN_architecture.png](https://qi

元記事を表示

Pythonで解く【初中級者が解くべき過去問精選 100 問】(018 – 023 二分探索)

# 1. 目的
[初中級者が解くべき過去問精選 100 問](https://qiita.com/e869120/items/eb50fdaece12be418faa)をPythonで解きます。
すべて解き終わるころに水色になっていることが目標です。

本記事は「018 – 023 二分探索」です。

# 2. 総括
pythonには“`bisect“`があるのでそれを使えば二分探索はできますが、応用問題に対応するためには自分で書けるように練習する必要があると思いました。

# 3. 本編

## 018 – 023 二分探索

### 018. [LDS_4_B – 二分探索](http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_4_B&lang=ja)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668985/997cc877-0f32-02b6-c19a-7d3756a95e54.png)

####

元記事を表示

Pythonのroundは厳密にはroundじゃない

# round関数
小数を伴う数字を整数にしようと思った時にround関数を使うと思うのですが、これは厳密には丸め関数にはなっていません。
具体的には以下のようになります。

“`python
>>> round(3.5) # 4になってほしい
4 # 4になる
>>> round(2.5) # 3になってほしい
2 # 2になる (<-??) >>> round(2.50000001) # 3になってほしい
3 # 3になる
“`
これは[公式ドキュメント](https://docs.python.org/ja/3/library/functions.html?highlight=round#round)でも触れられていて、整数に丸める場合は (偶数)+0.5 になっている時には切り上げられずに切り捨てられます。
これは浮動小数点の性質によるもので整数に丸める時にはこれ以外のケースは特に変わらないようです。

# numpyのround
組み込み関数のroundがダメならnumpyのroundを使えばい

元記事を表示

【AWS】AWS CDKでECRを構築する

みなさんAWS CDK使っていますか?
私はCFnを使用していたのですがYAMLで書くのがいろいろ辛くなってきたので、最近AWS CDKに乗り換えました

という訳で今回は、AWS CDKを使ったECRの構築方法を書いていきたいと思います

# 環境

![language](https://img.shields.io/badge/language-python-blue.svg) ![python3.8](https://img.shields.io/badge/python-^3.8-blue.svg) ![pipenv](https://img.shields.io/badge/package_manager-pipenv-blue.svg)

# 前提

以下のコマンドがインストール済み

– pipenv
– aws-cdk

# ディレクトリ構成

“`
.
├── Pipfile
├── Pipfile.lock
├── README.md
├── app.py # CDKのPython用メインスクリプト
├── cdk.json # CDKのコンフィグ
├── cd

元記事を表示

【VueSlsApp】LambdaでPYTHONPATHを指定して外部ライブラリをシンプルに使う

注:本記事はnote記事の転載です。内容の更新があった場合noteのほうを更新します。qiita記事が古くなってきている場合、noteもご確認ください。

https://note.com/thiroyoshi/n/nfcb0be8c0a22

こんにちは。thiroyoshiです。

今回は、LambdaでPythonライブラリを使うときのちょっとしたテクニックを紹介したいと思います。これをVueSlsAppに組み込みました。見た目などは何も変わらないですが、ソースがシンプルになるのでオススメです。

VueSlsAppのことをご存じない方は、以下の紹介記事とマガジンからどうぞ。
https://note.com/thiroyoshi/n/na16112b4ec1b

デプロイしてあるものは、以下から実際に触ってみてもらえます。
https://vueslsapp.thiroyoshi.com/

VusSlsAppのリポジトリは以下です。
https://github.com/thiroyoshi/vueslsapp

**目次**

– LambdaでPythonライブ

元記事を表示

ArUcoマーカーを使ったカメラの位置姿勢の取得

# はじめに

– ArUcoマーカーってカメラの自己位置推定に便利な気がしてたんですが、探してもいいサンプルがなくて詰まったのでメモ
– (もっといい書き方あれば教えてほしいです、、、)
– コード、素材、カメラパラメータ等はここに置いてます ⇨ https://github.com/naruya/aruco

# 環境
– python3.7

# 素材

– shisa.mp4

![shisa.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188173/1d855f77-bf99-5871-b6c1-332fe946f36b.gif)

# 出力
![sample1 (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188173/88c53333-d509-65a8-cc89-a91b9b1be2fe.gif) ![sample2 (1).gif](https://qiita-image-store.

元記事を表示

ランダムな文字列を生成してみた

## はじめに
ランダムな文字列(今回は6文字の英小文字)を生成するプログラムをいくつかの言語で実装しました。
記事の作成者のスキルは、素人がほぼ独学でプログラミングを学んだ程度です。
記事中にコードの記述がありますが、おかしい箇所やアンチパターンなどありましたらコメントいただけると幸いです。

## 目次
1. [Herokuでアプリ名を自前にしたかった](#herokuでアプリ名を自前にしたかった)
1. [実装](#実装)
1. [C](#1-c言語)
2. [C++](#2-c)
3. [Python](#3-python)
4. [Ruby](#4-ruby)
5. [PHP](#5-php)
6. [Node.js](#6-nodejs)
7. [Swift](#7-swift)
8. [シェルスクリプト](#8-シェルスクリプト)
9. [JavaScript(HTML埋め込み)](#9-javascripthtml埋め込み)
10. [実装まとめ](#10-実装まとめ)
10. [結論](#結論)
11. [終わりに](#終わりに)

## Hero

元記事を表示

MSformsの自動回答スクリプトを通してselenium入門

###はじめに
私が住んでいる寮では毎朝点呼があり、コロナ渦のため3月ごろ点呼がMSformsへ変わりました。
毎朝起きる→スマホを開ける→teamsを開く→formsを開く→毎日同じ回答を送る 作業が億劫…と思ったためこのスクリプトを作ろうと思いました。
seleniumについて何も知らなくてもコードが書けるようになる記事を書ければいいなと思ってます。
**※注意 この記事で使用したのはMSformsですが同じようにコードを書けばGoogleフォームでも利用できます。**

###環境

+ Windows10
+ Python 3.7

###seleniumとは
seleniumとはwebブラウザを自動で動かすためのフレームワークです。
[seleniumクイックリファレンス](https://www.seleniumqref.com/)
この辺を参考にしていただけたらいいと思います。
####ライブラリのインストール
seleniumドライバを動かすためのライブラリをインストールします。

“`
pip install selenium
“`

####ドライバのイ

元記事を表示

累積分布関数をソートで求める(Python版)

この記事はRubyで書いた[累積分布関数をソートで求める](https://qiita.com/kaityo256/items/690a463b6b865da80de6)をPythonで書き直して加筆したものです。

# はじめに

ある確率変数の確率密度関数(probability density function, PDF)を知りたい時、ナイーブにはヒストグラムを使うが、ビンの切り方に試行錯誤が必要だし、きれいなグラフを得るのにかなりの測定回数が必要になって面倒くさい。こんな時、確率密度関数ではなく累積分布関数(cumulative distribution function, CDF)を見る方がきれいだし、ソート一発で求まるので楽だ。以下では正規分布に従う乱数について、PDFで見た時とCDFで見た時の違いについて紹介する。動作確認はGoogle Colabで行った。

# ヒストグラムで確率密度関数を得る

まずはヒストグラムで確率密度関数を得る方法を見てみる。後で必要になるライブラリもまとめてimportしておく。

“`py
import random
import mat

元記事を表示

Cythonで行プロファイリング

# 概要

Cythonコード「`*.pyx`」内の「`cdef`」関数内を行プロファイリングする方法

# 1. ライブラリのインストール

“`
pip install line_profiler
“`

# 2. pyxファイルの改変

## 2.1. ファイル冒頭に行プロファイル宣言追加

pyxファイルの先頭にコメント行として、プロファイル宣言を設定する

変更前)

“`
# -*- coding: utf-8 -*-
#
import math

“`

変更後)

“`
# -*- coding: utf-8 -*-
#
# cython: profile=True
# cython: linetrace=True
# cython: binding=True
# distutils: define_macros=CYTHON_TRACE_NOGIL=1
import math

“`

## 2.2. profileデコレータの呼び出し

`cdef` には関数デコレータが付けられないため、呼び出したい関数をprofileで囲む

変更前)

元記事を表示

yukicoder contest 264 参戦記

# yukicoder contest 264 参戦記

## [A 1217 せしすせそ](https://yukicoder.me/problems/no/1217)

ループを回して、一致しないインデックスを求めて、XtoY を出力するだけ.

“`python
S = input()

for i in range(26):
a = chr(i + ord(‘a’))
if S[i] == a:
continue
print(‘%sto%s’ % (a, S[i]))
break
“`

## [B 1218 Something Like a Theorem](https://yukicoder.me/problems/no/1218)

何も考えずに全探索しても TLE にならなくて、あれってなった.

“`python
n, z = map(int, input().split())

for x in range(1, z + 1):
for y in range(x, z + 1):
if x

元記事を表示

初めてターミナルに触れた人が「ほん訳コンニャク」で論文を自動英訳するまで。

# 背景
「ほん訳コンニャク」は[cabernet_rock](https://qiita.com/cabernet_rock)さんが作成された英語論文の翻訳プログラムです。論文のURLを投げれば**原文とその日本語訳が並列**されたPDFファイルを**図も含めて**出力してくれます。下記の記事に仕組みとインストール方法について分かりやすくまとめられています。ただ、自分がインストールしていて少し詰まった点があるのと、wetメインのターミナル操作に慣れていない人には少しハードルが高いので、初めてターミナルを開く人に向けたインストール方法を記載します。
[「ほん訳コンニャク」 を食べて 論文を読もう](https://qiita.com/cabernet_rock/items/670d5cd597bcd9f2ff3f)
[「ほん訳コンニャク」 を使ってみよう。](https://qiita.com/cabernet_rock/items/1f9bff5e0b9363da312d)

※基本的には[作者様の記事](https://qiita.com/cabernet_rock/items/1

元記事を表示

(Python)100万ハンド分析してみた〜AAが配られる回数は??〜

  
閲覧いただき、ありがとうございます。
pbirdyellowです。

今回は”1万ハンドごと”に”AA”が配られる回数を集計してみました。
AAが極端に来る日もあれば全くこない日もあるのですが、実際のところどうなのでしょう・・・

↓分析結果
![スクリーンショット 2020-08-15 19.17.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/659636/3c5d6491-6393-7b46-42d4-24a16cd9e448.png)

この表の見方は
・x軸は1万ハンド毎(~10000,~20000,~30000,・・・)
・y軸はAAが配られた回数
です。

maxで67回、minで31回とかなり分散が激しいですね。。。

KKも調べてみました。
↓分析結果
![スクリーンショット 2020-08-15 19.36.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/659636/71a36f2

元記事を表示

Lambdaでお金のかかりそうなインスタンスの稼働状況をSlackに投げる

# なぜそんなことがしたいのか

開発中にいろんなテストで高いインスタンスを立ち上げたりすることがあると思いますが、たまに、稀に、うっかり、落とし忘れて帰ることがあるかもしれません。
まぁ次の日に気づけばダメージは少ないでしょう。ところが連休前だったりとか、しばらく気づかなかったりしたらどうでしょう。そこそこの金額が積みあがって、場合によっては始末書を書くハメにならないとは言い切れません。

AWSには、請求額でアラートを投げる仕組みがありますが、それは既に「ヤバいところまで積みあがってしまった」ことが分かるだけで、予防にはなりません。1ヶ月の予算を3日で使ってしまったとして、後どうするねんていう話ですよ。

そもそも帰る前に確認しろよって話ですが、それをルール化したりチェックリスト作ったりして100%守れますかって話ですよ。確認したリージョンが違ってたとかあるあるじゃないですか。
プログラマーという生き物は、自分がやりたくないことを機械にやらせる為にプログラムを書くものでしょう?
ええ、じゃあやってやりましょう。

# AWSのことはAWSで

awscliでインスタンスの状態が

元記事を表示

LINEのBotで、IT系のトレンド情報のスクレイピング結果を送ってもらえた【LINE Messaging API】

初めてのQiita投稿となります。ミスがありましたら、厳しい口調でも構いませんのでコメントなどで、ご教授ください。

# 完成物

## ロゴ(適当)
![ロゴ (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582590/df813808-3159-7b16-164e-6d0816858978.png)
## 使用した様子
![2020-09-04_19h22_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582590/4759d49c-26ed-7959-0cf2-864d28270ae1.png)

![2020-09-04_19h22_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582590/09b0f01c-f754-1b66-ff71-a3fca8b5ae18.png)

# QRコード
![852gxfz

元記事を表示

Django REST frameworkでAPIドキュメントを自動生成 & ドキュメント画面からPOSTする方法

本記事ではDjango REST frameworkでAPIを作成した際に、そのAPIドキュメント(使用方法などの解説)を自動生成する方法について解説します。

### 手順0:DRF(Django REST framework)

今回は、**version:3.10.3**を使用しています。
なお、現在(2020年9月)の最新バージョンは**version:3.11.1**です。

### 手順1:追加のパッケージをインストール

APIドキュメントの自動作成に必要なパッケージをインストールします。

“`
pip install coreapi
pip install Pygments
pip install Markdown
“`

### 手順2:urls.pyにdocページを定義

Django Appのベースとなっているappのフォルダのurls.pyに対して、

`from rest_framework.documentation import include_docs_urls`

を追記して、`include_docs_urls()`を使用できるようにします。

元記事を表示

Electron + Angular + Python で画像解析デスクトップアプリケーションを作りたい(希望)

# はじめに

ユーザのWindowsマシン内でスタンドアロンで動くデスクトップアプリケーションとして、画像解析アプリを作るため、良いGUIフレームワークを探している。候補の一つとして、前から使ってみたかったElectronの採用を検討。

# 要件

1. 格好良いGUIをこれまで持っているスキルセットで作りたい(ドラッグ&ドロップなど複雑な操作を想定しているので、出来ればWebの技術)
2. GUIからのインプットを元に、Pythonによる画像解析処理をして、結果をGUIに返したい
3. スタンドアロンでの利用を想定、ユーザの環境設定は極力簡単にしたい
4. インプットをマシンの外に送信しない(ファイルが大きく通信環境が貧弱なため、処理に時間が掛かってしまう)

# 調査内容

## ElectronでAngularを使いたい

もともとのスキルセットとして、Angularを持っていたので、AngularとElectronを組み合わせて使いたいと思った。
[このブログ](https://neos21.hatenablog.com/entry/2018/10/13/080000) 通

元記事を表示

docker.plone を起動してカスタムテンプレートを追加

dockerでploneを起動して、テンプレートのタグを試してみた手順です。

##dockerを起動

ploneのdockerは公式で用意されています。ダウンロードして、そのまま利用しました。
https://github.com/plone/plone.docker

オプションを指定してploneを起動します

“`
% docker run –rm –name plone -v $PWD/plone-data:/data -p 8080:8080 -e SITE=plone plone
“`

ブラウザで http://localhost:8080/plone にアクセスすると、トップページが表示されます。
![スクリーンショット 2020-09-04 17.35.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32195/d7086521-683e-fbb5-9e2d-1ecb978a0c7f.png)

##テンプレートの調整
customディレクトリで新規作成すれば、プレビュ

元記事を表示

文字列のフォーマット2

文字列のフォーマット2

*埋め込む文字列のフォーマット*
波括弧の中にコロン(:)を置くと、置換する文字列のフォーマットをコントロールできます。
次の例は、桁揃えを行う為の指定方法です。
桁揃えを行うためには、コロンのあとに数値を指定します。
【寄せを指定して差し込む】
tmp1 = “{0:10} {1:>8}”
tmp1.format(’Spam’, 300)

Spam 300

tmp1.formt(‘Ham’, 200)

Ham 200

他にも、フォーマット指定の例として、パーセント表示を行うためのフォーマット指定の例を書きます。
「12708」は日本の2015年末の総人口、「6381」は就業者数(ともに単位は万人)で
就業人口比率を小数点以下2桁を表示して、パーセントで表示しています。
2番目の例では、1000の位にカンマを付けています。
【表記を指定して差し込む】
“{:.2%}”.format(6381/12708)

50.21%

“{:,}”.format(100

元記事を表示

AOJのアルゴリズムとデータ構造入門をPythonで解いていく -Part3-

#はじめに
こんにちは。もちもちもちおです。
AOJのアルゴリズムとデータ構造入門を解いていきます。
学んだ記録として残していこうと思いやす。

僕自身プログラミングに触り始めてまだ半年もたっておらず
AtCoder緑なので、強者ではありましぇん。
一緒に頑張りましょう。

make it possible with パイちゃん

#目次
今回はPART3: 基本的データ構造 です。
頑張って最後までやりたいものです。

ALDS1_3_A : スタック
ALDS1_3_B : キュー
ALDS1_3_C : 双方向連結リスト
ALDS1_3_D : Areas on the Cross-Section Diagram

##ALDS1_3_A : スタック

スタック〜

“`Python
a = list(map(str,input().split()))
l = []
for i in a:
if i==”+”:
a1 = l.pop()
a2 = l.pop()
a3 = a1+a2
l.appen

元記事を表示

OTHERカテゴリの最新記事