所以我有两个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)
感谢您阅读本文。 任何帮助都感激不尽。
答案 0 :(得分:0)
您的行temp[temp > T_25] = np.nan
几乎是正确的。您只需将要索引的数组更改为ndvi
:
ndvi[temp > T_25] = np.nan
应该做你想做的事。
您还可以将T_25
的计算结果折叠到同一行中(假设T_25
是temp
中值的25%),如下所示:
ndvi[temp > np.percentile(temp, 25)] = np.nan