我對屏蔽陣列和衛星資料很陌生。我試圖弄清楚如何計算一個 masked_array 中介于一個區間之間的元素數量,例如 40 到 80。這就是我所擁有的:
這是我的名為“網格”的掩碼陣列的摘要。
masked_array(
data=[[[120, 120, 120, ..., 200, 200, 200],
[120, 120, 120, ..., 200, 200, 200],
[120, 120, 120, ..., 200, 200, 200],
...,
[120, 120, 120, ..., 200, 200, 200],
[120, 120, 120, ..., 200, 200, 200],
[120, 120, 120, ..., 200, 200, 200]]],
mask=False,
fill_value=999999,
dtype=uint8)
我想計算 masked_array 中介于 40 到 80 之間的元素的百分比。我試過了。
masked = ma.masked_where((grid >= 40) & (grid <= 80), grid)
green_ratio = masked.count()/grid.count()
但這會回傳 1,鑒于我看到有大于 120 的值,這不太可能。
關于如何做到這一點的任何想法?
uj5u.com熱心網友回復:
masked.count()仍然為您提供未過濾的總數量,當然等于grid.count().
由于masked.mask是一個布爾陣列,因此您可以masked.mask.sum()/grid.count()將比率限制為滿足您條件的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/449432.html
上一篇:自定義ListviewsetonItemClickListner在DialogFragment中使用kotlin中的Viewbinding不起作用
