(数学)関数の勾配が何であるかを知っているので、numpy.gradient
します。しかし、私はしません。 documentation はあまり役に立ちません:
N次元配列の勾配を返します。
配列の勾配は何ですか?時である numpy.gradient
役に立つ?
また、ドキュメント内1:
>>> y = np.array([1, 2, 4, 7, 11, 16], dtype=np.float)
>>> j = np.gradient(y)
>>> j
array([ 1. , 1.5, 2.5, 3.5, 4.5, 5. ])
y
の変更)/(x
の変更)として定義されます。ここで、x
はインデックスであるため、隣接する値の差は1です。
境界で、最初の差が計算されます。これは、配列の各端で与えられる勾配が単純に、最後の2つの値の差(1で除算される)であることを意味します
したがって、上記のy
の勾配は次のように計算されます。
j[0] = (y[1]-y[0])/1 = (2-1)/1 = 1
j[1] = (y[2]-y[0])/2 = (4-1)/2 = 1.5
j[2] = (y[3]-y[1])/2 = (7-2)/2 = 2.5
j[3] = (y[4]-y[2])/2 = (11-4)/2 = 3.5
j[4] = (y[5]-y[3])/2 = (16-7)/2 = 4.5
j[5] = (y[5]-y[4])/1 = (16-11)/1 = 5
たとえば、結果の配列内のすべての絶対値の最小値を見つけて、曲線の転換点を見つけることができます。
1配列は、ドキュメントの例では実際にx
と呼ばれていますが、混乱を避けるためにy
に変更しました。
N次元配列を行列と考えてください。そして、勾配は行列微分
適切な説明については、MATLABドキュメントの gradient の説明を参照してください。