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

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

Python で feedparser を使ってサクッとフィードリーダーを作った

# はじめに

Python3 で feedparser ライブラリを使って RSS を取得してみました。
なお Python は完全な初心者です。

# 環境

– macOS Catalina 10.15.6
– Python3 3.8.5
– feedparser 6.0.1

# feedparser

`feedparser`という便利なものを利用しました。
これは、URL を渡してあげるだけでパースし、いい感じに辞書にまとめてくれるというすぐれものです。

– [kurtmckee/feedparser: Parse feeds in Python](https://github.com/kurtmckee/feedparser)

最新版のドキュメントはビルドしないと見れないので見れていないのですが、古い情報曰く、RSS・Atom の主要なものには対応しているそうです。

– [Documentation — feedparser 5.2.0 documentation](https://pythonhosted.org/feedparser/)

`pip`で

元記事を表示

PyMySQL

# PyMySQL
PythonからMySQLを操作するパッケージ。
[PyMySQL/PyMySQL](https://github.com/PyMySQL/PyMySQL)

“`bash
ubuntu:~$ pip3 install PyMySQL
Requirement already satisfied: PyMySQL in ./.local/lib/python3.8/site-packages (0.10.1)
“`

# 既存のテーブルにレコードを追加する
データベース test、テーブル table1 に値を追加します。
mysqlユーザやデータベースは作成済みです。(それぞれ、ubuntu, test)

“`python
import pymysql.cursors

# MySQLに接続
connection = pymysql.connect(host=’localhost’,
user=’ubuntu’,
password=’ubuntu’,

元記事を表示

Google Formへの回答を元にGoogle Colaboratoryで日本語ワードクラウドを作る

こんにちはGeraldです。
Google Formsで集めた回答をもとに、その場でワードクラウドを作って、セミナー参加者に見せたい!というご要望をいただき、誰でも実行できる方法を考えてみました。思いの外好評だったので手順をまとめます。

# 準備
* Googleアカウントを作る
* Google Formsでアンケートフォームを作る
* アンケートフォームの回答をGoogle SpreadSheetに書き出しておく
* Google Colaboratoryでノートブックを作る

#ソースコード
“`python:wordcloud.py

fileId = ‘対象となるGoogle SpreadSheetのIDをここに書く’

#ライブラリのインポート
from google.colab import auth
from wordcloud import WordCloud
import gspread
from oauth2client.client import GoogleCredentials

#Google Driveへの接続要求
auth.authenticate

元記事を表示

Chalice を使って AWS Lambda 上に Flask/Bottle のようにWebアプリケーションを構築する

# はじめに

小規模なWebアプリケーションを作成する場合、Pythonでは [Flask](https://flask.palletsprojects.com/en/1.1.x/) や [Bottle](https://bottlepy.org/docs/dev/) を利用できる。
これらのフレームワークは「どのURLに対して」「どのプログラムを動かす」といった対応を Python のデコレータで対応させることで実現できる。
例えば、以下の Flask アプリケーションでは `/` にHTTPアクセスした時に `Hello, World!` を返すWebサーバーを実装しており、ルーティング・レスポンス応答が非常に分かりやすい。

“`python:Flaskの公式ページから引用
# https://flask.palletsprojects.com/en/1.1.x/quickstart/
from flask import Flask
app = Flask(__name__)

@app.route(‘/’)
def hello_world():
return ‘He

元記事を表示

Python Binary 変換

### はじめに

Arduino や mono-wireless などのデバイスとシリアル通信でやり取りする際に、送信しているバイナリー命令を確認することが必要になり、バイナリー理解のためのまとめです。以前に書いた記事[文字列、Byte、Binary](https://qiita.com/Gyutan/items/ce001f1f811ecc4d1960)をアップデートした内容です。

参考になったのは
[[Python 入門]バイナリファイルの操作 (1/3)](https://www.atmarkit.co.jp/ait/articles/1910/01/news020.html)
の記事です。

なお、ここでの内容はPython3.6以上です。
### Binary と Byte

おさらいもかねて、バイナリーとは、0,1 で表現されたもの(Bit)ですが、実際には、Byte で扱います。(8bit=1byte)
8bit = 2 の 8 乗=256 で、16 進数で 255 を表現すると FF になります。(0 も含んでいるので 255 が FF になります。)
実際にバイナ

元記事を表示

言語処理100本ノック2020やってみた part4

#はじめに
[言語処理100本ノック 2020 (Rev 1)](URL:https://nlp100.github.io/ja/)の[第4章: 形態素解析](URL:https://nlp100.github.io/ja/ch04.html)の自分なりの解答です。
どんどん雑になってきてる
* 環境
* google colab

#目次
###[第4章: 形態素解析](URL:https://nlp100.github.io/ja/ch04.html)

[30. 形態素解析結果の読み込み](#30-形態素解析結果の読み込み)
[31. 動詞](#31-動詞)
[32. 動詞の原形](#32-動詞の原形)
[33. 「AのB」](#33-aのb)
[34. 名詞の連接](#34-名詞の連接)
[35. 単語の出現頻度](#35-単語の出現頻度)
[36. 頻度上位10語](#36-頻度上位10語)
[37. 「猫」と共起頻度の高い上位10語](#37-猫と共起頻度の高い上位10語)
[38. ヒストグラム](#38-ヒストグラム)
[39. Zipfの法則](#39-zipfの

元記事を表示

COCO’S朝食バイキング実施店舗一覧PDFファイルを取得してCSVにする

###Change Log
(2020/9/24, 05:30)ソート前のsjis版画像を追加しました。
(2020/9/24, 05:30)sort & uniq処理のスクリプトを少し手直ししました。
(2020/9/25, 05:00)sort & uniq処理のスクリプトを少し手直ししました。

##はじめに
[COCO’S朝食バイキング実施店舗一覧](https://www.cocos-jpn.co.jp/menu/morning/morning_viking.html)のPDFファイルを取得してCSVにしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159724/84a246e0-bedb-ca7e-406d-de661253bceb.png)

###なお
– 本記事ではRaspberryPi 4とPython3.7.3で実行しています。が、そこは大きな依存ポイントにはならず、たいていの環境で動くでしょう。
– また、出力結果確認は楽なWindows上のExcel

元記事を表示

kivy JsonStore でUnicodeDecodeError を解決する

# 問題のエラー
Kivyでstorageモジュールを使ってjsonを扱う際、以下のようなエラーに遭遇した。
※環境はpython3.8 ですが、大した差異はないと思います。

“`
File “C:\programing\project\hoge\main.py”, line 33, in _init_load
self.store = JsonStore(‘test.json’, )
File “C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\kivy\storage\jsonstore.py”, line 29, in __init__
super(JsonStore, self).__init__(**kwargs)
File “C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\kivy\storage\__init__.py”, line 134, in

元記事を表示

【音声解析】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

元記事を表示

OTHERカテゴリの最新記事