Python3関連のことを調べてみた2019年12月23日

Python3関連のことを調べてみた2019年12月23日

正弦波の音をステレオのwavで出力する

# はじめに
~~M-1が面白すぎて投稿が遅れてしまった。~~
 この記事は [Pythonその3 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/python3) の23日目の記事です。この記事ではnumpyなどで生成した正弦波をステレオのwav形式で出力する方法について記述します。

# 概要
今回はLchに880Hzの正弦波Rchに440Hzの正弦波を出力する5秒間のwavファイルを出力しようと思います。

## コード
“`python

import numpy as np
import wave # wave
import struct # structpack

def createWavFile():
Fs = 44.1*1000 # 44.1 kHz
Lch = 880 # Hz
Rch = 440 # Hz
scale = 10**(-3/10) # -6dBで生成
t = 5 # 5秒
N = Fs*t # サンプル数

元記事を表示

Kaggleで初心者5人チームのリーダーとして参加した時の話

# 0. はじめに
皆さんがKaggleに初参戦したときのことを思い出してください。
恐らくは, 個人で始められた方が多いのではないでしょうか?

私も長らくその一人でした。
しかし, ある日Twitterで相互フォローしていたとある方から

![513E9490-2E40-4873-9E7E-07B0B0CAF772.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254846/0a383866-1dc9-573a-3348-d6fe162355a0.jpeg)

という@ツイートが届いたことで事態は一変します(※ツイートは改変しています)。

その2日後には, 初心者だらけの5人チームで[RSNA Intracranial Hemorrhage Detection](https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection) というKaggleコンペ(通称: 脳出血コンペ)にチーム参加することとなりました。

私自身もKaggl

元記事を表示

Docker+GitHub+HerokuでCI/CDっぽく

#やった事
前に記事で公開した[Qiitaタグ自動ジェネレータ](https://qiita.com/fukumasa/items/7f6f69d4f6336aff3d90)をWebアプリとして手軽に試せる様に公開しました。
ついでにGitHubで[ソース](https://github.com/fukumasa/auto-create-qiita-tags)も晒しています。

https://auto-create-qiita-tags.herokuapp.com/

※Freeプランなので30分間アクセスがないと休眠してしまいます。少し時間がかかる時があるのはご愛嬌という事で…

#全体図
Webアプリを公開するにあたり**Heroku**を使いました。GitHubとも連携させたのでこんな感じです。
GitHubにソースをpushすると自動的にHerokuでビルドが走りDockerコンテナのデプロイまでやってくれます。仕事での開発だと今時CI/CDなんて当たり前だと思いますが、個人でお金をかけずに環境作ってみたという感じです。

![qiita投稿用.png](https:/

元記事を表示

AtCoder Beginner Contest 148 参戦記

# AtCoder Beginner Contest 148 参戦記

## A – Round One

2分半で突破. 簡単なんだけど、なんかシンプルに書こうと思うと難しいなあと思った.

“`python
A = int(input())
B = int(input())

print(*(set([1, 2, 3]) – set([A, B])))
“`

## B – Strings with the Same Length

1分半で突破. 書くだけ. zip かなあと思いつつ使わなかった.

“`python
N = int(input())
S, T = input().split()

print(”.join(S[i] + T[i] for i in range(N)))
“`

## C – Snack

3分で突破. 最小公倍数が答えだけど、どう解けばいいんだっけ、最大公約数が分かれば分かる?と思いつつ、Google に「最小公倍数 Python」ってググったら `lcm(a, b) = a * b / gcd(a, b)` って出てきたので書いて終わ

元記事を表示

PythonでPixivのブックマークした画像を一括取得したいともがくお話~改修編~

#はじめに
本投稿は[前投稿](https://qiita.com/haraday/items/add722167d0d6f2342f9)後コードを見て改善したいと思ったところが
いくつかあったので改善したいと考え、
コードの修繕をすることにしました。
なお、改悪している気はしないのですが、
改悪になっていることもありますので、ご了承ください。
#開発環境
OS:Windows10 64bit 1903
CPU/Memory:i5-7200U/8GB
python 3.6.8 64bit版
エディター(?):VSCode version 1.38.1
#コードの復習
前回の完成品のコードを再度ここにかいておきます。

“`py:pixiv_download_CLI.py
from pixivpy3 import *
from time import sleep
import json
import os

#folder check
if not os.path.exists(“./pixiv_images”):
os.mkdir(“./pixiv_images”)
if n

元記事を表示

Python3のvirtualenvでrospyを使う

# はじめに
[ROS Advent Calendar 2019](https://qiita.com/advent-calendar/2019/ros) 23日目の記事です。
Python2のEOLまで残すところあと[8日](https://pythonclock.org/)になりましたが、皆様Python3への以降はお済みでしょうか。
今回、ROS1の`rospy`をPython3の`virtualenv`で実行できるようにしてみたので紹介したいと思います。

公式なROS1の `rospy` を使うためには、以下のような環境の制約があります。
 1. Ubuntuを使う
 2. ROSをインストールする
 3. システムにインストールされたPython2/ライブラリを使う

これは
 a. 既存の`pip`を使ったPythonプロジェクト(Python3)とROS1を共存させたい
 b. MacOSで`rospy`をちょっと試したい

のような場合には不便です。

解決方法として、[roslibpy](https://github.com/gramaziokohler/rosli

元記事を表示

⛅️小説「天気の子」を丸ごと一冊、感情分析してみた☔️

![752B7BFA-4985-442D-904C-BEB091269C6C.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327405/05e5f803-dc12-4db0-bcf5-47661a8e5329.gif)

#1.簡単な概要
この記事では、小説**「天気の子」**の文章を自然言語処理して、感情分析をするやり方を解説していきます!

一般的に **感情分析** とは、文章中に含まれる **「感情」** を発見し数値化し、その文章の意見を判断することを指します。
自社の製品やサービスに対するユーザーの意見を機械的に分類することができるため、現在注目されている分野です。
「レビューや口コミ以外にも感情分析が活用できるのでは?」と思い、本記事では、巷でほとんどやられていない**小説**を題材にした感情分析にチャレンジすることにしました。

小説を感情分析すれば、**「物

元記事を表示

リストの辞書でループを回す

# リストの辞書でループを回す
sklearn の GridSearchCV とかって、どうやってループ回してるのか気になったので、調べました。

例として、パラメータ (‘A’, ‘B’, ‘C’) の動く範囲を

“`
d = {‘A’: [0, 1], ‘B’: [0, 1, 2], ‘C’: [0, 1]}
“`

とします。(‘A’, ‘B’, ‘C’) は全部で 2 × 3 × 2 = 12 通りの取り方があります。

パラメータ ind in range(12) を用いてそれら12通りを以下の表のように対応させます。

|ind|’A’|’B’|’C’|
|—|—|—|—|
|0|0|0|0|
|1|1|0|0|
|2|0|1|0|
|3|1|1|0|
|4|0|2|0|
|5|1|2|0|
|6|0|0|1|
|7|1|0|1|
|8|0|1|1|
|9|1|1|1|
|10|0|2|1|
|11|1|2|1|

# 実装
“`Python:sample.py
import numpy as np

d = {‘A’: [0, 1], ‘B’: [

元記事を表示

僕のDjangoで忘れやすいことのメモ

自分用だから用語とかところどころミスってるかも

##DB作って管理ツールが使えるようにするところまで。(SQLite)
#####1.models.pyにモデルクラスを作る。
Modelクラスを継承させる。

“`python
from django.db import models

class 任意(models.Model):
name = models.CharField(max_length=100)
quantity = models.IntegerField()
get_date = models.DateField()
“`

#####2.マイグレーションファイルを作る。
ターミナルを起動して
`python manage.py makemigrations アプリ名`

#####3.マイグレーションする。
`python manage.py migrate`

#####4.管理者を作成。
`python manage.py createsuperuser`

#####5.作成したDBを管理者で操作できるように登録
アプリのフォル

元記事を表示

3 行だけで円周率を求める(Python・モンテカルロ法)

# この記事は何

~~4 行の関数で円周率を求める方法とその解説です。~~
3 行の関数で円周率を求める方法とその解説です。
(3 行に改善するやり方を教えていただいたので、そちらに変えてタイトルも修正しました)

ググってもあまり簡潔なものが見つからなかったのと、
アドカレ21日が空いてしまっていたので書いてみました。

ルールとして**無理矢理コードを圧縮するのではなく、あくまで自然なやり方で書くこととします。**

##### バージョン情報

python: 3.7.3
numpy: 1.17.4

# コード

“`python:calcPi.py
import numpy as np

def calcPi(n):
points = np.random.uniform(0.0, 1.0, (n, 2))
inner = np.hypot(points[:,0], points[:,1]) < 1 return inner.mean() * 4 ``` ※最後に`mean()`を使うやり方は@konandoiruasaさんのコメントを参考にしました。

元記事を表示

【Python】文字列と値の結合のいろいろ

# はじめに
バージョン
Python: 3.7.4
Pythonで文字列と値をそのまま結合するとエラーになります。

“`python:str_int.py
NAME=”Taro”
AGE=15

print(NAME + ” is ” + AGE + ” years old”)
“`

# 実行結果(失敗例)
文字列と値をそのまま結合出来ないのでエラーになりました。

“`text:出力
Traceback (most recent call last):
File “str_int.py”, line 5, in
print(NAME + ” is ” + AGE + ” years old”)
TypeError: can only concatenate str (not “int”) to str
“`

# 解決策
解決策はいろいろあります。個人的には2がシンプルで好みです。
ポイントだけ書いておくと
1:str()を用いて、値(AGE)を文字列に変換する
2:%s=文字列、%d=値を表すのでこれを正しく書かないとエラーになる
4:先

元記事を表示

企業研究者のためのPandasまとめ

# はじめに

Pandasは、表形式のデータを簡単に扱えるライブラリです。
ここでは、Pandasに関して最低限知っておきたいポイントに絞って解説します。
Python3系の使用を想定しています。

# ライブラリの読み込み

`import`を使ってライブラリを読み込むことができます。
慣習的に、`pd`と省略して呼び出せるようにすることが多いです。

“`python:Pandas_1.py
import pandas as pd
“`

# Series

Seriesは辞書型のリストのようなデータです。

## Seriesの作成

“`python:Pandas_2.py
import pandas as pd

series_olympic = pd.Series({‘東京’: 2020, ‘リオデジャネイロ’: 2016, ‘ロンドン’: 2012})
print(series_olympic)
“`

## Seriesの参照

“`python:Pandas_3.py
import pandas as pd

series_olympic = pd.

元記事を表示

【Python】リストをコピーすると要素がリンクしてしまう問題の解決策

# はじめに
バージョン
Python: 3.7.4
値をコピーする感覚と同様に、リストaをリストbにコピーして、
リストbの真ん中の要素だけ変更したとします。

“`python:copy_test.py
a = [1, 2, 3, 4, 5]
b = a
b[2] =5
print(a)
print(b)
“`

# 実行結果(失敗例)
なぜかリストaの真ん中の要素も変化してしまいます。

“`text:出力
[1, 2, 5, 4, 5]
[1, 2, 5, 4, 5]
“`

# 解決策1:copyモジュールを使う
copyモジュールを使うと、リストaとリストbがリンクしなくなります。

“`python:copy_test2.py
import copy

a = [1, 2, 3, 4, 5]
b = copy.deepcopy(a)
b[2] =5
print(a)
print(b)
“`

# 解決策2:スライスを使う
a[:]と記載すると要素内の全てがリストbに受け渡されます。

“`python:copy_test3.py
a = [1, 2, 3,

元記事を表示

機械学習チートシート(ベクトル、行列、画像、Python)

# はじめに
Python による 機械学習 に向けて、基礎レベルのプログラミングメモを作成しています。
内容はベクトル、行列、画像、Python などです。

Jupyter Notebook で作成し、HTML化しました。

「機械学習チートシート(ベクトル、行列、画像、Python)」
 https://tshimizu8.github.io/MachineLearningCheatSheet01/

# チートシートサンプル
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78212/3b2c8f78-7031-5ccf-aa7c-498d83198a3e.png)

# おわりに
Jupyter Notebook はコードの実験に便利です。実験の記録を残せるのが良いです。
numpy、python等 の細かい動きには、驚きがあります。

元記事を表示

約数の総和を求める

#はじめに
よくある話題ですが、加算していく様子が少し面白かったので。
#コード
“`python:solve.py
import math

def divSum(num) :
result = 0
i = 2
while i*i <= num: if (num % i == 0): if (i == (num // i)): result += i else : result += i + num//i i += 1 return int(1 + result + num) num = 12 print (divSum(num)) num = 9 print(divSum(num)) # 28 # 13 ``` #説明 num = 12のとき、12の約数は1, 2, 3, 4, 6, 12です。 (2, 6), (3, 4)といった具合で(i, num/i)のペアを作って一度に加算し

元記事を表示

今年1年を美味しそうなビールの写真とともに振り返る

# まえがき

今年は後半(転職後)が忙しく、コミュニティー活動も滞りがちになってしまって、関係各所に大変ご迷惑をおかけしました。
来年はもうちょっと調整して、いろいろできるようにしたいと思います(願望)

# 今年のアウトプット

昨年から参加している@tacckさん主催の、「ゆるWeb勉強会@札幌」で、「ある方」のTwitterのタイムラインに投稿されたビール画像を収集して表示するという、謎アプリを作って発表しました。
作成当時は、フレームワークも使用せず、コマンドラインから実行すると、ローカルのフォルダに取得した画像を格納するといいうものでしたが、その後、Flaskフレームワークを使用して、Web表示を行うように修正しています。

# 実際のソースコード

“`python
# Flask などの必要なライブラリをインポートする
import os
import json
import time
import lxml.html
import cssselect
im

元記事を表示

【CGI】Vue.js + axiosでサーバのPythonプログラムを動かし出力データをもらう

# はじめに
フロントエンドで全部できるっちゃできるけど、やっぱり計算部分にPythonの楽さは欲しいなあ、という思いからサーバでプログラムを動的に動かすCGIを触ってみたのでそのまとめ。バックエンドは未だ疎い。

フリーレンタルサーバーのXREAのアカウントを持っているので実際にそこで試してみる。
[無料から使える高機能・高品質レンタルサーバー | XREA(エクスリア)](https://www.xrea.com/)

やりたいことは、

1. ボタンをクリック
2. Vue.jsとaxiosを使ってデータをサーバに渡す
3. Pythonで書かれたCGIスクリプトを実行して演算、結果をJSONで返す
4. 同じ画面に返されたデータを表示

というかんじ。

今回は例として入力された2数の最大公約数と最小公倍数を計算して返すプログラムを作る。

# 作ってみる

## ファイルの配置
“`
├─ cgi-bin
│ └─ index.cgi
├─ index.html
└─ main.js
“`
Pythonで書かれたCGIスクリプトは `cgi-bin` というディレ

元記事を表示

GCP+Django+Docker+Nginx+LINE Messaging APIで翻訳botを作った

# はじめに 

LINE botで翻訳botを作りました。
このbotを友達登録して何か発言するとそれを英訳して返してくれます。
ルームにも招待できるので、普段会話を英語にするとどんな感じなんだろう?と気になっている人はぜひ使ってみてください。

## bot 友達登録

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423481/c6114f72-2996-5167-fef2-0049f09b96f4.png)

## 使ったもの

– python 3.7
– Django 2.2.8
– mysql (使っていない)
– nginx 1.17
– Google Compute Engine
– Google Translate API (google-cloud-translate 2.0.0)
– お名前.com
– Let’s Encrypt

## コード

こちらにコミットしています。
https://github.com/ken-araki/line-bot-pytho

元記事を表示

Cloud RunとSlackBotで作るおすすめランチスポットボット

# Cloud RunとSlackBotで作るおすすめランチスポットボット

この記事は ウェブクルー Advent Calendar 2019 22日目の記事です。
昨日は@ytakadama0922さんの「令和になってもまだDC作業で疲弊してるの?」「してるよ」ってお話でした。

## はじめに

みなさんは、お昼ごはんのお店をどうやって選んでいますか?私は、だいたい、同じお店に食べに行く事が多く、最近まんねり化しています。というわけで、この課題をCloud RunとSlackbotを使って今回はいい感じに解決してみたいと思います。

Cloud Runはフルマネージドなサーバーレスプラットフォームで、Dockerコンテナをデプロイするだけで、簡単にHTTPリクエスト経由で呼び出し可能なアプリケーションが作成できます。

一方で、Slackbotには色々機能がありますが、今回は一番簡単な、ワークスペースでの特定の発言に対して、レスポンスを返してくれる機能を使います。Slackのワークスペースのカスタマイズ( https://ワークスペース名.slack.com/customize/

元記事を表示

Python3.7ランタイムのAWS LambdaでC拡張ライブラリを使用したい!

本記事はamazonlinuxでpython3.7を使用したい人、lambda上でpythonのC拡張ライブラリを使用したい人向け。

# 動機
Python3.7ランタイムのlambda上でscrapyを動かそうとしたところ以下のエラーでうまく実行できなかった。

“`
{
“errorMessage”: “Unable to import module ‘spider’: cannot import name ‘etree’ from ‘lxml’ (/var/task/lxml/__init__.py)”,
“errorType”: “Runtime.ImportModuleError”
}
“`

調べたところ、どうやらlxmlライブラリはC言語の拡張を使用しており、そのままではlambdaで使えないとのこと。

諦めればいいものの、Python3にこれから移行していくというタイミングで困ることが多そうなので頑張って解決してみる。

PCはMacを使用。

# とりあえずEC2上で動かす

lambdaはサーバレスといっても裏ではamazonlinuxのサーバ上で動

元記事を表示

OTHERカテゴリの最新記事