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

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

MoviePyを使ってPythonで動画編集をする

#前置き
この記事は[MoviePyの公式ドキュメント](https://zulko.github.io/moviepy/index.html)をまとめたものです。本格的にMoviePyを使いこなしたい人はおやつでもつまみながら**公式ドキュメント全体をじっくり読むことを強くおすすめします**。英語ですが、Google翻訳を使いつつ、難解な部分はDeepLを使用しながら読み進めば大丈夫なはずです。[Github](https://github.com/Zulko/moviepy)も読んでおくと良いかもしれません。この記事はとりあえず全体を理解したい、とにかく今すぐ使いたいという人向けです。誤り、情報の更新などがありましたら遠慮なくお教え下さい。

#MoviePyとは?
Pythonで動画編集ができるライブラリです。Pythonでは他にも動画編集を行う手段があります。画像編集ライブラリopenCVをつかった手法、ffmpegをコマンドラインで操作する手法などです。場合によってはこれらを検討するのもアリです。
YouTubeにMoviePyで[具体的にどのようなことができるのかのサンプル

元記事を表示

Python Conference 2020 アジア制覇した男がおすすめするPyCon発表動画12選

Classiアドベントカレンダー24日目です。ClassiデータAI部の平田です。

2018年と2019年の24日は、毎年、新宿のカレーについての調査結果[【2018年度】進撃の壁外調査結果報告@新宿カレー区](https://qiita.com/tetsuya0617/items/73fc69bcf1fc889097af)と[【2019年度】進撃の壁外調査結果報告@新宿カレー区](https://qiita.com/tetsuya0617/items/5ada9d22b7e1d2ccaed9)の記事を書いてきました。

今年は、コロナの影響で外出自粛規制により残念ながら壁外へ飛び出すことができませんでした。しかし、この状況だからこそ、インターネットの世界を上手く使うチャンスだろうと。
そこで、各国でカンファレンスがオンライン開催になったことを知り、それなら世界のカンファレンスに**Speaker**として出場していくぜっ!

世界各国で開催されている[Python Conference 2020](https://www.python.org/events/python-even

元記事を表示

statsmodelsでホールドアウト検証を実装する

# はじめに
pythonでは,ロジスティック回帰モデルを利用できるライブラリとして主にsklearnとstatsmodelsが用いられます.statsmodelsには係数の有意差検定を自動でしてくれる等のsklearnにはない利点がある一方で,代表的なモデルの評価方法であるホールドアウト法や交差検証法に対応していません.そこで今回は,statsmodelsでホールドアウト法を実装するためのコードを作成してみます.
# ライブラリのインストール
“`python:sample.ipynb
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.model_selection import StratifiedKFold
import statsmodels.api as sm
“`
#データのインストールと前処理
データには,私が卒業研究のために独自に集めたクラウドファンディングに関するデータを用います.
このデータは私の[git

元記事を表示

pythonインタプリタ起動時の決まった処理の追加

# 環境
– windows 10 pro
– python 3.9.0

# 目的
pythonのインタプリタで起動するたびimport文を書くのが面倒であったため
起動と同時に自動でインポートをしてくれる設定の方法を調べました。

# やりかた
homeのディレクトリ(`C:\Users\\`)とかに以下のようなファイルを作成します

“`python:.pythonstartup.py
from datetime import datetime
date = datetime.now()
“`
とか記述しておいて
環境変数に以下を設定

“`
setx PYTHONSTARTUP C:\Users\\.pythonstartup.py
“`

あとは、コマンドプロンプトに`python`と打つだけでファイルの内容が実行されます。

“`
>python
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on w

元記事を表示

[2020/11最新]wxPython インストール方法

Python3.9がリリースされました!
それをダウンロードして、さぁ、wxPythonをはじめよう!

と思ったら…

あれ?できない!!!
##インストールできない理由
wxPythonはまだ、Python3.9用のをリリースしていないようです。
そのため、このような現象に至ったのです。
##解決策
1つ目→Python3.9用のリリースをまつ。
2つ目→スナップショットを使う

“`terminal:cmd.exe
pip install -U –pre -f https://wxpython.org/Phoenix/snapshot-builds/ wxPython==4.1.1a1.dev5063+1d243a37
“`

##おわりに
無事、インストール出来たでしょうか。
wxPythonがPython3.9に対応したら、もう気にする必要はありません。
追記
wxPythonの最新バージョンがリリースされました。
`pip install wxPython`で、インストールできない際に参考にしてください。

元記事を表示

Computing the BigQuery cost of a single Airflow DAG run

## TL;DR

To estimate the number of bytes processed by a single run of a given DAG on a given day, execute the following:

“`sh
$ pip3 install https://github.com/dtws/airflow-dag-profiler@v0.0.1
$ airflow-dag-profiler
“`

## Problem

At work I often use [BigQuery](https://en.wikipedia.org/wiki/BigQuery) and [Airflow](https://en.wikipedia.org/wiki/Apache_Airflow). However, BigQuery is not free and is billed [based
on the amount of data processed](https://c

元記事を表示

お問い合わせ内容からユーザーの不満をとても簡易的に解析する

XTechグループ2AdventCalendar2020の23日目はiXIT株式会社エンジニアの染谷(@kumi-someya)が担当いたします。
大学の専攻だった自然言語処理の技術をちょっと使ってお問い合わせデータの分析をします!

はじめに

普段は営業サイドからデータ抽出の依頼を受けてはSQLを組み…の生活を送っている私ですが、ふと
「そういえば、お問い合わせ内容をちゃんと見たことないな…」
と思ったのが始まりです。

そこで今回は、ユーザーがサービスで不便に感じている箇所を洗い出すべく、
お問い合わせなどの自由記述式のデータを、数値化してみようと思います!

【目的】自由記述式のデータを数値に表すことで、ユーザーの不満点を明らかにする。
【仮説】頻出単語を抜き出すことができれば、ユーザーがどこで躓きやすいかがわかるのではないか。
【概要】オープンソースの形態素解析エンジンMecabを使い、Pythonで簡易的な自然言語解析を行う。

簡単に使用ツールや用語などについて

**Pyhon**
  言わずとしれたプログラミング言語。
  自然言語処理や分析に

元記事を表示

共分散行列のコレスキー分解を用いた多変量正規分布に従う乱数生成

目次

  1. Advent Calendar 2020/12/10
  2. 多変量正規分布
  3. 二変量正規分布に従う乱数
  4. 多変量正規分布に従う乱数

Advent Calendar 2020/12/10

東大経済学研究科開講(学部共通)の証券投資:理論と実践という授業にて、レポート課題になっていた、共分散行列のコレスキー分解を用いた多変量正規分布に従う乱数生成について書こうと思います。Wikipedia

元記事を表示

【初心者向け入門】Python CSVファイルの読み取り・書き込み

#1. はじめに
今回はPythonでCSVファイルを書き込み,そのCSVファイルを読み取る方法を記載する.

#2. ソースコード

– CSVファイルには,リストを使って1行ずつデータを書き込む
– 追記で書き込む場合は,“`open“`の引数“`mode“`に“`a“`を指定する
– CSV書き込みの際に1行ごとの間隔が空いてしまうため(Windowsのみ?),“`open“`の引数“`newline“`に“`””“`を指定する
– 作成時の文字コード(“`encoding“`)に“`utf_8“`を指定しているため問題ないが,BOM付きのファイルの場合でも正常に読めるように,読み取り時の文字コード(“`encoding“`)には“`”utf_8_sig”“`を指定する(“`utf_8_sig“`で,UTF-8 BOM付きを示す)
– CSV書き込み時に文字化けする場合は,書き込み時の文字コード(“`encoding“`)にも“`utf_8_sig“`を指定する

“`Python:test.py
import csv

fl

元記事を表示

【Python】座標上の3点からなる角度を計算

点A,B,Cが存在する時の,∠ABC (点Bにおける角度)の算出方法です.

“`Python

# 点A,B,Cの座標(3次元空間上の場合)
a = np.array([0,1,2])
b = np.array([10,20,30])
c = np.array([5,7,9])

# ベクトルを定義
vec_a = a – b
vec_c = c – b

# コサインの計算
length_vec_a = np.linalg.norm(vec_a)
length_vec_c = np.linalg.norm(vec_c)
inner_product = np.inner(vec_a, vec_c)
cos = inner_product / (length_vec_a * length_vec_c)

# 角度(ラジアン)の計算
rad = np.arccos(cos)

# 弧度法から度数法(rad ➔ 度)への変換
degree = np.rad2deg(rad)
“`

元記事を表示

グーグル検索(画像)をスクレイピング

下記サイトを参考にしました。
https://qiita.com/taedookim/items/63759e79426514c8a729

# githubからクローン
google-images-downloadを利用します。
本家は更新が止まってるみたいなので、フォーク先から。

“`sh
git clone https://github.com/Joeclinton1/google-images-download.git
“`

# 以下のファイルを使いたい場所にコピー、少し編集
`ダウンロードフォルダ\google-images-download\google_images_download\google_images_download.py`

“`:google_images_download.py 935行目
NG: json_file = json.load(open(arguments[‘config_file’]))
OK: json_file = json.load(open(arguments[‘config_file’], encoding=’utf-

元記事を表示

Heroku openで503エラーがでた話

初投稿です。長すぎても私が疲れてしまうのでざっくりとした文章で書いてます。読みにくいかもしれませんがご了承ください。
本記事はこちらの記事を参考にさせていただきました。

# 環境
WSL2(Ubuntu-20.04 LTS)
Docker
Heroku
Line-bot-sdk=1.18.0
Flask=1.1.2

# Heroku にデプロイ
前提として、

– line developersの登録
– Flaskとline-bot-sdkをインストール
– Herokuに登録
– アプリケーションの登録
– 環境変数の設定
– webhookの設定
– 設定ファイルの作成

は終わっているものとして話を進めたいと思います。

## 変更内容を反映・デプロイ

# git add .
# git commit -am “make it better”
# git push heroku main

## デプロイの確

元記事を表示

漢字の文章のふりがなの簡易チェック

# 学習用データでやらかした
学習用データの漢字の文章と,そのふりがなを人力で用意した.ただちょくちょくふりがなが間違っている.または写し間違えている.たまに原文も日本語がおかしく,てにをはが間違ってる.そんなときにふりがなに直すときに善意で直してしまったようだ.

原文:ドレスが塗りたてのペンキがついてるよ。
かな:ドレスがぬりたてのペンキについてるよ。
「が」が「に」に直ってる.

正しいんだけどこれはこれで問題.なのでこれを見つける

## コード
当然だが漢字の文の中のひらがなはふりがなの方にも存在する.なので漢字に存在するひらがなをそれぞれカウントし,ひらがなのときにそれが減ってたらミスとする.

“`python
HIRAGANA: List[str] = [chr(i) for i in range(12353, 12436)]
KATAKANA: List[str] = [chr(i) for i in range(12449, 12532 + 1)]
def check(kanji: str, hurigana: str) -> bool:
flag =

元記事を表示

婚活のマッチング期待値をモンテカルロで計算する

# はじめに
男性と女性10組ずつ、
第3希望まで入力したときにマッチング期待値は何組になるのだろう?

婚活に参加してサンプルを取得したいところですが、
コロナ禍のこのご時世の中そんなことをすると、
データと引き換えに大切なものを失いかねませんので、
仕方なくモンテカルロさんの力をお借りすることに。

# 実装
“`Python:main.py
# -*- coding: utf-8 -*-
import random
import copy

# 相手を選択する。
# scrtmp:immutable、選択リスト
# target:ターゲット数
# sel:希望順位
# weight:重み
def voteTarget(scrtmp,target):
# sel数まで選んだら終わり
if scrtmp.count(1)==sel:
return True
#0~target-1 までをランダム
selectnum=int(random.random() * target)
scrtmp[selectnum]|=1
# 再帰処理
voteTarg

元記事を表示

ReRooting (全方位木DP) をそれとなく理解する

全方位木DPについて、なんとなく理解する記事です。自分の考え方のトレースなので冗長です。

ちゃんとした説明は他の記事を見てください。

全方位木DPについて書いている多くの記事で言われていますが、全方位木DPという表現よりReRootingという表現の方がしっくりきます。一度理解すると分かりますが、ある根を決めたらそこから掘っていきすべての頂点を根としたときの結果を求めていきます。

# 全方位木DPの特徴
– 木DPはある頂点を根としたときの何らかの計算を葉から行いますが、その過程ですべての頂点においてその部分木の計算を行っていることと同じです。
– これを利用して、最初に決めた根から順番にDFSで各頂点を辿り、ある頂点に注目したときその部分木以外の部分木の結果をマージすることで、少ない計算量で各頂点を根とみなした結果を求めていきます
– さらに、この計算の過程では、累積和のように全区間に対する事前計算を行うことで、高速にマージを行います。

# 木DPの説明
これからは以下のような問題を題材にします。

>n個の頂点からなるの無向グラフがあり、木である

元記事を表示

macでjupyter-notebookのブラウザをgoogle chromeに設定する方法

#jupyter notebookの[]や候補予測がmacのsafariでは使いにくいのでchromeに変更

括弧などがsafariでjupyter notebookを開くと使いにくいのでchromeを既定ブラウザにしたいと思いました。
ただ、macだと少し設定が面倒らしいので今回は個人メモとして記述します。

まずは、find.jupyterで.jupyterのファイルを検索

“`python
.jupyter/jupyter_notebook_config.py
“`
その中から上のファイルをコピー

“`python

open .jupyter/jupyter_notebook_config.py
“`
でファイルを開く。

その中から

“`python
#c.NotebookApp.browser = ”
“`
を探す。
私のターミナルだと99行にありました。

この#を外して

“`python
NotebookApp.browser = ‘/Applications/Google\ Chrome.app/Contents/MacOS/Googl

Python数学シリーズ②(行列の掛け算)

## 経緯
[深層学習の本](https://www.amazon.co.jp/%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92-Ian-Goodfellow/dp/4048930621)を読み進めているのですが、ひたすら文字を読んでると眠くなってしまうので、出てきた項目をpythonで実装しながら理解を深めていこうと思います。需要があるかはわかりませんが、シリーズ化していています(笑)。今回は行列の掛け算です。pythonはライブラリが豊富なので、それに頼れば何も考えずに計算できるのですが、あえて自作しています。
***これは[adevent calendar](https://qiita.com/advent-calendar/2020/global_walkers)の自分の最後の記事です。カレンダーの最後は@bigface00さんが締めてくれます。***

## 行列の掛け算
行列の掛け算は下のようなイメージで計算できます。[参照元](https://atarimae.biz/archives/23930)
![Screenshot from 2020-1

PythonのZeroDivisionErrorを使った例外処理

# はじめに
今回は大学のレポートで「Pythonでなにかしらの例外処理を作れ!」とのことだったので簡単なものではありますが、例外処理を作成しました。
例外処理で詰まっている方の参考になれば嬉しいです。

#作成したコード

“`python:try_except.py
#割り算がしたくなるように仕向ける
print(“\n_____________________________________________________\n”)
print(“現在、あなたは割り算がしたい欲求がたまっています。”)
print(“ここで思う存分に、割り算をしてください。”)
print(“数字を入力したらEnterを押して、次の数字を入力してください。”)
print(“\n※ ちなみに、yに「0(ゼロ)」は決して入れてはいけませんよ※”)
print(“_____________________________________________________\n”)

#数字をインプットして出力
print(“x = “,end=””)
x = float(input())
print(“y

wxPythonの基本!

##wxPythonとは
最近、Python3.9がリリースされましたね。

みんなにアプリ作って自慢したいけど、コンソールアプリじゃ、面白くないよね。
じゃあ、GUI開発をしよう!

PythonのGUIライブラリは意外と沢山あります。
例えば、短いコードでできるTkinter、見た目がカッコイイkivy、C言語でも使われるPyQt、それと今回紹介する、wxPython。

wxPythonとは、GUI開発用のライブラリです。

いわなくてもよかったか。

そんなwxPythonを使って今回は、基本的な画面をつくっていきます。
##簡単な画面を作ろう!
以下のコードをご覧下さい。

“`Python:○○.pyw
import wx
app = wx.App()
frame = wx.Frame(None, -1, “タイトル”, size=(300,400))
panel = wx.Panel(frame,-1)
frame.Show(True)
app.MainLoop()
“`
1行目では、wxPythonをインストールしています。
2行目では、アプリケーションを作成して

kaggle の Courses を読む —Intermediate Machine Learning 4

# 精進します
こんにちは! まはらせないきと申します!
突然ですが、もうすぐセンター試験ですね。
浪人している自分よりずっと優秀だった高校の頃の仲間が受験します。
ほんとうに心から応援しています。
彼らを思うと、自分ももっと頑張らないといけないという気持ちが湧いてきます。

1週間に1回は更新したいと思っております。
それでは今回もよろしくお願いします!

___
__Intermediate Machine Learning__ では、機械学習をより深掘っていきます

~Intermediate Machine Learning の流れ~
1. 導入
2. 欠損値
3. カテゴリー変数
4. パイプライン
5. 交差検証
6. XGBoost
7. データの漏洩

今回は __4__ の内容です!

# パイプライン
パイプラインとは、データの前処理、モデルの作成をまとめて実行して、コードをよりシンプルに記述するための手段です。

多くのデータサイエンティストはパイプラインを用いずにコードを書いているそうですが、実際に得られるメリットは大きいそうです。

1. より簡潔なコード
2