基础学习

您所在的位置:网站首页 将字符串转换成列表 基础学习

基础学习

2023-06-03 11:39| 来源: 网络整理| 查看: 265

文章目录 字符串转数组字符串中的数组转列表转整数列表 读数据,然后画PR曲线读取txt数据关于PR曲线代码 读数据画Loss曲线读txt数据代码 工程代码链接

字符串转数组

.split() 是Python中的一个字符串方法,它可以将一个字符串按照指定的分隔符分割成多个子字符串,并返回一个由这些子字符串组成的列表。例如,如果有一个字符串"hello world",我们可以使用.split()方法将它按照空格分隔成两个子字符串[“hello”, “world”]。如果没有指定分隔符,则默认使用空格作为分隔符。

# 将逗号分隔的字符串转换为数组 data = 'huang,chao,yang' data = data.split(',') print(data) # --------------------------------------------- # 将空格分隔的字符串转换为数组 data = 'huang,chao,yang' data = data.split(' ') print(data) # --------------------------------------------- # 将字符串转换为字符数组 data = 'Chaoy' data = list(data) print(data) # --------------------------------------------- # 将字符串转换为整数数组 data = '1,2,3' data = list(int(char) for char in data.split(',')) print(data) # --------------------------------------------- # 将字符串转换为单元素数组 data = 'Chaoy' data = [data] print(data) 字符串中的数组转列表

literal_eval()

from ast import literal_eval data= '[1,2,3,4]' data= literal_eval(data) print(data) 转整数列表 data= '1,2,3' data= list(int(digit) for digit in data.split(',')) print(data) 读数据,然后画PR曲线 读取txt数据

把类似于这样的数据读出来转为list,然后画图。 在这里插入图片描述

首先读txt内容

with open('file.txt', 'r') as f: content = f.read() print(content) data_lines = "results-yolo7.txt" # 数据路径 with open(data_lines, "r") as f: # 读txt文本数据 data = f.readlines() 关于PR曲线

混淆矩阵如表 3 所示:将所有的样本分成四个类型,将正样本检测为正样本是 TP,将正样本检测为反样本是 FN,将反样本检测为正样本是 FP,将反样本检测为反样本是 TN。所有预测正确的样本数总数是 TP 和 TN 之和,所有预测为正样本的样本总数是 TP 和 FP之和。 TP 和 FN 的是所有实际为正的样本。 在这里插入图片描述 精确度,指所有正确被预测的正样本占预测为正样本的百分比。 P r e i c i s i o n = T P / ( T P + F P ) Preicision= TP/(TP+FP) Preicision=TP/(TP+FP) 召回率,指所有正确被预测的正样本占所有正样本的百分比。 R e c a l l = T P / ( T P + F N ) Recall= TP/(TP+FN) Recall=TP/(TP+FN) P-R 曲线是指精确度为纵轴、召回率为横轴作图,得到查准率– 查全率曲线。 AP 是平均准确率, mAP 是所有类的平均准确率之和除以类数。 R 曲线和坐标轴包围的多边形的面积就是每个类别的 AP 值。

PR曲线是指精度(Precision)和召回率(Recall)之间的关系曲线,它是用于评估信息检索系统、文本分类系统等的性能的一种常用方法。在PR曲线中,横轴表示召回率,纵轴表示精度,曲线上每一点的坐标表示在该召回率下的最大精度。通常情况下,PR曲线是一个递增的曲线,表示随着召回率的增加,系统的精度也会相应地增加。在信息检索领域中,PR曲线是评估系统性能的重要指标之一。

代码

代码注释很详细,这里就不解释了。

import numpy as np from ast import literal_eval import matplotlib.pyplot as plt import os # ----------------------------------------------------------- # data_lines1 = "input_data/results-yolo5.txt" # 数据路径1 data_lines2 = "input_data/results-yolo7.txt" # 数据路径2 data_lines3 = "input_data/results-yolo8.txt" # 数据路径3 image_path = 'out_data' # PR曲线保存路径 # Dog、Cat、Fish、Bird、Pig name = 'Pig AP ' # 设定那个一个类别的PR曲线 画哪一个 把名称改了就行了 后面的AP不要动 # ----------------------------------------------------------- # # 数据读取函数 def read_data(data_lines,name): Precision_all = [] Recall_all = [] with open(data_lines, "r") as f: # 读txt文本数据 data = f.readlines() for i in range(len(data)): # 遍历每一行 zancun = data[i] # 读第i行 if i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3