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

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

【音声解析】xeno-cantoで鳥の鳴き声データを集める

## [xeno-canto](https://www.xeno-canto.org)とは
鳥の鳴き声データベース。jsonで扱える[API](https://www.xeno-canto.org/explore/api)がある。
今回はPythonを使って日本におけるFulica属(オオバン属)の鳴き声を一括収集した。

## ソースコード
“`python
import requests
import json
import urllib

url = “https://www.xeno-canto.org/api/2/recordings?query=gen:Fulica+cnt:japan”

# json取得(requests.get)

response = requests.get(url)
jsonData = response.json()[“recordings”]

# ダウンロード部(ファイル名は{id}.mp3)

for data in jsonData:
url = (“http:”+data[“file”])
title = dat

元記事を表示

GAE(Python3) Cloud NDBを使用して登録・更新・取得を行う。

# 今回の目的
GAE(Python3)でCloud NDBを使用してデータの登録更新・取得を可能にします。
基本的に[githubのサンプル](https://github.com/GoogleCloudPlatform/python-docs-samples)を使用します。
今回はpython-docs-samples\appengine\standard_python3\building-an-app\building-an-app-2のモジュールを
ベースに作成しています。

# requirements.txtの修正・インストール
プロジェクト直下のrequirements.txtに以下を追記します。

“`txt:requirements.txt
google-cloud-ndb
“`
追加後、プロジェクト直下のディレクトリで以下コマンドで実行し、google-cloud-ndbをインストールします。

“`sh
pip install -r requirements.txt
“`
これでCloud NDBのインストールが完了です。

# データの登録・更新・取得処

元記事を表示

有吉の壁の「おもしろい」とは・・?をword2vecで教えてもらうよ。

やあ :relaxed: だよ。
突然だけど、有吉の壁が好きだよ。
水曜の夜ってあと二日働くのか・・と絶望するけれど、有吉の壁を見て、元気を出して頑張っているよ。
Twitterにも同じような呟きがたくさんあったので、皆さんのご意見を使って、
有吉の壁の「おもしろいとは?」「すきとは?」をword2vecのお勉強を兼ねて、見てみたいと思うよ。

##有吉の壁とは?
>[日テレ公式:有吉の壁](https://www.ntv.co.jp/ariyoshinokabe/)
>『有吉の壁』は、日本テレビ系列で放送されているバラエティ番組。有吉弘行の冠番組。 2015年4月7日 – 2020年1月5日まで深夜帯を中心に不定期の特別番組として13回放送したのち、2020年4月8日より、毎週水曜日の19:00 – 19:56でレギュラー放送中。(Wikipedia参照)

##word2vecとは?
自然言語処理の一つで、テキストデータを解析して単語同士の意味をベクトル表現する方法。
どんなことができるの?
 ・単語同士の関連性を表現できる。 
 ・単語同士を足したり、引いたりして、別の単語

元記事を表示

【音声解析】LibrosaでCross Similarityを求める

## Cross Similarityとは
**動的時間伸縮法(DTW)**の派生で、部分一致に特化したパターン抽出方法。
DTWは時系列データ同士の距離マトリクスを作り、1本の最小経路を見つけそれを距離とするメトリクスであるが、Cross Similarityは部分マッチングのため、経路を複数見つけてくれる。
DTWについてのわかりやすい説明は[こちら](http://sinhrks.hatenablog.com/entry/2014/11/14/232603)

Cross Similarityについては↓の論文を参照
Discovery of Cross Similarity in Data Science(Toyoda et al. 2010)

## なぜ、Cross Similarityか
鳥の鳴き声の長時間データから、鳴き声のみをセグメンテーションしたいとき、鳴き声の波形は類型を繰り返すという特徴があり、この手法に合うのではないかと考えたため、実験。

## 環境
python 3.7.4
librosa 0.7.2
matplotlib 3.1.1

## Let

元記事を表示

【plotlyで画像分析いろいろ】plotlyで動的な可視化をする【python,画像】

#plotlyで画像を簡単に分析してみます

![dd.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/2d3b3b41-f1e2-a36b-3fcc-0db5838d6ef5.gif)

#環境

python==3.8
plotly==4.10.0
scikit-image==0.17.2
requests==2.24.0
Pillow==7.2.0
matplotlib==3.3.2

#よくある画像の扱い

まずpillowつかっていきます

“`python
import matplotlib.pyplot as plt
from PIL import Image
import requests
import io

url = ‘https://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Crab_Nebula.jpg/240px-Crab_Nebula.jpg’
img = Image.ope

元記事を表示

Google ColaboratoryでGoogleドライブを検索する方法

## pydriveを使用するための準備

“`python:認証コード作成
from google.colab import auth
auth.authenticate_user()
“`

“`python:pydriveでドライブ操作をするための準備
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from oauth2client.client import GoogleCredentials

gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
“`

認証作業なしで実行する場合は下記を参考にしてください。
https://qiita.com/plumfield56/items/3d9e234366bcaea794ac

# 検索方法

上記の状態まで準備できたら、下記で検索を実行します。

元記事を表示

Prophetお試し 備忘録

#概要
時系列データ処理の調べものをしてたときに[Prophet](https://facebook.github.io/prophet/)を見つけた。動作確認したときの備忘録
いつか使う気がするから…
– 実施期間: 2020年9月
– 環境:Ubuntu18.04LTS

##動作確認用Conda仮想環境作成
[Miniconda Install 備忘録](https://qiita.com/Ihmon/items/11074e1a4c0e397d934f)の手順で新しい動作確認用仮想環境を作成しておく
その上で必要な下記パケージをインストールする

Prophetは[Pystan](https://pystan.readthedocs.io/en/latest/installation_beginner.html)に依存しているのでPystanをインストールするが、Pystanも下記に依存するのでそれらを先にインストールする。
まず、c++コンパイラ周りのインストールを仮想環境で実行する(但し書き注意)

“`terminal
conda install gcc_linux-6

元記事を表示

PythonによるExcel化

いつもご覧いただきありがとうございます。今回は簡単にPythonを用いてExcelの表を作ってみました。

参考リンク:
[9.まずはプログラムでExcelに記入してみよう](https://www.youtube.com/watch?v=iGGrklV_AC4&ab_channel=%E3%80%90IT%E3%83%BB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Lab%E3%80%91%E4%BC%8A%E6%B2%A2%E5%89%9B)

###外部ライブラリーのインストール
下記インストールされていなければこちらからコピペでできます。(※インストールされているのかを確かめたければ `pip3 show <モジュール名>`でお願いします。

>`pip3 install pandas`
`pip3 install openpyxl`
`pip3 install python-docx`
`pip3 install xlrd`
`pip3 install xlwt`

###プログラミングのソー

元記事を表示

Optunaを使用したLightGBMハイパーパラメーター最適化やりかた調査ログ

# はじめに
最近JupyterLabを使って機械学習の勉強をやっている。
その中でGoogleでの検索結果が古かったOptunaのLightGBMハイパーパラメーター最適化についての調査を記事にしてみようかなと思いたった。

# 環境
– [jupyter/tensorflow-notebook](https://hub.docker.com/r/jupyter/tensorflow-notebook/tags/)
– 上記Dockerイメージを起動時に`jupyter lab`を指定している
– optuna 2.1.0

# やったこと
## 最初にざっくりまとめ
– OptunaでLightGBMのパイパーパラメーターの最適化がしたい
– ググって出てきたコードをコピペしてもうまく動かない
– なんかbest_paramsなんで引数ないぞと言われる
– 公式ドキュメントをあたる
– 公式ドキュメントのサンプルを試す → 動く
– Githubから過去のサンプルを確認して1.3時点ではbest_paramsがあることを確認 1.4以降はなさそう
– 困った

元記事を表示

『Effective Python 第2版』 第3章<関数>

# はじめに
* こんにちは、takadowaです。
* 前回の[『Effective Python 第2版』 第2章<リストと辞書>](https://qiita.com/takadowa/items/8c2cadf896cd62343ff2)に引き続き、今回は第3章<関数>の内容をベースに、さらに調べて知ったことや自分の感想をまとめていきたいと思います。

# 実行環境
サンプルコードを掲載する際は、以下の実行環境で実行した結果を掲載します。
できる限りミスのない形で提供することを心がけますが、動かない、間違っているなどがありましてもご容赦ください。

* macOS 10.14.6
* Python 3.8.5

# 第3章<関数>

## Noneではなく例外を送出する

関数の中で処理した際、何か想定外のことが起きたら何を返しますか?
自分はこれを知るまではよく`None`を返していました。例えば以下のようなコードです。

“`python
# 良くない例(想定外のときにNoneを返している)
from datetime import datetime
def parse_

元記事を表示

【マルコフ連鎖】 Pythonに名言と負の感情を読み込ませてみた。

こんにちは。PyLocです。
今回は、前回と前々回に使ったデータを両方使うとどのような結果になるのか調べていきます。
前回と前々回の記事は下の通りです。
前回: https://qiita.com/PyLoc/items/682f9664cbfadc954acc
前々回: https://qiita.com/PyLoc/items/52a31bd2b0e20ad3f2a1
# プログラムの用意
プログラムはいつもどおり [ここ](http://zipmonkey.wp.xdomain.jp/2020/09/18/%e3%80%90%e3%82%b3%e3%83%94%e3%83%9a%e3%81%a7ok%e3%80%91-python%e3%81%a7%e3%83%9e%e3%83%ab%e3%82%b3%e3%83%95%e9%80%a3%e9%8e%96%e3%82%92%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/) から取ってきましょう。
一応ここにも載せておきます。
少し改変部分があります。

“`python:Markov.

元記事を表示

Python3 でバイト列から整数(short または int) への変換

[11, 24, 250, 1] のような1バイト以内の値のリストから、16bit または 32bit 整数へ変換する方法です。
とあるデバイスから1バイトずつ値を読み取って、それを 16bit 符号付き整数 (short) のリストへ変換する方法を調べたとき、なかなか見つからなかったので記事にしました。

##長さがわかっているとき

入力データのサイズがあらかじめ分かっている場合は、struct.unpack を使えば簡単です。

“`python

import struct

input_data = [11, 24, 250, 1]

# 16bit 符号付き整数に変換する場合(リトルエンディアン)
short_values = struct.unpack(‘L’, bytes(input_data))
print(“ulo

元記事を表示

Python でディレクトリ一覧を取得するテストプログラム

# 作った目的
Pythonでディレクトリ一覧を取得するために調べていたら、pathlibライブラリのことを知りました。
動作確認のために簡単なテストプログラムを作りました。

# 環境

– Windows10
– Python 3.7.7
– Ubuntuでも動作しました。

# 一覧の取得
ただ一覧を取得するだけなら下記のコードで可能です。

“`python
import pathlib

dir = r”c:\users\username” # Windows
# dir = “/home/username” # Ubuntu
pathlib_obj = pathlib.Path(dir)
files = list(pathlib_obj.glob(“*”))
for i in files:
print(i)
“`

# テスト プログラムについて

起動すると、ディレクトリの前に数字が表示されます。
その数字を入力してEnterを押すと、指定のディレクトリの一覧が表示されます。
終了は、qを入力してEnterです。

“`python:pat

元記事を表示

Linux上でPython3でMySQLへアクセスするためのyumコマンド

## 実行

`mysqlclient`使わなければ不要かも。

“`
# とりあえず
yum update -y
“`

“`
# /usr/include 配下に実行したいpythonのディレクトリが出来ること
# 例:/usr/include/python3.7

yum install -y python3-devel
“`

“`
# /lib64/mysql/libmysqlclient.so.18 が入る

yum install -y gcc mysql-devel mysql-libs
“`

元記事を表示

[python]リストの要素を並べて表示する方法

####・リストの要素を横に並べて表示する。

#####例1

“`python
L = [1, 2, 3, 4, 5]

print(*L)
“`

“`python
1 2 3 4 5
“`
※リストの値はintでもstrでも可能

####例2

“`python
L=’ ‘.join(L)
print(L)
“`

“`python
1 2 3 4 5 #str
“`

※リストの値はstrのみ

intの時は

“`python
L = map(str, L) #intからstrに変換
L=’ ‘.join(L)
print(L)
“`

“`python
1 2 3 4 5
“`

####・リストの要素を縦に並べて表示する。

“`python
[print(i) for i in L]
“`

“`python
1
2
3
4
5
“`

(競技用プログラミングの時に手間取ったため。)
(追加があれば追記します。)

元記事を表示

PythonでA*(A-star)アルゴリズムを書く

# 概要

– 勉強のためA\*(A-star)アルゴリズムによる探索をPythonで書いてみます。
– 簡単なグリッドの迷路を使います。迷路のコードなどは以前書いた「[深さ優先探索をPythonで書く
](https://qiita.com/simonritchie/items/9ecf0efce454befc3368)」のものを流用します。

# 使うもの

– Python 3.8.5

# A\*アルゴリズムとは

現時点までの距離としてのgと、ゴールまでの推定値hの和の値を探索時のパラメーターとして使い、経路の最短距離を比較的少ない探索コストで算出するアルゴリズムです。ゲームなどでよく使われます。

探索コストが低めな一方で最短距離が算出されないケースがある深さ優先探索(depth-first search / DFS)や最短距離は算出できるものの計算コストが高くなりがちな幅優先探索(breadth-first search / BFS)よりも優れた結果になる傾向があります。

元々は1968年に発表された論文によるものになっています。最短距離を見つけるアルゴリズム群を論文中

元記事を表示

Django-allauthでテンプレートを上書きするには、account配下にテンプレートを作成する

# 概要
– Django-allauthでテンプレートを上書きするには、`account/login.html`のように、`account`配下にテンプレートを作成します。
– プロジェクトフォルダ内で管理できるので、`venv/lib/python3.6/site-packages/allauth/account/templates`にあるファイルを書き換えずにすみ、Gitなどでバージョン管理する際に楽です。
– 環境は、Python 3.6.9 + Django 3.1.1 + django-allauth 0.32.0 で確認しました。

# 内容
– 例えばログイン画面の`account_login`というURLは、`account/login.html`というテンプレートに対応しています。
– この名前でテンプレートを作成すれば、デフォルトのテンプレートを上書きすることができます。
– 公式サイトの [Templates](https://django-allauth.readthedocs.io/en/latest/templates.html) にも記

元記事を表示

flake8 動作確認

## 動作確認

### 通常実行

“`python:src/sample.py
import os

class Sample:
def __init__(self, x):
self.x = x
“`

“`
# flake8 src
src/sample.py:1:1: F401 ‘os’ imported but unused
src/sample.py:3:1: E302 expected 2 blank lines, found 1
“`

“`
# flake8 –show-source src
src/sample.py:1:1: F401 ‘os’ imported but unused
import os
^
src/sample.py:3:1: E302 expected 2 blank lines, found 1
class Sample:
^
“`

### Configファイルを指定した実行

“`tox.ini
[flake8]
ignore = F401
“`

“`python:src/sample.py

元記事を表示

【python】足し算という名の文字列処理

### 1.問題
2つの巨大な桁数(ただし2つの数字の桁数は同じ)の足し算を実行する処理を考える。

型変換だけでは解決できないところが面白そうだったので、ここでメモとして残す事にする。

### 2.4桁同士の足し算例

下記例くらいの足し算だと、型変換で計算できそうだが
巨大な桁数というテーマだったため、下記のように各桁構成が
わかるように図示していく。

  9999
+9998
————-
19997

3桁目までの文字列は前の桁の繰り上がり数と、各桁の足し算の1桁目で構成される事がわかる。
4桁目の足し算では、3桁目の繰り上がり+4桁同士の足し算の結果を3桁目までの文字列と連結すれば
いい事がわかる。

### 3.コード例

“`python

#2つの数字の入力
in1=input()
in2=input()
#入力文字列の長さ
len1=len(in1)
#出力結果文字列
str1=”
#前の桁の繰り上がり状態0:繰り上がりなし 1:繰り上がりあり
p_fugo=0

for i in range(len1):
c1=in1[len1-i-1:le

元記事を表示

【備忘録】CSVファイルの緯度・経度をもとに、対象範囲のデータ抽出及びメッシュコードの付加を行うスクリプトを作成しました。

# 目的
CSVファイルの緯度・経度をもとに、対象範囲のデータ抽出及びメッシュコードの付加を行うスクリプトを作成しました。

# 前提条件
– Windows10
– Python3がインストール済みであること。
– pandas、[jismesh](https://pypi.org/project/jismesh/)等の各種ライブラリーがインストール済みであること。
– jismeshは、緯度経度からメッシュコードを求めることができるPythonのライブラリーになります。
– 入力するcsvファイルは、下記の記事で出力した高解像度ナウキャストデータ(csvファイル)を使用しています。

[【備忘録】grib2形式のデータをcsvファイルに変換するスクリプトを作成しました](https://qiita.com/syanseto/items/d51d8956c4709d1d2a7f)

– 入力するcsvファイル
– 5、6列目が経度、緯度、7列目が降水量の数値になります。
![https___qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

OTHERカテゴリの最新記事