Python関連のことを調べてみた2022年01月28日

Python関連のことを調べてみた2022年01月28日

[py2rb] type クラスの動的定義

# はじめに
移植やってます。
( from python 3.7 to ruby 2.7 )
# type (Python)
“`python
@classmethod
def _make_chain(cls, sequence_maker):
if isinstance(sequence_maker, type):
tp = type(‘%sChain’ % sequence_maker.__class__.__name__, (cls,), {
‘sequence_maker’: sequence_maker
})
else:
tp = type(‘FunctionChain’, (cls,), {
‘sequence_maker’: staticmethod(sequence_maker)
})
return tp
“`
https://www.shoe

元記事を表示

[py2rb] itertools.islice

# はじめに
移植やってます。
( from python 3.7 to ruby 2.7 )
# islice (Python)
“`python
def _get_by_slice(self, slc):
self.reset()
value = list(islice(self, slc.start, slc.stop, slc.step))
return value
“`
https://qiita.com/shihono/items/1613f7c6c1b096256bd3

分かりやすい記事。
# どうする (Ruby)
“`ruby
def islice(iterable, *args)
start = args[0] || 0
stop = args[1] || Float::INFINITY
step = args[2] || 1
cnt = 0
if iterable.is_a?(String)
it = iterable.split(”).to_enum
else

元記事を表示

2022年からの新しいとりくみ

備忘録を兼ねて日々のプログラミング生活で行ったことの概要メモを作ることにしました。
すでに多少の公開メンタリティも身につけたので、特に始めることへの躊躇のカベはなかったです。

プログラミングをすることが日常になってしまっているのですが、たまに自分のコード体系に質的な大転換があったりして、それはそれで脳内革命というか机上革命という内的激動があったりするのですが、いかんせん人間とは忘れる生物であり、あの時の変化がいつあったのかを遡及できなくなったりします。

また、プログラムとしては、秒単位までは言わなくても日単位でいつの時点で思いついたものかという遡及がしたくなります。日単位により、自分のプログラミングの変化の履歴の時間感覚が身につき、意外と時間感覚がプログラミング・スキルにとって重要だったりします(あまり、経験という肉感的言葉は重視はするものの強調しすぎたくない気持ちがあります)。

どちらかというと人間が意味(Sinn)として理解できる質レベルでの記録が便宜にかなうと思ったので、日記形式となりえるQiitaを選択しました。日本在住であれば、このサイトが一番ではないかとも思いました。

元記事を表示

WordleをPythonに解かせる

## Wordleとは
URL:https://www.powerlanguage.co.uk/wordle/

Wordleは2021年末に公開された,巷で話題の英単語推測ゲームです.お題となる5文字の英単語が存在し,それを合計6回の試行で特定します.

回答者は一度英単語を入力すると,その単語とお題の単語のどの文字が一致しているかを知ることができ,文字も場所も一致している場合は,文字は合っているが場所が一致していない場合は,文字も場所もあっていない場合はで表示されます.

1日1題出題だけされ,なかなか楽しいゲームなのですが,やっぱりコンピュータにも解かせてみたいですよね.ということでWordleをPythonに解かせてみました.

## 5文字の英単語リストを取得する
まず,Wordleのお題になる条件である”5文字の英単語”のリストを作成する必要があります.

元記事を表示

Streamlitで作ったWebアプリをコンテナ化してデプロイ(Windows10、Python3.9、Azure Container Registry)

# はじめに
最寄りのバス停にバスがあと何分で着くかだけを表示するもの作ったんですけど、

元記事を表示

カーネルリッジ回帰をnumpyで実装

# カーネルリッジ回帰をnumpyのみで実装

##必要ライブラリのインポート
“`python:kernelRidgePredict.py
import numpy as np
np.random.seed(1)
import matplotlib.pyplot as plt
from itertools import product
“`

##サンプルデータの生成
sin関数+1次関数に、正規分布のノイズを加える。

“`python:kernelRidgePredict.py
# データセット
def function(x):
y = 0.2*np.sin(x) + 0.1*x
return y

# データを生成
n_sample = 40
X = np.random.uniform(-2*np.pi, 2*np.pi, n_sample)
Y = function(X) + np.random.normal(loc=0, scale=0.05, size=n_sample)

# 推定したいXの値
X_pred = np.linspace(-2*np.

元記事を表示

Pythonで理解する計数抜取検査

#0. はじめに
抜取検査の統計的な意味を理解する上で確率分布の理解は欠かせません。品質管理の本にのってる計数値に関する確率分布を見ることで統計的な意味の理解はできますが、身近な検査事例について自分で確率分布を書きアウトプットしながら理解することはより効果的です。ただ、手書きで確率分布を描くことは大変ですしエクセルであっても少し面倒です。
Pythonの統計関数モジュールscipy.statsは簡単に確率分布を描画できるため、グラフをかく煩わしさがなく効率的に検査の意味を理解できます。この記事では、Python統計関数モジュールscipy.statsを使ったわかりやすい計数抜取検査の解説を目指します。

#1. 抜取検査と二項分布

抜取検査は、保証すべき単位(母集団)から一定数のサンプル(標本)だけを抜き取り検査することです。検査結果に対してある判断基準で合格・不合格を決めるわけですが、全数検査ではないため同じ品質レベルであっても、サンプルによって合格になったり不合格になったりします。
統計を使えば、ある不良率の時にどのくらいの確率で合格になるのか、どれくらいのサンプル数が適切なのか

元記事を表示

streamlit_timelineを使って、streamlitで年表を作ってみた

# はじめに

Pythonの簡易Webアプリ作成ツールのstreamlitに、Timeline.jsと呼ばれる年表を作るJavaScriptのライブラリを組み込んだ、streamlit-timelineというライブラリがあります。

https://timeline.knightlab.com/

https://pypi.org/project/streamlit-timeline/

このTimelineの使い方を簡単に説明します。

# インストール
streamlitをまだインストールしていない場合

“`bash
pip install streamlit
“`

steamlit_timlineをインストール

“`bash
pip install streamlit_timeline
“`

# タイムラインの作り方
“`python

# Streamlit Timeline Component Example

import streamlit as st
from streamlit_timeline import timeline

# use fu

元記事を表示

PyMC3用の環境構築

# はじめに
PyMC2系を利用するための環境は特に苦労なく構築できるのですが、PyMC3系の環境はすんなりいかなかったので備忘録的に残しておきます。

# 環境
| 項目名 | バージョン |
| — | — |
| Linux ディストリビューション | Ubuntu 20.04.3 LTS |
| Python | 3.9.7 |
| PyMC3 | 3.11.4 |

Python は pyenv で管理されていることを前提とします。

# 構築手順
## Python のインストール
theano からの要請で、共有ライブラリ libpythonX.Y.a (X.Y は Python のバージョン) が位置独立コードでなければならないため、コンパイルオプション **-fPIC** を指定してビルドします。

“`bash
CFLAGS=”-fPIC” pyenv install 3.9.7
“`

pip を最新版にアップグレードしておきます。

“`bash
pip install –upgrade pip
“`

## PyMC3 のインストール

元記事を表示

Windows10でpythonを用いた仮想環境の構築方法

## 仮想環境作成
“`
python -m venv [name]
“`
## 仮想環境立ち上げ
### ・Windows
“`
.[name]\Scripts\Activate
“`
### ・Linux
“`
source .[name]/bin/activate
“`
## 仮想環境から抜ける
“`
deactivate
“`
## 仮想環境を削除
### ・Windows
“`
rmdir /s [name]
“`
### ・Linux
“`
rm -s [name]
“`

## ライブラリエクスポート
“`
pip freeze > requirements.txt
“`

## ライブラリインポート
“`
pip install -r requirements.txt
“`
## 動画で確認する