引言

本文针对:
【语义分割】评价指标:PA、CPA、MPA、IoU、MIoU详细总结和代码实现(零基础从入门到精通系列!)中实现评价指标代码里相关函数进行补充说明,包括:np.sum()、np.nansun()、np.nanmean()、np.diag()、np.bincount()

np.sum()

numpy中sum函数常用参数:
sum(a, axis=None...)

  • a:要进行加法运算的向量、数组、矩阵
  • axis:默认为None,可取值为整数
    • axis = None,将a中所有元素全部加起来,求得一个和
    • axis = 0,对a中列求和,压缩行
    • axis = 1,对a中行求和,压缩列
    • 总结:列和压缩行,行和压缩列

例子:

>>> np.sum([0.5, 1.5])
2.0>>> np.sum([[1, 3], [5, 6]])  # axis = None
15>>> np.sum([[1, 3], [5, 6]], axis = 0)  # axis = 0
array([6, 9])>>> np.sum([[1, 3], [5, 6]], axis = 1)  # axis = 1
array([ 4, 11])

在上述例子中:

  • 当axis = 0,压缩行,即:将每一列的元素相加,再将矩阵压缩为一行
  • 当axis = 1,压缩列,即:将每一行的元素相加,再将矩阵压缩为一列(为方便理解,将此处说为一列,实际上,在控制台的输出中,仍然是以一行的形式输出)

计算如下图所示:

np.nansum()、np.nanmean()

Q:NaN是什么?
A:Not a Number(NaN),代表一个“不是数字”的值,这个指不能直接进行运算,但它却是一个Number类型!
参考链接:
NaN 是什么?它的类型是什么?如何可靠地测试一个值是否等于 NaN ?)

在一个numpy数组求和、均值时,如果这个数组里包含了nan,则程序会报错或者求出来的值是nan,如下代码所示:

>>> arr = np.array([1, 2, 3, 4, np.nan])
>>> arr.sum()
nan
>>> arr.mean()
nan

如何在求和、均值时忽略nan?
使用:np.nansum()、np.nanmean()

>>> arr = np.array([1, 2, 3, 4, np.nan])>>> arr.sum()
nan
>>> arr.mean()
nan>>> np.nansum(arr) # np.nansum()中:nan取值为 0
10.0
>>> np.nanmean(arr) # np.nanmean()中:nan取值为0且取均值时忽略它,如:(1 + 2 + 3 + 4) / 4 = 2.5,而不是(1 + 2 + 3 + 4 + 0) / 5 = 2
2.5
>>>

np.diag()

可用于处理:数组、矩阵等
np.diag(arr)

  • 当arr是一维数组时,结果是以一维数组组成对角线元素的矩阵
  • 当arr是二维矩阵时,结果是二维矩阵的对角线元素
>>> arr1 = np.arange(1, 4)
>>> arr2 = np.arange(1, 10).reshape(3, 3)>>> arr1
array([1, 2, 3])>>> arr2
array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])>>> np.diag(arr1)
array([[1, 0, 0],[0, 2, 0],[0, 0, 3]])>>> np.diag(arr2)
array([1, 5, 9])

np.bincount()

参考:numpy.bincount详解

Python 中 (&,|)和(and,or)之间的区别

参考:Python 中 (&,|)和(and,or)之间的区别

参考

  1. numpy.sum()的使用
  2. numpy.ndarray 在求mean,max,min的时候如何忽略跳过nan值,使用np.nanmean, np.nanmax
  3. NaN 是什么?它的类型是什么?如何可靠地测试一个值是否等于 NaN ?
  4. Python NumPy中的diag函数
  5. numpy.bincount详解
  6. Python 中 (&,|)和(and,or)之间的区别

【语义分割】评价指标代码函数:np.sum()、np.nansum()、np.nanmean()、np.diag()、np.bincount()相关推荐

  1. 憨批的语义分割重制版2——语义分割评价指标mIOU的计算

    憨批的语义分割重制版2--语义分割评价指标mIOU的计算 注意事项 学习前言 什么是mIOU mIOU的计算 1.计算混淆矩阵: 2.计算IOU: 3.计算mIOU: 计算miou 注意事项 这是针对 ...

  2. 语义分割 调色板代码

    语义分割调色板代码 下面代码的主要作用:根据你的类别数量,生成相同数量的颜色. 比如你有21个类别(voc是20个class和1个background),就可生成相应21个不同的颜色. def mak ...

  3. 语义分割 评价指标(global_acc, mean_acc, mean_iou)等numpy实现

    语义分割常见评价指标global_acc, mean_acc, mean_iou计算,个人学习记录,仅供参考. 一.理论计算 假设真实标签为: 预测标签为: 则手动列出混淆矩阵可得: 1.1 全局准确 ...

  4. 语义分割评价指标mIOU

    mIOU定义 Mean Intersection over Union(MIoU,均交并比),为语义分割的标准度量.其计算两个集合的交集和并集之比,在语义分割问题中,这两个集合为真实值(ground ...

  5. 语义分割MIoU代码解析

    1. MIoU 源码解析TensorFlow 和 PyTorch 源码解析 2.[语义分割]语义分割评估指标mIOU 3. 语义分割代码阅读-评价指标mIoU的计算 4. 深度学习计算机视觉图像分割领 ...

  6. 85.4% mIOU!NVIDIA:使用多尺度注意力进行语义分割,代码已开源!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 下载论文PDF和源代码: 链接:https://pan.baidu ...

  7. 详解语义分割评价指标

    本文主要介绍语义分割的三大评价指标,分别是执行时间.内存占用以及准确度,本文着重介绍准确度. 一.执行时间 二.内存占用 三.准确度 假设一共有k+1类(包括k个目标类和1个背景类): 1.Pixel ...

  8. python 图像语义分割mIOU代码详解

    mIOU公式在此不赘述. 1.fast_hist(label.flatten(), pred.flatten(), num_classes) 2.生成关于像素的混淆矩阵 k = (a >= 0) ...

  9. 【语义分割】评价指标:PA、CPA、MPA、IoU、MIoU详细总结和代码实现(零基础从入门到精通系列!)

    文章目录 引言 1 混淆矩阵 2 语义分割 PA:像素准确率 CPA:类别像素准确率 MPA:类别平均像素准确率 IoU:交并比 MIoU:平均交并比 3 综合实例 步骤一:输入真实.预测图片 步骤二 ...

最新文章

  1. 在CSDN中增加图片版权保护的方法
  2. NeHe教程Qt实现——lesson12
  3. NPashaP的二分图源码部分
  4. js正则相关知识点专题
  5. spring(4)面向切面的Spring(AOP)
  6. python选择排序从大到小_Python实现选择排序
  7. SQL Server 空间监测
  8. 通过PO接口表导入PO数据
  9. java中遍历Map几种方法
  10. (转)马云:不要迷信成功学 要多看别人的失败经历
  11. .NET编译工具(每日构建或自动化编译)
  12. Python 一键提取PDF版论文表格数据
  13. cad 打开硬件加速卡_如何提高CAD运行速度
  14. python词云图输出(附代码)
  15. Android 最新所有框架
  16. 如何高效的完成每日的任务?
  17. java springboot智慧农业分销平台商用
  18. Liteos-A任务调度之任务上下文切换
  19. Linux 文本 sed 命令 碱基对 替换
  20. 比情商智商重要的是财商——财商!

热门文章

  1. 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(2)
  2. [CF808B] Average Sleep Time([强行]树状数组,数学)
  3. 模拟虚拟的文件系统initrd/initramfs
  4. DDD-Mapper
  5. 2008江西高考0分作文
  6. 【Java从0到架构师】MyBatis - dao
  7. hibernate入门学习(更新中)
  8. 那年学过的Quartz框架笔记
  9. 一年了,写点关于人生的东西吧
  10. [转][Python小记] 通俗的理解闭包 闭包能帮我们做什么?