numpy中的histogram到底干啥的

这个东西最近做深度学习复现总是遇到,记一下。

1 histogram(a,bins=10,range=None,weights=None,density=False);
2 # a是待统计数据的数组;
3 # bins指定统计的区间个数;
4 # range是一个长度为2的元组,表示统计范围的最小值和最大值,默认值None,表示范围由数据的范围决定
5 # weights为数组的每个元素指定了权值,histogram()会对区间中数组所对应的权值进行求和
6 # density为True时,返回每个区间的概率密度;为False,返回每个区间中元素的个数

看一眼应用吧,最近发现Pointnet里面用了两次这段代码,注释写在注释里面了。

        labelweights = np.zeros(13)
        for seg in self.semantic_labels_list:
            tmp, _ = np.histogram(seg, range(14)) # tmp返回的是所有种类出现的频率,而_记录了边界
            self.scene_points_num.append(seg.shape[0])
            labelweights += tmp
        labelweights = labelweights.astype(np.float32)
        labelweights = labelweights / np.sum(labelweights) # 将每一种类别出现的频率统计了出来,且和为1
        self.labelweights = np.power(np.amax(labelweights) / labelweights, 1 / 3.0) # 列数*最大值/3

 

posted @ 2022-04-12 19:46  爱和九九  阅读(384)  评论(0编辑  收藏  举报