6

2 つの 1D 配列があり、1 つは測定データ用、もう 1 つは位置用です。たとえば、測定データは温度であり、他の配列は測定の高さである可能性があります。

temp = np.asarray([10, 9.6, 9.3, ..., -20.3, -21.0])  # Temperature in celsius
height = np.asarray([129, 145, 167, ..., 5043, 5112]) # Height in meters

ご覧のとおり、測定値の高さは等間隔ではありません。

等間隔の高さ間隔で平均気温を計算したいと思います。これはある種の移動平均ですが、関心のある区間内のデータ ポイントが常に同じであるとは限らないため、ウィンドウ サイズは可変です。

これは、次の方法で for ループを使用して実行できます。

regular_heights = np.arange(0, 6000, 100) # Regular heights every 100m
regular_temps = []

for i in range(len(regular_heights)-1):
    mask = np.logical_and(height > regular_heights[i], height < regular_heights[i+1])
    mean = np.mean(temp[mask])
    regular_temps.append(mean)

regular_temps = np.hstack((regular_temps))

私はこのアプローチがあまり好きではなく、もっと「派手なスタイル」のソリューションがあるかどうか疑問に思っていました。

4

1 に答える 1