美文网首页
python自动化分析提取随机数据

python自动化分析提取随机数据

作者: 码上就说 | 来源:发表于2018-12-25 19:40 被阅读32次

问题背景:
我们在测试性能的时候,一般会提取一组数据,但是这组数据里面会有一些异常数组,需要我们能剔除一些异常值,保证输出的数据尽量可靠,通过一些分析处理方法,可以将这一过程程序化。

如何判断一组数据是否稳定?
数学中使用方差或者标准差来表示一组数据的稳定性。如果方差或者标准差越小,说明数据分布越平均,数据的稳定性越好。
方差标准差
但是这儿不能采用方差与标准差,因为应用的场景不同:方差与标准差是判断当前的一组数据是否稳定,并不是提取出正常的测试数据,换言之,我们需要提取的测试数据,并不是越稳定越好,我们需要的是一种正常的分布。而且方差和标准差的订多少标准比较合适,这个界限比较模糊,所以我还是建议使用中位数来界定。

下面是我提出了一个提取测试数据的方法,大家可以参考下:



先看看我们的要求:输入的数据至少20位,输出的数据10位。
这样我们一定要剔除一些过大或者过小的数据,判断的标准就是中位数。这个中位数是以平均数标识的。

下面先贴上我的处理代码:
test_camera.py

# -*- coding:UTF-8 -*-
# Author : jeffmony@163.com
# Date : 24/12/18

import sys
import numpy

# 寻找 average 在 list 中的索引位置
def findIndex( list, average ):
    for index in range(len(list)):
        if( list[index] < average):
            continue;
        return index;
    return -1;

# 退出程序
def sysExit():
    try:
        sys.exit(0);
    finally:
        print 'System Exit';

# 完成工作
def sysFinsih():
    try:
        sys.exit(0);
    finally:
        print 'System Finished';

def OutputList( list , length ):
    average = numpy.mean(list);
    print '当前数组长度 =', length,',当前list为 =', list;
    index = findIndex(list, average)
    print '当前数组平均数 =',average,',当前average.index =',index;
    tempList = [];
    if length >= 14:
        if index <= length/2+2 and index >= length/2-2:
            for i in range(index -5,index):
                tempList.append(list[i]);
            for i in range(index, index+5):
                tempList.append(list[i]);
            print tempList;
            sysFinsih();
        elif index < length/2 -2:
            list.pop(0);
            OutputList(list, len(list));
        elif index > length/2 +2:
            list.pop();
            OutputList(list, len(list));
        else:
            sysExit();
    else:
        print '当前数组异常值太多,请重新check input';

argv = sys.argv[1]
list = []
file_object = open(argv, 'rU')
try:
    for line in file_object:
        list.append(float(line.strip('\n')));
finally:
    file_object.close()
length = len(list);
if length <= 14:
    print '当前数组大小不超过14,请重新check input';
    sysExit();
list.sort();
OutputList(list, length);

将需要处理的数据放在本地文本中:
test_camera.txt

1595
1465
1387
1397
1405
1376
1377
1404
1483
1522
1265
1257
1193
1200
1236
1246
1289
1208
1269
1309

下面是运行实例:

python test_camera.py test_camera.txt

当前数组长度 = 20 ,当前list为 = [1193.0, 1200.0, 1208.0, 1236.0, 1246.0, 1257.0, 1265.0, 1269.0, 1289.0, 1309.0, 1376.0, 1377.0, 1387.0, 1397.0, 1404.0, 1405.0, 1465.0, 1483.0, 1522.0, 1595.0]
当前数组平均数 = 1344.15 ,当前average.index = 10
[1257.0, 1265.0, 1269.0, 1289.0, 1309.0, 1376.0, 1377.0, 1387.0, 1397.0, 1404.0]
System Finished

python test_camera.py test_camera2.txt

当前数组长度 = 20 ,当前list为 = [9.89, 10.09, 10.99, 12.23, 12.33, 14.85, 16.02, 16.8, 17.56, 18.11, 18.24, 21.45, 21.56, 23.14, 26.71, 28.21, 34.11, 52.66, 77.22, 89.11]
当前数组平均数 = 26.564000000000004 ,当前average.index = 14
当前数组长度 = 19 ,当前list为 = [9.89, 10.09, 10.99, 12.23, 12.33, 14.85, 16.02, 16.8, 17.56, 18.11, 18.24, 21.45, 21.56, 23.14, 26.71, 28.21, 34.11, 52.66, 77.22]
当前数组平均数 = 23.272105263157897 ,当前average.index = 14
当前数组长度 = 18 ,当前list为 = [9.89, 10.09, 10.99, 12.23, 12.33, 14.85, 16.02, 16.8, 17.56, 18.11, 18.24, 21.45, 21.56, 23.14, 26.71, 28.21, 34.11, 52.66]
当前数组平均数 = 20.275000000000002 ,当前average.index = 11
[16.02, 16.8, 17.56, 18.11, 18.24, 21.45, 21.56, 23.14, 26.71, 28.21]
System Finished

上面加粗的是最终输出的数据。
这个处理方式虽然比较粗糙,但是提供了一种思路。欢迎指教。

相关文章

  • python自动化分析提取随机数据

    问题背景:我们在测试性能的时候,一般会提取一组数据,但是这组数据里面会有一些异常数组,需要我们能剔除一些异常值,保...

  • Python爬虫框架Scrapy入门与实践之爬取豆瓣电影Top2

    前言 爬虫就是请求网站并提取数据的自动化程序,其中请求,提取,自动化是爬虫的关键。Python作为一款出色的胶水语...

  • 初识python

    python作用 自动化运维、自动化测试、大数据分析、爬虫、Web... Python的种类 CpythonPyt...

  • Python数据分析入门

    python与数据分析概况 数据分析概况 数据分析,是指用适当的分析方法,对收集的数据进行分析,总结规律,提取有价...

  • 网络爬虫入门(二)之爬虫的原理

    在上文中我们说了:爬虫就是请求网站并提取数据的自动化程序。其中请求,提取,自动化是爬虫的关键!下面我们分析爬虫的基...

  • 爬虫的基本原理

    在上文中我们说了:爬虫就是请求网站并提取数据的自动化程序。其中请求,提取,自动化是爬虫的关键!下面我们分析爬虫的基...

  • 真实世界的Python仪器监控 数据采集与控制系统自动化 P

    真实世界的Python仪器监控 数据采集与控制系统自动化 提取码:11og 内容简介 · · · · · · ...

  • 1.1postman常用函数

    随机数 案例 提取响应数据(提取json格式的数据) 断言响应信息 案例

  • 作业1 定位

    (1) 技能: 快速学习,SQL, 英语,数据提取整合,Excel,Python,建模分析,画画,照顾猫咪和狗狗,...

  • P200人际关系潜力表

    潜力表分析背景 ◎ 数据量共200人,按照通讯录顺序记录; ◎ 随机筛选,无预先设定筛选条件; ◎ 数据量提取时间...

网友评论

      本文标题:python自动化分析提取随机数据

      本文链接:https://www.haomeiwen.com/subject/fllqlqtx.html