Up

CentOS Stream 9における簡単なPythonスクリプト例

PyStan 3OpenCVPyGame

 

CentOS Stream 9において、PyStan 3OpenCVPyGameの簡単なスクリプトを試みてみた。CentOS Stream 9Anacondaをインストールして、AnacondaPython 3.11仮想環境を構築した。以下のプログラムの実行は、このPython 3.11仮想環境におけるものである。Anacondaのインストールについては、このウェブサイトで説明している。

以下、順番に報告する。

 

 

PyStan 3

 

PyStan 3PythonStan)は、コマンド

 

pip install pystan

 

によりインストールできる。

インストールしたPyStan 3の使用例として、リスト1のスクリプトを用意した。

 

 

リスト1 PyStan 3の使用例

 

import stan

import arviz as az

import matplotlib.pyplot as plt

 

stan_code = """

        data {

                int n;

                int k;

        }

        parameters {

                real<lower=0, upper=1> p;

        }

        model {

                k ~ binomial(n, p);

        }

"""

 

sm = stan.build(stan_code, data = {'n':10, 'k':7})

fit = sm.sample()

i_fit = az.from_pystan(fit, posterior_model=sm)

az.plot_trace(i_fit)

plt.tight_layout()

plt.show()

print('\nSummary...')

print(az.summary(i_fit))

 

 

リスト1のスクリプトを実行すると、Stanスクリプトが実行され、MCMCサンプリングのトレース図が、図1のように表示される。

図1

 

PyStanについては、岡本安晴いまさら聞けないPythonデータ分析で説明しているが、バージョンはPyStan 2である。PyStan 3PyStan 2の違いは、このウェブサイトなどで説明している。

PyStan 2は、AnacondaPython 3.8仮想環境において、コマンド

 

conda install pystan

 

により、インストールできる。

 

次のスクリプト

 

import pystan

import arviz

import matplotlib.pyplot as plt

 

bin_model = """

        data {

                int N;

                int k;

        }

        parameters {

                real<lower=0, upper=1> p;

        }

        model {

                k ~ binomial(N, p);

        }

"""

sm = pystan.StanModel(model_code=bin_model)

fit = sm.sampling(data={'N':10, 'k':7})

print(fit)

arviz.plot_trace(fit)

plt.show()

 

を実行すると、次図のトレース図が表示される。

 

 

 

OpenCV

 

OpenCVは、コマンド

 

conda install opencv

 

の実行でインストールできる。OpenCVの使用例をリスト2のように用意した。

 

 

リスト2 OpenCVの使用例

 

import cv2

import matplotlib.pyplot as plt

import numpy as np

 

img = np.full((500, 800, 3), 255, dtype=np.uint8)

cv2.rectangle(img, (100, 200), (700, 300), (0,0,0), 5)

cv2.circle(img, (400, 250), 200, (0,0,0), 5)

plt.imshow(img)

plt.show()

 

 

リスト2のスクリプトを実行すると、図2のように描画図形が表示される。

図2

 

 

 

PyGame

 

PyGameは、コマンド

 

pip install pygame

 

によりインストールできる。

PyGameの使用例を、リスト3のように用意した。

 

リスト3 PyGameの使用例

 

import pygame as pg

import sys

import math

 

pg.init()

screen = pg.display.set_mode((800,800))

screen.fill((0,0,0))

pg.display.flip()

 

ck = 0

dg = 0

clr = (255,0,0)

while True:

        px = 150 * math.sin(dg)

        rect = pg.Rect((400 - px, 200), (2*px,300))

        screen.fill((0,0,0))

        pg.draw.ellipse(screen, clr, rect, 0)

        pg.display.flip()

        t0 = pg.time.get_ticks()

               

        dg += 0.1

        if dg > math.pi:

                dg =0

                if ck == 0:

                        clr = (0,255,0)

                        ck = 1

                else:

                        ck = 0

                        clr = (255,0,0)

        while True:

                for e in pg.event.get():

                        if e.type == pg.QUIT:

                                pg.quit()

                                sys.exit()

                if pg.time.get_ticks() > t0 + 100:

                        break

 

 

リスト3のスクリプトを実行すると、図3のように円盤が表示される。この円盤は回転する。

図3

 

 

Home