zoukankan      html  css  js  c++  java
  • 利用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灾害的信息量

  • 相关阅读:
    时间计算
    DateTime
    C# trim split dataGrid
    something
    生活
    如何导入外部的源码到eclipse中
    java类中获取ServletContext的方法
    获取spring容器上下文(webApplicationContext)的几种方法
    java反射(转)
    mysql常见命令
  • 原文地址:https://www.cnblogs.com/lqqgis/p/12801009.html
Copyright © 2011-2022 走看看