NumpyのMeshgrid関数

Page content

numpy.meshgridは以下のようにNumpy配列を生成します。

png

画像などの座標位置とか3次元グラフのX,Y軸の座標とかのIndexに使われるmeshgridを生成する。 つまり(0,0),(0,1)….(1,0),(1,1)….のようなデータを作るのにも使われます。

一つの例 $Z = X * np.exp(-X^2-Y^2) -1$ を通して、meshgridのイメージをつかむ。

import numpy as np

x = np.mgrid[-2:2:0.2] # [-2, -1.8, -1.6, ... , 1.6, 1.8]
y = np.mgrid[-2:2:0.2]
X, Y = np.meshgrid(x, y)
Z =  X * np.exp(-X**2-Y**2) -1

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
fig = plt.figure(figsize=(20,15))

ax = fig.gca(projection='3d')
plt.xlabel('X')
plt.ylabel("Y")
#surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,linewidth=0.1, antialiased=False)
surf = ax.plot_surface(X, Y, Z, cmap=cm.jet)
plt.show()

png

About Wang Zhijun
機械学習好きなプログラマー