- 1. python学習 – 2日目
- 2. scipy.stats: Brunner-Munzel 検定 brunnermunzel
- 3. Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads() の解決法
- 4. scipy.stats: ムード検定 mood
- 5. scipy.stats: 二項検定 binomtest
- 6. scipy.stats: アンダーソン・ダーリング検定 anderson
- 7. Pythonとopencvで悪そうなモザイク作った
- 8. scipy.stats: シャピロ・ウィルク検定 shapiro
- 9. pipxでinstallしようとすると失敗するときの対処法
- 10. PsychoPyインストール時のpocketsphinxビルドエラーの解消方法
- 11. scipy.stats: アンサリ・ブラッドレイ検定 ansari
- 12. scipy.stats: フリードマン検定 friedmanchisquare
- 13. FlaskでFirebase AuthとFirestoreを同時に使いたい時にしたこと
- 14. scipy.stats: 相関係数 pearsonr, spearmanr, kendalltau
- 15. Python で Tweet の位置情報をヒートマップを用いて可視化しよう!(folium版)
- 16. Python で Tweet の位置情報をヒートマップを用いて可視化しよう!(cartopy版)
- 17. 【Python】音声の特徴量抽出MFCCの前段階:ケプストラム分析
- 18. lxml.etree で XML の基本的なことを少し触ってみる
- 19. scipy.stats: 回帰分析 linregress
- 20. Python で COVID-19 のコロプレス図を作成する(folium版)
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 npx = 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 sysfor 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 npramsay = 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 binomtestobject = 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 npnp.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 npx = 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 npx = np.arange(15)
y = x**2
“`戻り値は,ピアソンの積率相関係数と,無相関検定の結果の $p$ 値。
“`python
from scipy.stats import pearsonrr, 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
lxml.etree で XML の基本的なことを少し触ってみる
# 目的
[Windows 10 + Excel2016_x86 VBA で XML の基本的なことを少し触ってみる](https://qiita.com/tabizou/items/10eb832352a6b31888c7)
で使用したXMLファイルをPythonで基本的な操作を実行してみる。## 対象となるXMLデータ(addr2.xml)
“`xml
東京都/世田谷区/池尻/四丁目/35番
池尻4-35-25
wgs1984
4
池尻4-35-
139.673965
35.654259
scipy.stats: 回帰分析 linregress
# scipy.stats: 回帰直線 `linregress`
単回帰分析を行う。
`linregress(x, y=None, alternative=’two-sided’)`
“`python
from scipy.stats import linregress
import numpy as npx = np.arange(15)
y = x**2res = linregress(x, y)
res
“`LinregressResult(slope=13.999999999999998, intercept=-30.333333333333314, rvalue=0.9644093612193901, pvalue=6.916724428470525e-09, stderr=1.0645812948447575, intercept_stderr=8.757219244080245)
名前付きタプルで,以下のものが返される。
– slope=13.999999999999998 は回帰直線の傾き
– intercept=-30.3
Python で COVID-19 のコロプレス図を作成する(folium版)
# はじめに
簡単なコロプレス図を作りたいと思ったときに、いろいろと調べたので備忘録代わりに記録しておく。以下、参考サイト。– foliumn の使い方
– [Folium Official Document](https://python-visualization.github.io/folium/)
– [foliumの基本的な使い方とオープンデータ活用](https://qiita.com/Kumanuron-1910/items/12ce7aa02922927de2f4)
– [foliumを使って東京23区ラーメンスコアを可視化する](https://qiita.com/xkent/items/d068fc504c8cef217ca8)
– [Pythonで特定の国を特定の色で分類したインタラクティブな世界地図を作る (folium)](https://qiita.com/sentencebird/items/8b5198bba42a80642520)
– 使用したデータ
– [CSSEGISandData/COVID-19(感染