numpy meshgridの基本的に使い方と解説
numpy のmeshgridの基本的な使い方を解説します。
meshgrid を用いることで、1次元配列から格子状の座標を簡単に作成することができます。
まぁ例を見たほうが理解しやすいと思うのでサンプルコードをお見せします。
ちなみに、これ以降のコードはnumpyとmatplotlibをimportしていることが前提となります。
import numpy as np import matplotlib.pyplot as plt
2つの配列(x=[0, 3, 6], y=[0, 3, 6])をmethgridに与えた時の結果は以下のようになります。
In [2]: x = [0,3,6] In [3]: y = [0,3,6] In [4]: X,Y = np.meshgrid(x,y) In [5]: X Out[5]: array([[0, 3, 6], [0, 3, 6], [0, 3, 6]]) In [6]: Y Out[6]: array([[0, 0, 0], [3, 3, 3], [6, 6, 6]])
meshgridによって座標を作成できています。
(例えば(X[0], Y[0])=(0, 0))
簡単に図で説明してみるとXは以下のような配列を生成していることがわかります。
Yに関しても同様です。
このX, Yを用いることで以下のような図を簡単に作成することができます。
In [7]: fig, ax = plt.subplots() In [8]: ax.scatter(X, Y) Out[8]: <matplotlib.collections.PathCollection at 0x7ffb74677e10>
ついでにアノテーションも着けたバージョンも
In [9] : for x1 in x: ...: for y1 in y: ...: ax.annotate("({}, {})".format(x1, y1),(x1, y1))
参考文献
[https://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html:title]
コメント