【语义分割】评价指标代码函数:np.sum()、np.nansum()、np.nanmean()、np.diag()、np.bincount()
引言
本文针对:
【语义分割】评价指标: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)之间的区别
参考
- numpy.sum()的使用
- numpy.ndarray 在求mean,max,min的时候如何忽略跳过nan值,使用np.nanmean, np.nanmax
- NaN 是什么?它的类型是什么?如何可靠地测试一个值是否等于 NaN ?
- Python NumPy中的diag函数
- numpy.bincount详解
- Python 中 (&,|)和(and,or)之间的区别
【语义分割】评价指标代码函数:np.sum()、np.nansum()、np.nanmean()、np.diag()、np.bincount()相关推荐
- 憨批的语义分割重制版2——语义分割评价指标mIOU的计算
憨批的语义分割重制版2--语义分割评价指标mIOU的计算 注意事项 学习前言 什么是mIOU mIOU的计算 1.计算混淆矩阵: 2.计算IOU: 3.计算mIOU: 计算miou 注意事项 这是针对 ...
- 语义分割 调色板代码
语义分割调色板代码 下面代码的主要作用:根据你的类别数量,生成相同数量的颜色. 比如你有21个类别(voc是20个class和1个background),就可生成相应21个不同的颜色. def mak ...
- 语义分割 评价指标(global_acc, mean_acc, mean_iou)等numpy实现
语义分割常见评价指标global_acc, mean_acc, mean_iou计算,个人学习记录,仅供参考. 一.理论计算 假设真实标签为: 预测标签为: 则手动列出混淆矩阵可得: 1.1 全局准确 ...
- 语义分割评价指标mIOU
mIOU定义 Mean Intersection over Union(MIoU,均交并比),为语义分割的标准度量.其计算两个集合的交集和并集之比,在语义分割问题中,这两个集合为真实值(ground ...
- 语义分割MIoU代码解析
1. MIoU 源码解析TensorFlow 和 PyTorch 源码解析 2.[语义分割]语义分割评估指标mIOU 3. 语义分割代码阅读-评价指标mIoU的计算 4. 深度学习计算机视觉图像分割领 ...
- 85.4% mIOU!NVIDIA:使用多尺度注意力进行语义分割,代码已开源!
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 下载论文PDF和源代码: 链接:https://pan.baidu ...
- 详解语义分割评价指标
本文主要介绍语义分割的三大评价指标,分别是执行时间.内存占用以及准确度,本文着重介绍准确度. 一.执行时间 二.内存占用 三.准确度 假设一共有k+1类(包括k个目标类和1个背景类): 1.Pixel ...
- python 图像语义分割mIOU代码详解
mIOU公式在此不赘述. 1.fast_hist(label.flatten(), pred.flatten(), num_classes) 2.生成关于像素的混淆矩阵 k = (a >= 0) ...
- 【语义分割】评价指标:PA、CPA、MPA、IoU、MIoU详细总结和代码实现(零基础从入门到精通系列!)
文章目录 引言 1 混淆矩阵 2 语义分割 PA:像素准确率 CPA:类别像素准确率 MPA:类别平均像素准确率 IoU:交并比 MIoU:平均交并比 3 综合实例 步骤一:输入真实.预测图片 步骤二 ...
最新文章
- 在CSDN中增加图片版权保护的方法
- NeHe教程Qt实现——lesson12
- NPashaP的二分图源码部分
- js正则相关知识点专题
- spring(4)面向切面的Spring(AOP)
- python选择排序从大到小_Python实现选择排序
- SQL Server 空间监测
- 通过PO接口表导入PO数据
- java中遍历Map几种方法
- (转)马云:不要迷信成功学 要多看别人的失败经历
- .NET编译工具(每日构建或自动化编译)
- Python 一键提取PDF版论文表格数据
- cad 打开硬件加速卡_如何提高CAD运行速度
- python词云图输出(附代码)
- Android 最新所有框架
- 如何高效的完成每日的任务?
- java springboot智慧农业分销平台商用
- Liteos-A任务调度之任务上下文切换
- Linux 文本 sed 命令 碱基对 替换
- 比情商智商重要的是财商——财商!