Skip to main content
 首页 » 编程设计

python之在 Python 中基于地类网格求和土地面积网格

2025年05月04日17zhwl

我有两个形状相同的网格,一个是土地类别,另一个是土地面积。

例子:
地类

[[1 4 3],   
 [3 2 3],   
 [1 3 3]]   

土地面积

[[0.3 0.8 2.0],   
 [5.0 1.5 0.5],   
 [0.1 1.0 3.2]]   

我需要根据土地等级来总结土地面积,打印这样的东西会很愉快:

1 0.4   
2 1.5   
3 11.7   
4 0.8 

我导入的唯一模块是 numpy,如果可能我想避免导入其他模块。有什么建议吗?

请您参考如下方法:

您可以进行如下操作:

import numpy as np 
 
lc=np.array([[1, 4, 3], 
            [3, 2, 3], 
            [1, 3, 3]]) 
 
la=np.array([[0.3, 0.8, 2.0], 
            [5.0, 1.5, 0.5], 
            [0.1, 1.0 ,3.2]]) 
 
 
 
calc_areas = [] 
 
for v in np.unique(lc): 
    print(v, np.sum(la[lc==v])) 
    calc_areas.append([v, np.sum(la[lc==v])]) 
 
 
calc_areas.sort(key=lambda v: v[1], reverse=True) 
print("Max area", calc_areas[0])    

给予:

1 0.4 
2 1.5 
3 11.7 
4 0.8 
 
('Max area', [3, 11.699999999999999])