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

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

ValueError: Unknown activation function:swish

### ValueError: Unknown activation function:swish が出た時

### 原因:
レイヤーが入っていないため、エラーが起きる
参考記事:https://github.com/qubvel/efficientnet/issues/62

### 解決法:
– モデル作成時の既存のレイヤーを入れる↓
“`
from efficientnet.keras import EfficientNetB0
“`
– 自作のレイヤーを入れる↓
[こちらの記事](https://qiita.com/kiakiraki/items/2ec24f13ee870e13a0fb) を参考にする

元記事を表示

文字表示付きQRコードの作成

# 目的
csvファイルに書き込んだ文字情報とURLを使って文字表示付きのQRコードを作成します。

下記サイトを参考にさせていただきました。
[Pythonによる文字表示付きQRコードの大量生成](https://qiita.com/Kosuke_Matsui/items/abc379e4486eeacd283e)

# 開発環境
Python version:3.9.7
OS: windows 10.0

# イメージ
![スクリーンショット 2022-05-30 9.15.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176158/b5d84f68-ffb9-c598-44cb-7a8f51aa5336.png)
表示したい文字と生成したいQRコードのアドレスをcsvファイルとして準備します。
PySimpleGUIを使って、csvファイルを選択し、処理をして、my_qr_codeのフォルダにQRコードを保存できるようにします。

# プログラム
プログラムは、[git](https://g

元記事を表示

【Python3】PDFの枚数確認

サクッとPDFの枚数を確認したいという場合は以下

“`pip install pdfminer.six“`

“`
from pdfminer.pdfpage import PDFPage

fp = open(‘‘, ‘rb’)
len(list(PDFPage.get_pages(fp)))

“`

元記事を表示

Pythonの a//b と int(a/b) の違いが少しわかった。AtCoder ABC253-D

こんにちは、佐藤かえでです。

初めてQiitaの記事を書いています。
先日のAtCoderABC253-Dを解いていた際に、解法はあってるのになぜかACにならないということがありました。

だいたいこういうときは、floatとか小数点周りで誤差が出ているのでは?と思いいろいろ調べたのでここに記します。

# AtCoderABC253 D
まずそもそもの問題からです。
[D – FizzBuzz Sum Hard](https://atcoder.jp/contests/abc253/tasks/abc253_d)

> 問題文
>1 以上 N 以下の整数であって、A の倍数でも B の倍数でもないものの総和を求めてください。

解法としては、
1~Nまでの総和から、同区間のAの倍数の総和、同区間のBの倍数の総和を引いて、
重複するAとBの最小公倍数の倍数の総和を足せばokです。

詳しくは解説を見てください。
[解説](https://atcoder.jp/contests/abc253/editorial/4017)

## 間違いのコードと正解のコード
わたしが最初に提出した間

元記事を表示

【python】import MeCabに失敗したがpipをupgradeしたら直った

# 概要
pythonでimport MeCabを実行すると以下のエラーが出てきてしまいました。

“`
% python
Python 3.8.6 (default, Jul 18 2021, 21:21:38)
[Clang 12.0.5 (clang-1205.0.22.11)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import MeCab
Traceback (most recent call last):
File ““, line 1, in
File “/Users/[username]/vscode/workspace/test/.venv/lib/python3.8/site-packages/MeCab/__init__.py”, line 10, in
from . import _MeCab
ImportError: dlopen(/Users/[usern

元記事を表示

【Python】sin波を作成し、wave形式で出力する

音声処理をするときに、基準となる音声データが欲しくなる。

自分の場合、”ラ”の音に該当する440 Hzの音を作成して、音声データを比較をすることが多い。

その音を周波数領域などで可視化するだけでなく、耳で聞くと、体感しながら音声処理が可能になる。
何かしら音声ファイルが欲しい。

今回は、Pythonで440 Hzの音をデータ配列上で作成するだけでなく、waveファイルを作成する。

実行環境は次の通り。
“`
Python 3.8.1
Ubuntu 20.04.4 LTS
“`

# sin波のデータ配列を作成
今回は上記でも書いたように”ラ”の基本周波数となる$ f$ = 440 Hzの音を1秒間作成する。
振幅を$A$、サンプリングレートを$f_o$、サンプルデータ番号を$n = 1,2,…,N$とすると、sin波の数列は、
“`math
A\sin\left(\frac{2\pi f}{f_o}n\right)
“`
で与えられる。

プログラムでは次のようにしてデータ配列を作成する。
“`python
import numpy as np
import wa

元記事を表示

scipy.stats: 点双列相関係数 pointbiserialr

# scipy.stats: 点双列相関係数 pointbiserialr

特別な名前がついているが,ピアソンの積率相関係数において,片方の変数が 2 値データの場合ということである。

`pointbiserialr` は point biserial correlation coefficient r で,訳すと,点双列相関係数ということである。

2 値変数は連続変数なので(知らない人も多いかもしれないが),当たり前なのだが,その昔,計算環境が劣悪だった頃は,特別な場合に簡単な計算式で計算できるということで誕生したものかな。

普通に(数値に変換しなければならないかもしれないが) `scipy.stats.pearsonr` を使えばよい。

“`python
import numpy as np

a = np.array([0, 0, 0, 1, 1, 1, 1])
b = np.arange(7)
“`

## 1. 点双列相関係数

`pointbiserialr(x, y)`

戻り値はピアソンの積率相関係数と無相関検定($H_0:\rho=0$)の両側検定の

元記事を表示

scipy.stats: 独立 k 標本の等分散性の検定

# scipy.stats: 独立 k 標本の等分散性の検定

複数の群の母分散が等しいかどうか検定する。

帰無仮説 $H_0$: それぞれの母分散は等しい。$\sigma^2_1 = \sigma^2_2 = \dots = \sigma^2_k$

対立仮説 $H_1$: それぞれの母分散は等しいとはいえない。$\sigma^2_1 = \sigma^2_2 = \dots = \sigma^2_k$ ではない(どこか少なくとも 1 つの等号は不等号である)。

## 1. Levene 検定,Brown-Forsythe 検定

`levene(*args, center=’median’, proportiontocut=0.05)`

関数名が levene であるが,それはデフォルトの `center=’median’` から見れば不適切である。

Levene は `center=’mean’` に相当する検定を提唱した(1960)。

Brown と Forsythe は後に `center=’median’` とする検定を提唱した(1974)。そのため,Brown-

元記事を表示

wave形式のファイルから波形データを取り出す

久しぶりに音声処理をしたくなった。目標はMFCCと呼ばれるメルケプストラム係数で特徴量抽出をすること。

このあたりの記事をググってもPython2系だったりと10年前ぐらいの記事が多いため、新しく記事を書くことにした。

ここでの実行環境は次の通り。
“`
Python 3.8.1
Ubuntu 20.04.4 LTS
“`

# 検証するwaveファイル
ここでは、440Hzのsin波を1秒間だけ再生するwave形式の音声ファイル(440Hz.wav)で検証を行うことにする。ファイルパラメータは次の通りとする。
“`
・チャネル数:モノラル
・1サンプルあたりのバイト数:2 byte
・サンプリング周波数:44100 Hz
・再生時間:1秒
“`

# 【簡単】waveファイルの波形データをnumpy配列に変換【soundfile】
音声処理をするPythonのライブラリの選択肢は多い。今回はsoundfileを使用する。
“`python
import soundfile

fname = “440Hz.wav”
data, fs = soundfile.read(fn

元記事を表示

scipy.stats: 一元配置分散分析 — Welch の方法

# scipy.stats: 一元配置分散分析 — Welch の方法

scipy.stats の `f_oneway` は,各群の母分散が等しいと仮定する,古典的な検定である。

R では,等分散を仮定しない Welch の方法がデフォルトであるが,Python ではどのライブラリにもない。

じゃあ,作っちゃお。

## 関数定義

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

def oneway_ANOVA(*x, equal_var=False):
k = len(x)
ni = np.array([len(y) for y in x])
mi = np.array([np.mean(y) for y in x])
vi = np.array([np.var(y, ddof=1) for y in x])
if equal_var:
n = sum(ni)
mean_x = sum(ni * mi) / n
df1,

元記事を表示

クラスをまとめるクラス設計(Facade?)

## 記事の内容
複数エンドポイントを持つAPIを実装するのに、
どうまとめるのが良いか考えていてエンドポイント毎にクラスを作成して、
エンドポイント毎のクラスをまとめるクラスを作ると汎用性の高い
クラスができると思い作ってみました。

デザインパターンのFacadeっぽい感じになると思います。
Facacdeで調べると複数機能を1つにまとめるために使われることが多くて、
呼び出し先をまとめるためではなさそうなので、っぽいとつけました。

Facadeについてはこの記事がわかりやすかったです。
https://xtech.nikkei.com/it/article/COLUMN/20051216/226402/

## 設計

同じメソッドを持つクラスを作成するので抽象クラスを作成します。
抽象クラスの命名は末尾にBaseを付けるか先頭にAbstractを付けることが多いようです。

APIを使うのにトークン取得は何を共通で持たせたいので抽象クラスで実装して継承します。

![クラス図.drawio.png](https://qiita-image-store.s3.ap-northe

元記事を表示

超初心者がe869120さんの【分野別 初中級者が解くべき過去問精選 100 問】をpythonで解いてみた!

先週のABCでなんと入茶することができました! そして緑コーダになるための方法を適当にググっていると良い感じのブログを見つけたので、その方のやり方を真似てみることにしました!

https://ryusuke920.hatenablog.jp/entry/2021/04/18/170331

この方がまずはe869120さんの【分野別 初中級者が解くべき過去問精選 100 問】を解くのが良いと書いていたので、ゴリゴリと解いていくことに決めました!【全探索:ビット全探索】までの問題を全部終わらせた後に、どこにも解き方をまとめていないことに気づいたので、順列全探索から自分なりの解き方、自力で解けなかった時は他の優秀な方の解き方を自分なりにまとめていきたいと思っています!もし同じ問題に取り組むあなたの助けになれたら幸いです!

145 Average Length

https://atcoder.jp/contests/abc145/tasks/abc145_c

“`python:practice.py
from itertools import permutation

元記事を表示

JavaとPythonのHello World(http getバージョン)

## ■前提
Javaのフレームワーク:spring boot
Pythonのフレームワーク:fastapi

## ■本題
### Java
ファイル
“`HelloApplication.java
package com.example.hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloApplication {

public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
“`

“`GreetingController.java
package com.example.hello;

import java.util.concurrent.at

元記事を表示

Pythonソースコードからドキュメント自動生成方法

Pythonソースコードからドキュメントを自動生成するツールに *Sphinx* というツールがあります。ソースコードにコメントを記述しておくと、このコメントの情報から美しいドキュメントを生成してくれます。
慣れが必要なので簡単に使い方を書きます。

# サンプル環境構築
* 仮想環境構築
“`
$ python3 -m venv samplevenv
$ source samplevenv/bin/activate
$ git clone https://github.com/shunsvineyard/python-sample-code.git
$ cd python-sample-code
$ python3 -m pip install -r requirements.txt
$ rm -r docs
“`

* ディレクトリ構成
“`
├── LICENSE
├── README.rst
├── requirements.txt
├── setup.py
├── tests
└── trees
├── __init__.py
├── __main__.

元記事を表示

dijkstra法備忘録

# はじめに

atcoderでよく登場するので,備忘録としてまとめました.

# ダイクストラ法(dijkstra’s algorithm)の問題と戦略

### <問題>
出発点を一つ固定して,この頂点から他のすべての頂点への最短経路を求める問題を考える.

### <戦略>
各頂点への最短路を出発点に近い(短い)ところから一つずつ確定していく
“`math
\def\set#1{\left\{{#1}\right\}}
“`
### 例
頂点集合$V=\set{A,B,C,D,E,F}$と辺の集合が$E = \set{(A,B),(A,C),(B,D),(C,E),(C,F),(E,B),(E,D)}$となる重み付きの有向グラフを考える.
> 例えば,点Aから点Bへ行くには6km歩かなければならないようなグラフになっている.
この例での移動は一方通行(有向グラフ)であるが,ダイクストラ法は対面通行(無向グラフ)でも使用できる.

![dijkstra.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

卒業制作にてAIによる手書きひらがな文字認識ソフトを作った結果、、、(随時書き足し)

# 経緯と状況
初めまして。この5月にアメリカの4年制大学をComputer Science専攻で卒業した者です。
最後の春学期に卒業制作として何か作れと言われ、その直前の冬休みに独学で学んだDeep Learningに関連したものを作ろうとこのプロジェクトに挑みました。
学校の大きさはD2なのでそこまで大きくはないですが、その分クラスの規模が小さく、教授との距離がとても近く親身になってくれる学びやすい環境でした。が、全くもってAIについての知識はなく、勿論さらに細分化されたDeep Learningなんていうものは全く理解していませんでした。
そんなこんなで始めたこのプロジェクトですが、先駆者様達の残してくれた研究結果やブログ、コード等のおかげでなんとか形にすることができました。
この記事は、レゴブロックを組み合わせて一つのものを作るように、様々な記事を読みその情報を無理くり組み合わせて完成したものとその経緯をこの後に続く方々の役に立てばと思い、参考にさせていただいた記事のリンク先も併せて綴りたいと思います。

※おそらく長くなるため、毎日少しずつ書いていきます。(毎日書くとは言って

元記事を表示

scipy.stats: 正規分布の検定(オムニバス検定) normaltest

# 正規分布の検定(オムニバス検定) `normaltest`

データは正規分布からの標本といえるか?の検定。

$H_0$:母分布は正規分布である。

$H_1$:母分布は正規分布ではない。

以下の 2 論文に基づいたオムニバス検定である。

1. D’Agostino, R. B. (1971), “An omnibus test of normality for
moderate and large sample size”, Biometrika, 58, 341-348
2. D’Agostino, R. and Pearson, E. S. (1973), “Tests for departure from
normality”, Biometrika, 60, 613-622

`normaltest(a, axis=0, nan_policy=’propagate’)`

## 1. 正規乱数について検定を行う

平均値=50,標準偏差=10 の正規乱数 25 個について検定を行う。

“`python
from sc

元記事を表示

numpy, list の append の速度の違い

# やること

`numpy` と `python list` の `append` が結構速度が違うと見たので、実際に違いを計測してみる。

https://numpy.org/doc/stable/reference/generated/numpy.append.html

https://docs.python.org/ja/3/library/stdtypes.html#sequence-types-list-tuple-range

# コード

“`python
import numpy as np
import time
import matplotlib.pyplot as plt
import pandas as pd

data_nums = np.logspace(1, 5, 5)
# [1.e+01 1.e+02 1.e+03 1.e+04 1.e+05]
data_nums = data_nums.astype(“int64”)

df = pd.DataFrame(
index=range(len(data_nums)), columns=[

元記事を表示

Pythonで一様乱数の配列を生成するときの速度比較

# やること

**一様乱数の配列を生成するための時間を比較する**

一様分布とは。

https://ja.wikipedia.org/wiki/%E4%B8%80%E6%A7%98%E5%88%86%E5%B8%83#:~:text=%E4%B8%80%E6%A7%98%E5%88%86%E5%B8%83%EF%BC%88%E3%81%84%E3%81%A1%E3%82%88%E3%81%86,%E8%B7%9D%E9%9B%A2%E3%81%AE%E5%88%86%E5%B8%83%E3%82%92%E6%8C%87%E3%81%99%E3%80%82

# 一様乱数を生成するために使用したライブラリ

– “`numpy.random.uniform“`

https://numpy.org/doc/stable/reference/random/generated/numpy.random.uniform.html

– “`numpy.random.default_rng“` (Numpy version1.17以降で推奨されているようです)

https

元記事を表示

scipy.stats: 幾何平均と調和平均 gmean, hmean

# 1. 幾何平均 `gmean`

`gmean(a, axis=0, dtype=None, weights=None)`

“`python
from scipy.stats import gmean
x = [1.2, 3.1, 4.6, 2.2, 5.7]
gmean(x)
“`

2.9263054868319522

`gmean` 関数を使わずに計算すると以下のようになる。

“`python
import numpy as np
np.exp(np.mean(np.log(x)))
“`

2.9263054868319522

“`python
np.prod(x)**(1/len(x)) # 非推奨
“`

2.9263054868319527

“`python
以下のようなテストデータ(平均値=50,標準偏差=10)で幾何平均を求めてみる。
“`

“`python
from scipy.stats import norm
z = norm.rvs(loc=50, scale=

元記事を表示

OTHERカテゴリの最新記事