利用numpy 计算信息量

在双评价的灾害评价中,需要计算信息量,下面是基于numpy和模拟数据,信息量计算过程。
两个矩阵 ab,每个矩阵中,矩阵中的0相当与空值(不参与计算)。
矩阵b表示空间地貌类型(b矩阵的值表示一个地貌类型),矩阵a表示某一灾害的空间分布(a矩阵中的值本身并不关注,关心的是a有值元素的数量)

1. 首先,计算ab空间范围的比例,即需要计算b区域中,存在a的比例(像元数量比)
通过numpy.sum( b!= 0)b[numpy.where(b!=0)].size,可以获取ba的非空像元数量

计算ab空间范围的比例

2. 计算b中每一个地貌类型的a灾害的比例,从而计算信息量
通过numpy.unique(b[numpy.where(b !=0)]),获取b中所有地貌类型

先通过循环,计算b中每一种地貌类型,存在a灾害的比例,并打印出来

在上面的基础上,修改代码,实现计算每种地貌类型的a灾害的信息量

3. b中每个地貌类型的a灾害信息量赋值
修改上面的代码,实现b中的每一个地貌类型的值为对应的a灾害的信息量

猜你喜欢

转载自www.cnblogs.com/lqqgis/p/12801009.html