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

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

Google Colab のインラインに動画を表示する方法

#1.はじめに
 Google Colabのインラインに動画を表示するコードを備忘録として残します。

#2.やり方
 Python でアニメーション化する時によく使う **matplotlib** の **animetion** を使って、**動画をフレーム毎に読み出して**処理を行ってから、 **HTML5**へ送ることでインラインに動画を表示できます。

“`python
import imageio
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from skimage.transform import resize
from IPython.display import HTML

def display_video(video):
fig = plt.figure(figsize=(4,4)) # 表示サイズ指定

mov = []
for i in range(len(video)): # 動画を1枚づつmovにアペンド
img

元記事を表示

Pandas-datareaderで株価データを取得するとデータの欠落がある

# はじめに

Pandas-datareaderは、株価データを取得するのに重宝するのですが、残念なことにデータの欠落がある場合があります。例えば、Stooqで、「1357NF日経ダブルインバース」を取得すると、

~~~python
import pandas_datareader.stooq as web
from datetime import datetime

start_date = datetime(2016,6,10)
end_date = datetime(2016,6,17)

dr = web.StooqDailyReader(‘1357.JP’, start=start_date, end=end_date)
df = dr.read()
df.to_csv(‘1357.csv’)
~~~

以下のようなcsvファイルが得られます。

~~~csv:1357.csv
Date,Open,High,Low,Close,Volume
2016-06-17,3330,3380,3290,3370,8019724
2016-06-16,3270,3465,3250,3

元記事を表示

pythonでヤコビアンや偏微分をやってみた

#pythonで数式にはまってしまった
今学んでいることがpythonでいろいろやってみたらとても面白くて、記事にするのを忘れてしまいました。
pythonって代入や、因数分解、微分などいちいちコードで書く必要ないんですね。ライブラリ便利すぎ。
大学の選択科目でカオス理論の初歩の初歩的なものや多変量解析の重回帰分析や、多変量正規分布などを今学んでおりますが、
座学でよくわからない記号を眺めても何もわからないということで可視化してやるぞー。理論は全然わからんけど、見れば何かしら理解を得るきっかけとなるかも。多変量解析や微分方程式などを使うカオス理論は余りにも難しすぎるので、というか初めから躓いているので、今回はネットで初歩の初歩から解析学の方を中心にいろいろ検索してどれが理想のコードなのかを探ってきました。難しい言葉言っておいて、何も理解していないイキリですね…今回の記事はあまり自分で書いていません….難しい…..。いつか多変量解析の理論を理解してコードをかけるようになりたい。そういや、何も理解してないのに何でこんなにやる気出てしまったのだ?
#プログラムコード 基本的なライ

元記事を表示

google colaboratoryでカスケード分類器を作る

OpenCVの画像認識について勉強を始め、カスケード分類器を自作してみたくなったが、自前のpcだと計算能力が心許ない。そんな事を考えていたときにgoogle ColaboratoryのGPU提供について知り、計算を肩代わりしてもらおうと考えた。

#0.今回の目標

以下の写真からヴァイオリン族を認識するカスケード分類器を、google colaboratoryを用いて作成する。もちろんヴァイオリン・ヴィオラ・チェロ・コントラバスの区別を付けられるようになるのが理想であるが、(クラシック音楽をあまり知らない)人にすら難しい事を要求するのは酷であるため、ハードルを低くしている。

![instruments.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689756/96b2fe2f-23fe-6383-0b71-9ab562a58797.jpeg)

#1. 準備

1-1. google colab環境の準備
1-2. 画像データの準備
1-3. mergevec.pyのダウンロード

###1-

元記事を表示

DynamoDBをPythonからSQLっぽく操作する。

# set up

“`sh

pip install dql
“`

# code

“`python

import dql
import boto3
import os
table_name=os.environ[‘TABLE_NAME’] # dynamodb

engine = dql.Engine()
c = engine.connect(
region=os.environ[‘AWS_DEFAULT_REGION’],
access_key=os.environ[‘AWS_ACCESS_KEY_ID’],
secret_key=os.environ[‘AWS_SECRET_ACCESS_KEY’],
host=os.environ[‘HOST’],
port=int(os.environ[‘PORT’]),
is_secure=False
)
print(“–scan–“)
results = engine.execute(f”SCAN * FROM {table_name} LIMIT 10”)
for i

元記事を表示

【Python】データサイエンス100本ノック(構造化データ加工編) 025 解説

##Youtube
[動画解説](https://youtu.be/P54EGf–2gk)もしています。

##問題
P-025: レシート明細データフレーム(df_receipt)に対し、顧客ID(customer_id)ごとに最も古い売上日(sales_ymd)を求め、10件表示せよ。

##解答
“`:コード
df_receipt.groupby(‘customer_id’).sales_ymd.min().reset_index().head(10)
“`

##出力
| | customer_id | sales_ymd |
|–:|:–|–:|
| 0 | CS001113000004 | 20190308 |
| 1 | CS001114000005 | 20180503 |
| 2 | CS001115000010 | 20171228 |
| 3 | CS001205000004 | 20170914 |
| 4 | CS001205000006 | 20180207 |
| 5 | CS001211000025 | 20190322 |
| 6 | C

元記事を表示

Transformerを用いたニューラル機械翻訳をやってみよう

奈良で機械翻訳の研究をしているokayuといいます.
タイトルの通り,ゼロから英日ニューラル機械翻訳をやってみましょう.

#ニューラル機械翻訳とは?
ディープラーニングを用いた機械翻訳の手法全般を指します.現在主流となっている機械翻訳手法で,有名なモデルとしてTransformerがあります.

– [Attention Is All You Need](https://arxiv.org/abs/1706.03762) (原論文)
– [論文解説 Attention Is All You Need (Transformer)](http://deeplearning.hatenablog.com/entry/transformer) (Ryobotさんによる日本語の解説記事)

今回はこのTransformerモデルを用いて英日ニューラル機械翻訳をやってみたいと思います!
Sentenecepiece, OpenNMT, MeCab, multi-bleu.perlを用います.シングルGPUでの学習を想定しています.
この記事ではTransformerなど技術の解説などはしません…

元記事を表示

扱いにくいPDFのテキストのコピーをそこそこきれいに分割する関数を作った。

#はじめに
もともとは前々回、前回の記事
[【Python】英文PDF(に限らないけど)をDeepLやGoogle翻訳で自動で翻訳させてテキストファイルにしてしまおう。](https://qiita.com/Cartelet/items/c56477033cda17a2a28a)
[続【Python】英文PDF(に限らないけど)をDeepLやGoogle翻訳で自動で翻訳させてテキストファイル、いやHTMLにしてしまおう。](https://qiita.com/Cartelet/items/a00d4cec8216d04f9274)

で使用するために書いたものですが、役に立ちそうなので別途紹介する次第です。

#PDFからコピーしたテキストの問題点
PDFについての詳しい知識は持ち合わせていないのですが、
PDF内ではテキストが細かいパーツに分割されて書き込んであるようで、コピーしたテキストにもPDFでの表示の通りの位置に改行コードが含まれます。

例えば、PDFで

$$ABC.\\\DFE.\\\GHI.$$

のような表示の場合、コピーしたテキストは、

$$ABC.{\r\n}

元記事を表示

[成長日記:2日目]Yahoo!ニュースの最新記事見出しとurlをスクレイピングしてtxtファイルに出力

Webスクレイピングのやり方をググるとだいたいどのサイトも[Yahoo!ニュース](https://news.yahoo.co.jp/)を例に出して記事見出しを取得するコードを紹介している。
そんなWebスクレイピング初学者がとりあえず通るというプログラムを組んでみた。

##

元記事を表示

VScode環境構築(Windows10、Python、C++、C、Git)

## 概要
この記事は

– 新しいPCを手に入れて改めて環境構築したので、その備忘録
– VScodeで Python, C++, C などを扱う方へのヒントになればいいな

という気持ちで書きました。

この記事を読むと

– VScodeが使えるようになる!
– Pythonが使えるようになる!
– C++, Cが使えるようになる!

という感じの内容になっていて、具体的には

– VScodeのインストール
– Anacondaのインストール
– Pythonの仮想環境の設定等
– C++, Cを実行するためのコンパイラのインストール
– 各種拡張機能のインストール
– 私のVScodeの設定

という感じになっています。
……とはいっても、実際にはほとんどが記事紹介という感じなので、先駆者様には感謝感謝です。

## VScodeのインストール
ということで、まずはVScodeをインストールしましょう。
VScodeはコードを書くやつですね(雑)。

[VScodeのインストール手順@Windows10](https://qiita.com/Shi-nakaya/items

元記事を表示

pythonの基礎: 関数

# 関数、組込関数

関数: プログラムのまとまりを定義したもの

組込関数: pythonそのものに予め設定されてる関数

変数のプログラム版だと考えればいいかと

## メソッド

特定の値に大して処理を行う物をメソッドといいます。

“`:メソッド
値.メソッド名()
“`

### インスタンスメソッド

値の要素などを取り出すインスタンス変数というものもあります。
インスタンス変数は関数ではなく変数なので引数を持ちません。

“`:インスタンス変数
値.インスタンス変数名
“`

appendを例に出すと以下のようになります。

“`python:append
# append()は、リストに新しい要素を1つだけ追加したい場合に使用するメソッドです。

al = [“1″,”2″,”3″,”4″,”5”]
al.append(“f”)
print(al)
# [“1″,”2″,”3″,”4″,”5″,”f”]が出力される
“`

## 文字列型のメソッド

文字の拡大と、数えを行うメソッドです。

| コード | 内容 |
|:-:|:-:|
| uppe

元記事を表示

PyGMTの導入

PythonでGMTがつかえるらしいので入れてみる。
https://www.pygmt.org/dev/install.html

# 仮想環境の構築

“`bash:
conda create -n pygmt python=3.8.2
conda activate pygmt
conda install pip numpy pandas xarray netcdf4 packaging gmt
conda install pygmt -c conda-forge
conda install ipython jupyter jupyterlab -c conda-forge
“`

# サンプルテスト
チュートリアルにしたがってすすめる。

“`bash:
conda install pytest pytest-mpl ipython
“`

`python`を起動して、

“`Python:
import pygmt
pygmt.show_versions()
pygmt.test()
“`

返ってきたメッセージ

“`python:
==============

元記事を表示

【coding interview】enigma暗号機の実装(Python)

# はじめに

酒井潤さんがYoutubeで紹介していたエニグマ暗号機を実装してみました。
今回、このコーディングを行った理由としては、シリコンバレーの人の構文等を参考にしたかったのとオブジェクティブな実装の練習です。

酒井さんのYoutubeは[こちら](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwj45vTKnZPrAhVU_GEKHbb5C90QwqsBMAF6BAgKEAg&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dv1rUoMZRjoQ&usg=AOvVaw2IjXcPc1wjhqag1_kef6Ul)になります。
また、オリラジの中田さんがYoutube大学でエニグマについて説明してくれていて面白かったので[こちら](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ah

元記事を表示

[AWS] SAM + Lambda(Python)で、PythonライブラリをLayerに追加して利用してみる

# SAMのインストール
「[[AWS] Serverless Application Model (SAM) でAPI Gateway + Lambda + DynamoDBなサンプルを作成してみる](https://qiita.com/herohit-tool/items/5b0fe520f6f28fb5b4bc)」を参照ください。

なお、今回のサンプルに限っていうと、DynamoDBをローカルに持つ必要はないので、Dockerのインストールは不要です。

# プロジェクトの作成
では、例によって、HelloWorldベースのプロジェクトを作成していきましょう。

“`bash
$ sam init –runtime=python3.8
Which template source would you like to use?
1 – AWS Quick Start Templates
2 – Custom Template Location
Choice: 1

Project name [sam-app]:

Cloning app templates from htt

元記事を表示

4x4x4ルービックキューブを解くプログラムを書こう! 3.実装

# この記事はなに?
私は現在4x4x4ルービックキューブ(ルービックリベンジ)を解くロボットを作り、世界記録を目指しています。ロボットを作る上で一番のハードルであったのが4x4x4キューブを現実的な時間に、なるべく少ない手数で解くアルゴリズムを実装することです。
調べてみると4x4x4については文献や先人が少ないことがわかると思います。そんな貴重な資料の一つになれば嬉しいと思い、この記事を書いています。
GitHubは[こちら](https://github.com/Nyanyan/Solvour)
**この記事の内容は完全ではありません。一部効率の悪いところを含んでいるかもしれません。今後改良したら随時追記していきます。**

↓競技用4x4x4ルービックキューブとプログラム制作のために番号を振られた競技用4x4x4ルービックキューブ
![Image from iOS(15).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494375/6fb8b345-3d8f-91f8-c40e-90621b86

元記事を表示

Djangoでスキーマに動的にテーブル作成、動的にModel生成

#概要
DjangoのORM機能は素晴らしいが、動的に作成したテーブルや、postgresの特定スキーマ内のテーブル等、少し想定と異なるテーブルに対してModelを作成しようとすると、なかなか情報が少ない。

また、作成済のテーブルを流用し、別のスキーマに同じ定義のテーブルを作成するなど少々込み入ったことをしようとすると、調査に時間がかかり、とたんに開発の手が数日止まってしまう。

この記事は、これら課題に直面し、四苦八苦しながら、以下を実現しようとした記録である。

**<実現したいこと>**

– 既存のModelと同じ定義で、スキーマのみが異なるModelを、既存Modelを流用して**動的に**作成したい。
– 作成したModelを使って、作成したModelとは異なるスキーマにテーブルを**動的に**作成したい。
– 作成したModelを使って、**DjangoのORM機能を使って**、検索や登録を行いたい。

要するに、少々こみった要件ではあるが、DjangoのModelクラスを利用したORM機能は秀逸なので、テーブル作成やレコード登録、検索などの恩恵を最大限に受けたいわけで

元記事を表示

Scrapyの始め方

# 公式ドキュメント:
https://doc-ja-scrapy.readthedocs.io/ja/latest/index.html

# クローリングを実行するまで
“`sh
# プロジェクト作成
$ scrapy startproject

# 設定
$ cat setting.py
DOWNLOAD_DELAY = 1
FEED_EXPORT_ENCODING = “utf-8”

# spider作成
$ scrapy genspider

# parseの処理を書いてクローリング実行
$ scrappy crawl
“`

# parseの例
“`py
def parse(self, response):
for sel in response.css(‘#gmap_list > li > a’):
next_page = response.urljoin(sel.css(‘a::attr(“href

元記事を表示

ベイズ推論での解析(1)・・AとBのどちらが良いか

##ベイズ推論解析例題;:AとBのどちらが良いか

####Pythonで体験するベイズ推論より
[「Pythonで体験するベイズ推論」](https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers)

ベイズ推論でサイトAとサイトBのどちらが良いか?という問題です。

#####問題:サイトAの真のコンバージョンは?

サイトAを見たユーザーが最終的に資料請求や購入など利益につながるアクション(これをコンバージョンという)につながる確率を$p_A$とする。
$N$人がサイトAを見てそのうち$n$人がコンバージョンにつながったとする。
そうすると、

“`math
p_A=n/N
“`
と思うかもしれないが、それは違う。つまり、$p_A$と$n/N$が等しいかどうかわからないからである。観測された頻度と真の頻度には差があり、真の頻度は事象が発生する確率と解釈できる。つまり、サイトAを見たから、アクションにつながったかどうかはわからないからである。
例えば

元記事を表示

iPadで機械学習ができるiOS/iPadOSアプリ「Juno」

## Junoについて

https://apps.apple.com/jp/app/juno/id1462586500

appstoreで1840円でDLできます。

このアプリ自体は昔からあるんですが、最近のアプデでついにscikit-learnが使えるようになったということなので購入して実際に試してみます。

このアプリ、基本的にはiOS/iPadOSでJupyterNotebookを編集できるというアプリになっていて、

同様にJupyterが使える[carnets](https://apps.apple.com/jp/app/carnets-jupyter/id1450994949)と言うアプリがあり、無料ということもあってそちらを使っていましたが、scikit-learnは使用できませんでした。

## 動作チェック

動作チェックは[こちらの記事](https://qiita.com/ao_log/items/fe9bd42fd249c2a7ee7a)のコードをそのままやっていきます。

結論から言うと、全て動作します。

元記事を表示

引っ越すvs契約更新「今の家賃は妥当なのか?」意思決定を助ける定量データの作成

#はじめに
賃貸派の方々は契約更新の時期が近づいてくる中で、こういう気持ちが生まれることはないでしょうか。
「今の家に不満はないが、更新の時にもう少し安くならないかな・・・」
「更新時に安くならなきゃ引越ししようかな」
「家賃相場より高く物件を借りているのではないか・・・?」

**「自分の払っている家賃が妥当かどうか確認したい」**今回はここを定量的に把握する事を目標とします。

#目標
分析目標を細かく分解していきます。

**誰が**:「賃貸契約者(住んでる人)が」
**いつ**:「引っ越すか、契約更新するか悩んでいるとき」
**何を**:「自身の払っている家賃が妥当なのか」
**が分かれば**
**何ができる**:「引っ越すか、契約更新するか、家賃交渉するかの意思決定の手助けができるようになる」

このためには、あらゆる物件の家賃相場を把握する事がまず必要です。

#データの準備
賃貸物件情報サービス「SUUMO」からデータをスクレイピングします。
収集時期:2020年6月
収集範囲:東京23区
データ総数:175,032件

収集した特徴量は下記の通りです。([SUU

元記事を表示

OTHERカテゴリの最新記事