\

Pythonでランダムな座標データを生成する方法をご紹介します。前提として、今回ご紹介する方法は「numpy」という数値計算を得意とするライブラリを使います。

使う構文

構文①:numpy.random.RandomState

rng = np.random.RandomState(seed)

この構文は擬似乱数を生成するためのRandomstateインスタンスを生成します。引数seedを与える事で、ランダム状態を保持して、毎回一貫して同じ値を取得する事ができます(≒疑似乱数ジェネレーター=random number generatorの初期化処理)。

構文②:numpy.random.RandomState.randn

x1 = rng.randn(d0,d1,…,dn)

この構文は標準正規分布(standard normal distribution)から、1つ以上のランダムデータのサンプルを返す。

サンプルプログラム

以下に2次元と3次元の例をご紹介します。

2次元の例

import numpy as np

def main():
    rng = np.random.RandomState(123)
    x1 = rng.randn(5,2)
    print(x1)

if __name__ == "__main__":
    main()

3次元の例

import numpy as np

def main():
    rng = np.random.RandomState(123)
    x1 = rng.randn(10,2,2)
    print(x1)

if __name__ == "__main__":
    main()

これらのコードは固定しているので、何回実行しても同じランダム座標の組合せになります。

補足:データの座標を全体的にシフトしたい場合

次のような形でnp.array ( [N,N])を加算する事で、各データを (N,N)だけシフトできます。

“`python
import numpy as np

def main():
rng = np.random.RandomState(123)
x1 = rng.randn(10,2) + np.array([5,5])
print(x1)

if name == “main“:
main()
“`.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です