前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据测试学习笔记之Python工具集

大数据测试学习笔记之Python工具集

作者头像
苦叶子
发布2018-04-09 16:43:18
1.5K0
发布2018-04-09 16:43:18
举报
文章被收录于专栏:开源优测开源优测

这是2018年度业余主要学习和研究的方向的笔记:大数据测试 整个学习笔记以短文为主,记录一些关键信息和思考 预计每周一篇短文进行记录,可能是理论、概念、技术、工具等等 学习资料以IBM开发者社区、华为开发者社区以及搜索到的相关资料为主 我的公众号:开源优测

大数据测试学习笔记之Python工具集

简介

在本次笔记中主要汇总Python关于大数据处理的一些基础性工具,个人掌握这些工具是从事大数据处理和大数据测必备技能

主要工具有以下(包括但不限于):

  • numpy
  • pandas
  • SciPy
  • Scikit-Learn
  • Spark
  • Matplotlib

对于上述工具,笔者之前已经从安装部署、学习其官方示例等等均已经初步做了一些学习,但在实战方面有待进一步提升,有兴趣的朋友可以加入和我一起学习提升

关注公众:开源优测, 一起提升学习,谢谢

numpy

NumPy系统是Python的一种开源的数值计算扩展。可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)).

包括:

  1. 一个强大的N维数组对象Array
  2. 比较成熟的(广播)函数库
  3. 用于整合C/C++和Fortran代码的工具包
  4. 实用的线性代数、傅里叶变换和随机数生成函数。

numpy和稀疏矩阵运算包scipy配合使用更加方便。

笔者注:numpy是基础数值计算的库,更是必须掌握的,便于我们深入理解原理,为后续学习其他库打下扎实的基础。

pandas

Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

主要数据结构有:

  1. Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
  2. Time- Series:以时间为索引的Series。
  3. DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。
  4. Panel :三维的数组,可以理解为DataFrame的容器。

笔者注:pandas相对于numpy易用性更友好,有一定编码经验的前提下基本上对官方文档的十分钟入门教程进行初步学习即可开始使用干活了。

Scipy

SciPy是一款方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等.

scipy是Python中科学计算程序的核心包; 它用于有效地计算numpy矩阵,来让numpy和scipy协同工作。

Scikit-learn

Scikit-learn是Python机器学习开源库,基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预处理。

  • 分类 是指识别给定对象的所属类别,属于监督学习的范畴,最常见的应用场景包括垃圾邮件检测和图像识别等。目前Scikit-learn已经实现的算法包括:支持向量机(SVM),最近邻,逻辑回归,随机森林,决策树以及多层感知器(MLP)神经网络等等。

注:Scikit-learn本身不支持深度学习,也不支持GPU加速,因此对于MLP的实现并不适合于处理大规模问题。有相关需求的朋友可以查看对Python有良好支持的Keras和Theano等框架。

  • 回归 是指预测与给定对象相关联的连续值属性,最常见的应用场景包括预测药物反应和预测股票价格等。目前Scikit-learn已经实现的算法包括:支持向量回归(SVR),脊回归,Lasso回归,弹性网络(Elastic Net),最小角回归(LARS ),贝叶斯回归,以及各种不同的鲁棒回归算法等。可以看到,这里实现的回归算法几乎涵盖了所有开发者的需求范围,而且更重要的是,Scikit-learn还针对每种算法都提供了简单明了的用例参考。
  • 聚类 是指自动识别具有相似属性的给定对象,并将其分组为集合,属于无监督学习的范畴,最常见的应用场景包括顾客细分和试验结果分组。目前Scikit-learn已经实现的算法包括:K-均值聚类,谱聚类,均值偏移,分层聚类,DBSCAN聚类等。
  • 数据降维 是指使用主成分分析(PCA)、非负矩阵分解(NMF)或特征选择等降维技术来减少要考虑的随机变量的个数,其主要应用场景包括可视化处理和效率提升。
  • 模型选择 是指对于给定参数和模型的比较、验证和选择,其主要目的是通过参数调整来提升精度。目前Scikit-learn实现的模块包括:格点搜索,交叉验证和各种针对预测误差评估的度量函数。
  • 数据预处理 是指数据的特征提取和归一化,是机器学习过程中的第一个也是最重要的一个环节。这里归一化是指将输入数据转换为具有零均值和单位权方差的新变量,但因为大多数时候都做不到精确等于零,因此会设置一个可接受的范围,一般都要求落在0-1之间。而特征提取是指将文本或图像数据转换为可用于机器学习的数字变量。

需要特别注意的是,这里的特征提取与上文在数据降维中提到的特征选择非常不同。特征选择是指通过去除不变、协变或其他统计上不重要的特征量来改进机器学习的一种方法。

总结,Scikit-learn实现了一整套用于数据降维,模型选择,特征提取和归一化的完整算法/模块,虽然缺少按步骤操作的参考教程,但Scikit-learn针对每个算法和模块都提供了丰富的参考样例和详细的说明文档。

Spark

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Spark提供了Scala和Python版本,因Scala的学习曲线相对漫长,笔者建议软件测试人员学习Python版本即可。

Matplotlib

Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。 通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图

  • 直方图
  • 功率谱
  • 条形图
  • 错误图
  • 散点图
  • 等等。

总结

大数据处理及测试,必然需要掌握基础技术,不仅仅需要去了解,更需要去掌握技术并具备实际的项目能力,将技术、测试、业务融会贯通。

接下来会逐步的开始深入到这些技术的学习当中,并记录成笔记。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大数据测试学习笔记之Python工具集
    • 简介
      • numpy
        • pandas
          • Scipy
            • Scikit-learn
              • Spark
                • Matplotlib
                  • 总结
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档