Python3関連のことを調べてみた2022年06月10日

Python3関連のことを調べてみた2022年06月10日

PythonでGCSをトリガーにBQデータ格納

## やること
GCSにファイルがアップロードされたことをトリガーに、そのファイルをBQに格納する

## GCS
GCSのコンソール上で「バケットを作成」
※今回は名前が`test`
その下の階層に「フォルダを作成」
※こちらも名前が`test`

あげるファイル
`test20220606.csv`

date,id,name,click
2022-06-06,111111,Aki,4
2022-06-06,222222,Haru,10
2022-06-06,333333,Natu,23
2022-06-06,444444,Huyu,19
2022-06-06,555555,Oto,1

## BigQuery
プロジェクトからデータセットだけ作成
データセット名:`test`

## コード
requirements.txt

google-cloud-bigquery

`pip install -r requirements.txt`

main.py

from google.cloud import big

元記事を表示

scipy.stats ジャック・ベラ検定 jarque_bera

# scipy.stats ジャック・ベラ検定 `jarque_bera`

データが尖度と歪度からみて,正規分布にしたがっているかを検定する。

サンプルサイズが 2000 以上の場合にのみ十分な近似ができる。小標本の場合には $\alpha$ エラーが大きくなりがちである。

`jarque_bera(x)`

“`python
from scipy.stats import jarque_bera
import numpy as np

np.random.seed(123)
x = np.random.normal(50, 10, 2000)
jarque_bera(x)
“`

Jarque_beraResult(statistic=4.35459209387323, pvalue=0.11334760325001603)

“`python
from scipy.stats import t
np.random.seed(123)
y = t.rvs(df=1, size=2000)
jarque_bera(y)
“`

Jarq

元記事を表示

Pythonの例外エラーログ、もうちょっと詳しく見たくない?

ある日の某Pythonアプリケーションのエラーログを眺めていると謎のエラーが…!

“`
Traceback (most recent call last):
File “/sandbox/app.py”, line 22, in
main()
File “/sandbox/app.py”, line 17, in main
sub()
File “/sandbox/app.py”, line 10, in sub
raise Exception(“sub error!”)
Exception: sub error!
“`

例外が起きたときのTracebackですね。
Exceptionに詳細が記録されていればわかりやすいのですが、上記のようになぜエラーが起きたのかわからないと困りますよね。

そんなとき、Tracebackのstackを追いかける事でそのときのローカル変数を取得できます。

こんなアプリケーションがあるとして
“`
def sub():
d = 4
e = 5
raise Ex

元記事を表示

python学習 – 2日目

# はじめに
python初心者がこっそり学習する。
2日間が空いてしまいました。。

# 今日やること
– 文字列
– 数値

# 文字列
## 文字列の書き方
文字列の書き方は、
– “(ダブルクォーテーション)で囲む
– ‘(シングルクォーテーション)で囲む

pythonの場合はどちらで囲んでも結果は同じ。
ただ、他言語を学んでいる人は、なんとなくどっちで囲むか感覚が身についているみたい。
文字列を’か”で囲んでいないと、コードが動かなくなるので注意。
膨大なコードを書いたときに、ここでミスすると修正が大変そう。。
`入力例`

“`
# 牛タンと表示
print(“牛”)
print(‘tongue’)
“`

`実行結果`
“`

tongue
“`

## エスケープ文字の扱い方
‘でも”でも、エスケープ文字を置換して出力する。
置換しない場合は文字列の前に r または R をつけると置換されなくなる。

`入力例`
“`
# スクール水着の間を改行
print(“スクール\n水着”)
“`

`実行結果`
“`
スクール
水着
“`

`入力例`

元記事を表示

scipy.stats: Brunner-Munzel 検定 brunnermunzel

# scipy.stats: Brunner-Munzel 検定 `brunnermunzel`

Brunner-Munzel 検定を行う。

`brunnermunzel(x, y, alternative=’two-sided’, distribution=’t’, nan_policy=’propagate’)`

– `distribution` $p$ 値の計算に $t$ 分布を使う(デフォルト)とき `’t’`,標準正規分布を使うとき `’normal’` を指定する。

“`python
from scipy.stats import brunnermunzel
import numpy as np

x = np.array([1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 1, 1])
y = np.array([3, 3, 4, 3, 1, 2, 3, 1, 1, 5, 4])
brunnermunzel(x, y)
“`

BrunnerMunzelResult(statistic=3.1374674823029505

元記事を表示

Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads() の解決法

###### 環境
– Windows 10 Pro(ホストOS)
– VMware Workstation 16 Player 16.2.3
– Ubuntu 22.04 LTS(ゲストOS)
– Hadoop 3.3.3
– openjdk version 11.0.15

###### 検証
1.下記コマンドを実行
“`
hadoop jar share/hadoop/tools/lib/hadoop-streaming-3.3.3.jar -files /var/tmp/mapper.py,/var/tmp/reducer.py -mapper /var/tmp/mapper.py -reducer /var/tmp/reducer.py -input /user/hadoop/input.txt -output /user/hadoop/pythonOutput
“`
“`/var/tmp/mapper.py
#!/usr/bin/env python
import sys

for l in sys.stdin:
for word

元記事を表示

scipy.stats: ムード検定 mood

# scipy.stats: ムード検定 `mood`

2 つのデータが同じ分布で,尺度パラメータが等しいかどうかの検定である(ノンパラメトリック検定)。

`mood(x, y, axis=0, alternative=’two-sided’)`

戻り値は,検定統計量と $p$ 値である。

“`python
from scipy.stats import mood
import numpy as np

ramsay = np.array([111, 107, 100, 99, 102, 106, 109, 108, 104, 99,
101, 96, 97, 102, 107, 113, 116, 113, 110, 98])
jung_parekh = np.array([107, 108, 106, 98, 105, 103, 110, 105, 104,
100, 96, 108, 103, 104, 114, 114, 113, 108, 106, 99])
mood(ramsay, jung_parekh)
“`

元記事を表示

scipy.stats: 二項検定 binomtest

# scipy.stats: 二項検定 `binomtest`

母比率の検定を行う。

`binomtest(k, n, p=0.5, alternative=’two-sided’)`

– `k` 成功数
– `n` 試行数
– `p` 母比率。デフォルトで 0.5
– `alternative` 検定種別。デフォルトで両側検定 `’two-sided’`,片側検定は `’greater’`,`’less’`

戻り値は `pvalue` などを含むオブジェクト

このオブジェクトのメソッド

`proportion_ci(confidence_level=0.95, method=’exact’)`

– `confidence_level` 信頼度
– `method` デフォルトは `’exact’`,その他に `’wilson’`,`’wilsoncc’`

“`python
from scipy.stats import binomtest

object = binomtest(682, 925, p = 3/4)
print(object.pvalue)
pri

元記事を表示

scipy.stats: アンダーソン・ダーリング検定 anderson

# scipy.stats: アンダーソン・ダーリング検定 `anderson`

データが特定の分布関数からのものであるかどうかの検定。

`scipy.stats.shapiro` が正規分布を対象にしているのに対して,いろいろな分布に従っているかどうかを検定できる。

`anderson(x, dist=’norm’)`

`dist` には `’norm’`, `’expon’`, `’logistic’`, `gumbel’`, `’gumbel_l’`, `’gumbel_r’`, `’extreme1’` が指定できる(デフォルトは `’norm’`)。

“`python
from scipy.stats import anderson
import numpy as np

np.random.seed(123)
x = np.random.normal(50, 10, 20)
result = anderson(x)
result
“`

AndersonResult(statistic=0.36238834776122175, critical

元記事を表示

Pythonとopencvで悪そうなモザイク作った

# 1.初めに
初めてQiitaで記事を書きます。高専1年生です。

試験期間中だったけど試験勉強したら負けだと思うので、最近学校でちょこっと触ったpythonとopencvを使って悪そうなモザイクを作って遊びました。全然大したことないです。

**僕なりに頑張って作った労力を誰かに見てほしい自己顕示欲と、自己満足、ないしテストから逃れるためにこの記事を書くので、「pythonで悪いモザイク作りてえな」という方向けへの分かりやすさに保証はないです。**
ただのブログだと思ってみてもらえれば幸いです。

# 2.作業環境
* Windows11
* python 3.10.4
* opencv 4.5.5
* numpy 1.12.5

# 3.下準備
料理にも運動にも下準備が必要なので、プログラミングでも下準備をします。

## 3-1.仮想環境構築
はじめにあーだこーだ言われている仮想環境の構築です。
仮想環境は作るに越したことはないです。~~僕のばあばも昔ながらの方法で作っていました。~~

しかし僕はanaconda navigatorから作りました。
コマンドは使わず、マ

元記事を表示

scipy.stats: シャピロ・ウィルク検定 shapiro

# scipy.stats: シャピロ・ウィルク検定 `shapiro`

シャピロ・ウィルク検定(正規性の検定)を行う。

`shapiro(x)`

帰無仮説 $H_0$: データは正規母集団から抽出されたものである
対立仮説 $H_1$: データは正規母集団から抽出されたものではない

“`python
from scipy.stats import shapiro
import numpy as np
“`

# 1. 正規乱数

平均値=50,標準偏差=10 の 20 個の乱数を発生させ,シャピロ・ウィルク検定でこのデータが正規分布に従うか検定する。

“`python
np.random.seed(123)
x = np.random.normal(50, 10, 20)
shapiro(x)
“`

ShapiroResult(statistic=0.9611964225769043, pvalue=0.5680192112922668)

$p \gt 0.05$ なので,有意水準 5% のもとでは,帰無仮説は棄却できない。結論は,「データ

元記事を表示

pipxでinstallしようとすると失敗するときの対処法

備忘録も兼ねて。

# 経緯
pipxを使ってみようと思い、
`pip install –user pipx`でインストールして
`pipx ensurepath`でパスを通したあと、
blackを使うために`pipx install black`としたら、以下のエラーが赤文字で出た

“`
pipx: The term ‘pipx’ is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
“`

# 原因と対処法
`pipx ensurepath`で自動的に通された環境変数パスが、何故かすべて小文字になっているのが原因

正しいパスを環境変数に入れてやれば解決する

正しいパスは、`pipx ensurepath`をはじめてしたときに出てくる
“`
S

元記事を表示

PsychoPyインストール時のpocketsphinxビルドエラーの解消方法

この記事ではWindows10または11上に作成したanaconda仮想環境で実行した際の解消方法となります。
# 解消方法
根本的な解決ではないですが場当たり的な解法としてpocketsphinxのビルド済みのバイナリファイルをダウンロードして、インストールしていきます。以下のサイトに有志の方が公開されているものがあるのでこちらを拝借させていただきました。
https://www.lfd.uci.edu/~gohlke/pythonlibs/
今回私の場合は、pocketsphinx‑0.1.15‑cp38‑cp38‑win_amd64.whlをインストールしました。簡単にはcp38がpython3.8を示していて、最後のamd64が64bit版をあらわしています。ご自身の環境にあったものをインストールしてみてください。
インストールの方法は、
“`cmd:cmd
pip install \’ダウンロードのパス’\pocketsphinx‑0.1.15‑cp38‑cp38‑win_amd64.whl
“`
でインストール可能です。
私の環境ではswingをいくらインストールしても

元記事を表示

scipy.stats: アンサリ・ブラッドレイ検定 ansari

# scipy.stats: アンサリ・ブラッドレイ検定 `ansari`

`ansari(x, y, alternative=’two-sided’)`

独立二標本の等分散のノンパラメトリック検定である。

戻り値は,検定統計量と $p$ 値である。

同順位がある場合は,Warning が発せられる。

“`python
from scipy.stats import ansari
import numpy as np

x = np.array([111, 107, 100, 99, 102, 106, 109, 108, 104, 99,
101, 96, 97, 102, 107, 113, 116, 113, 110, 98])
y = np.array([107, 108, 106, 98, 105, 103, 110, 105, 104,
100, 96, 108, 103, 104, 114, 114, 113, 108, 106, 99])
ansari(x, y)
“`

/Library/Fram

元記事を表示

scipy.stats: フリードマン検定 friedmanchisquare

# scipy.stats: フリードマン検定 `friedmanchisquare`

`friedmanchisquare(*args)`

関連のある $k$ 標本の代表値の差のノンパラメトリック検定である。
引数の指定法は若干不自由である。
多くの統計パッケージでは以下のようなデータ行列を与える仕様になっていることが多いが,`friedmanchisquare` では,列ベクトルを複数与える)。

もともと,$k$ 個の配列(ベクトル)で用意されているなら別であるが。

“`python
from scipy.stats import friedmanchisquare
import numpy as np
data = np.array([
[5.4 , 5.5 , 5.55],
[5.85, 5.7 , 5.75],
[5.2 , 5.6 , 5.5 ],
[5.55, 5.5 , 5.4 ],
[5.9 , 5.85, 5.7 ],
[5.45, 5.55, 5.6 ],

元記事を表示

FlaskでFirebase AuthとFirestoreを同時に使いたい時にしたこと

# 概要
[firebase-admin](https://pypi.org/project/firebase-admin/)をFlaskプロジェクト内で使っていた。

Firebase AuthもFirestoreも使いたかったので、同プロジェクト内でファイルごとに“`firebase_admin.initialize_app(cred)“`
したら、以下のようなエラーが出た。

“`
ValueError: The default Firebase app already exists. This means you called initialize_app() more than once without providing an app name as the second argument. In most cases you only need to call initialize_app() once. But if you do want to initialize multiple apps, pass a second argument to initial

元記事を表示

scipy.stats: 相関係数 pearsonr, spearmanr, kendalltau

# scipy.stats: 相関係数 `pearsonr`, `spearmanr`, `kendalltau`

# 1. scipy.stats: ピアソンの積率相関係数 `pearsonr`

ピアソンの積率相関係数(いわゆる相関係数と略称されるもの)を計算する。

`pearsonr(x, y)`

“`python
import numpy as np

x = np.arange(15)
y = x**2
“`

戻り値は,ピアソンの積率相関係数と,無相関検定の結果の $p$ 値。

“`python
from scipy.stats import pearsonr

r, p_value = pearsonr(x, y)
(r, p_value)
“`

(0.9644093612193902, 6.916724428470378e-09)

戻り値には $t$ 値が含まれないので,本末転倒だが逆算する。

“`python
from scipy.stats import t
np.copysign(t.isf(p_value / 2,

元記事を表示

Python で Tweet の位置情報をヒートマップを用いて可視化しよう!(folium版)

# はじめに
[「Python で Twitter の位置情報収集」](https://qiita.com/ryamamoto0406/items/82e71076af387ee77762)で集めた Tweet の位置情報を可視化していきたい。今回はキーワードを “beer” として 2022年5月23日、24日、25日の間につぶやかれた位置情報を取得し、これを可視化してみる。データの取得方法については上記記事を確認されたし。

cartopy でヒートマップを作る方法は[Python で Tweet の位置情報をヒートマップで可視化しよう!(cartopy版)](https://qiita.com/ryamamoto0406/items/561b45fbcf65af41764c)に記載済み。前半部分は上記記事と全く同じ。

# データの読み込みと結合
まず収集したデータを読み込み、三つのデータフレームを結合する。

“`python:データ読み込みと結合
# 必要なモジュールのインポート
import pandas as pd

# データの読み込み
df1 = pd.read_c

元記事を表示

Python で Tweet の位置情報をヒートマップを用いて可視化しよう!(cartopy版)

# はじめに
[「Python で Twitter の位置情報収集」](https://qiita.com/ryamamoto0406/items/82e71076af387ee77762)で集めた Tweet の位置情報を可視化していきたい。今回はキーワードを “beer” として 2022年5月23日、24日、25日の間につぶやかれた位置情報を取得し、これを可視化してみる。データの取得方法については上記記事を確認されたし。

# データの読み込みと結合
まず収集したデータを読み込み、三つのデータフレームを結合する。

“`python:データ読み込みと結合
# 必要なモジュールのインポート
import pandas as pd

# データの読み込み
df1 = pd.read_csv(“./20220523_beer.csv”)
df2 = pd.read_csv(“./20220524_beer.csv”)
df3 = pd.read_csv(“./20220525_beer.csv”)

# データ結合
df = pd.concat([df1, df2, df3])

#

元記事を表示

【Python】音声の特徴量抽出MFCCの前段階:ケプストラム分析

音声の特徴量抽出はMFCC(メル周波数ケプストラム係数)をよく見かけます。しかし、メル周波数ケプストラム係数は名前に含まれているようにケプストラム(Cepstrum) と呼ばれる分析方法が基本にあります。

今回は、ケプストラム分析とPythonで書いたソースコードを解説をします。特にケプストラムの基本とソースコードについて着目するつもりですので、厳密な定義などは省きます。

# ケプストラム分析とその注目すべき点
**ケプストラム(cepstrum)** 分析とは音声信号処理において**周波数スペクトルを信号とみなして、フーリエ変換する手法** のことです。

これだけ聞くと通常は「何いってるのん??」となります。ケプストラム分析をするメリットとしては、スペクトル包絡と、スペクトル微細変動成分に分離できる点です。

試したものが以下になります。
今回の音声ファイルはAttribution-ShareAlike 4.0 International (CC BY-SA 4.0)のJakobovskiらによるFree Spoken Digit Datasetを使用しました。
[【Githu

元記事を表示

OTHERカテゴリの最新記事