簡體   English   中英

在 Python 中插值/下采樣二維數組

[英]interpolate / downsample 2D array in Python

我有 2 個不同尺寸的獨立 arrays:

len(range_data) = 4320
len(az1) = 385
len(az2) = 347

data1.shape = (385,4320)
data2.shape = (347,4320)

我希望data2的尺寸等於data1的尺寸,這樣data2.shape應該是(385,4320)。 我嘗試過 scipy 插值,例如:

f = interpolate.interp2d(az1,range_data,data1,kind='cubic')
znew = f(az2,range_data)

print(znew.shape)
(347,4320)

znew.shape 應該是(385,4320),任何想法為什么會發生這種情況和/或可能需要做些什么來解決這個問題?

我不認為interp2d實際上會為您生成更多點,它在網格上定義了插值 function。 這意味着您創建的是一種在由您的第一組數據點定義的網格內插入點的方法。 znew將返回一個插值網格,其值與傳遞給它的xy相同。

請參閱源代碼

Returns
        -------
        z : 2-D array with shape (len(y), len(x))
            The interpolated values.

如果您想添加額外的數據點,我建議您在第二個數據集上推導出回歸 function(或任何您想要的 ML 技術,如果您願意,可以使用 NN)並使用該 function 來生成您需要的額外 38 個數據點。

暫無
暫無

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

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