簡體   English   中英

二維數組的漸變

[英]Numpy gradient of 2D array

我有一個2D數組,它是一個正弦圖形,我想繪制該函數的x和y梯度。

在以前的一些函數中,我有一個稱為“ image_data”的2D數組,例如:

def get_image(params):
    # do some maths on params
    return(image)

params = (a, b, c)
image_data = get_image(params)

然后,我在圖像上使用numpy.gradient來獲取漸變:

gradients = numpy.gradient(image_data)
x_grad = gradients[0]
y_grad = gradients[1]

繪制這三個圖看起來像:

梯度

但我不確定是否正確。 由於此圖案並非處於45度,因此我希望x和y梯度會有所不同。

在我看來, x_gradient[i][j]應該是image_data[i][j]相對於任一側索引的梯度,而y_gradient[i][j]應該是相對於上方和右側索引的梯度。下面。

由於圖案略微傾斜,因此您可以在image_data中看到函數的梯度以不同的速率變化。

我是在誤解我的數據還是不理解numpy.gradient輸出?

謝謝!

我不確定您為什么認為漸變應該不同。 但是給定函數的漸變形狀應具有相同的形狀,但層次不同。 讓我們分析一下:

偏導數

因此,您可以看到它們具有相同的形狀。 添加顏色級別,您將看到差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM