[NumPyの使い方] 12. ランダムポイントの選択

NumPy
スポンサーリンク

ファンシーインデックスによるランダムポイントの選択

2次元正規分布に従う乱数の生成

x= np.random.multivariate_normal(mean, cov, 200)で、平均値をmean,分散共分散行列をcovとする、2次元正規分布に従う乱数を200個生成する。

生成したデータの表示

でできる図。

ランダムポイントのインデックスの生成

np.random.choice(x.shape[0],30, replace=False)でランダムな要素を選択できる。

なので、indiesはnp.random.choice(np.arange(200),30, replace=False)と同じ意味となり、0〜199の要素をもつ配列から、重複(replace)なしで、30個選択することになる。

ファンシーインデックスによるランダムポイントの選択

x[indies]とすることで、xの1,2列目のindiesと適合するインデックスにおける要素が抽出される。

ランダムに選択したポイントの表示

ax.plot(selection[:,0],selection[:,1],’go’,markersize=12,alpha=0.5,zorder=1) markersize=12とすることで、ランダムに選択したポイントのマーカーをおおきくして、zorderをマゼンタ丸よりも小さくすることで背面に表示している。

参考

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

Python(NumPy)による多次元正規乱数の生成 | 有意に無意味な話
Pythonの標準モジュールでも正規乱数の生成はサポートされていますが、「多次元正規分布が生成できない」、「正規乱数をまとめて生成できない」など本格的に使うには少し機能が不足しています。ここではNumPyで提供されているnumpy.randomモジュールを使った1次元/多次元正規乱数生成を紹介します。
numpy.random.choice — NumPy v1.15 Manual
matplotlibの表示順に関する設定 - Qiita
#grid gridが最前面にきて、plotに覆いかぶさることがたまにあります。 !(

コメント