0

所以我有两个 ndarray 一个包含 ndvi 值,另一个包含温度

条件是,对于所有温度高于所有温度 25% 的像素,其像素的 ndvi 值必须更改为 np.nan。

所以我目前使用的是:temp[temp > T_25]=np.nan(它只将temp设置为nan)我只需要在上面查找索引并应用于ndvi?

我试图将其展平并使用 np.where(temp[temp > T_25]) 但它似乎只是给了我一个空数组。

变平前改变 75% 后的温度是什么样的:

[[      nan       nan       nan ...       nan       nan       nan]
 [      nan       nan 229.3249  ...       nan       nan       nan]
 [229.35771 229.32663 229.28688 ...       nan       nan       nan]
 ...
 [229.09474 229.14499 229.17618 ...       nan       nan       nan]
 [229.1779  229.27306 229.27135 ...       nan       nan       nan]
 [229.30244       nan 229.33873 ...       nan       nan       nan]]

假设我希望那些 nan 处于 ndvi ... 形状是 (600,400)

感谢您阅读本文。任何帮助都感激不尽。

4

1 回答 1

0

你的线temp[temp > T_25] = np.nan几乎是正确的。您只需将要索引的数组更改为ndvi

ndvi[temp > T_25] = np.nan

应该做你想做的。

您还可以将 的计算折叠T_25到同一行(假设它T_25是 中值的第 25 个百分位temp),如下所示:

ndvi[temp > np.percentile(temp, 25)] = np.nan
于 2018-12-13T03:30:12.123 回答