这是2018年度业余主要学习和研究的方向的笔记:大数据测试 整个学习笔记以短文为主,记录一些关键信息和思考 预计每周一篇短文进行记录,可能是理论、概念、技术、工具等等 学习资料以IBM开发者社区、华为开发者社区以及搜索到的相关资料为主 我的公众号:开源优测
在本次笔记中主要汇总Python关于大数据处理的一些基础性工具,个人掌握这些工具是从事大数据处理和大数据测必备技能
主要工具有以下(包括但不限于):
对于上述工具,笔者之前已经从安装部署、学习其官方示例等等均已经初步做了一些学习,但在实战方面有待进一步提升,有兴趣的朋友可以加入和我一起学习提升
关注公众:开源优测, 一起提升学习,谢谢
NumPy系统是Python的一种开源的数值计算扩展。可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)).
包括:
numpy和稀疏矩阵运算包scipy配合使用更加方便。
笔者注:numpy是基础数值计算的库,更是必须掌握的,便于我们深入理解原理,为后续学习其他库打下扎实的基础。
Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
主要数据结构有:
笔者注:pandas相对于numpy易用性更友好,有一定编码经验的前提下基本上对官方文档的十分钟入门教程进行初步学习即可开始使用干活了。
SciPy是一款方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等.
scipy是Python中科学计算程序的核心包; 它用于有效地计算numpy矩阵,来让numpy和scipy协同工作。
Scikit-learn是Python机器学习开源库,基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预处理。
注:Scikit-learn本身不支持深度学习,也不支持GPU加速,因此对于MLP的实现并不适合于处理大规模问题。有相关需求的朋友可以查看对Python有良好支持的Keras和Theano等框架。
需要特别注意的是,这里的特征提取与上文在数据降维中提到的特征选择非常不同。特征选择是指通过去除不变、协变或其他统计上不重要的特征量来改进机器学习的一种方法。
总结,Scikit-learn实现了一整套用于数据降维,模型选择,特征提取和归一化的完整算法/模块,虽然缺少按步骤操作的参考教程,但Scikit-learn针对每个算法和模块都提供了丰富的参考样例和详细的说明文档。
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark提供了Scala和Python版本,因Scala的学习曲线相对漫长,笔者建议软件测试人员学习Python版本即可。
Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。 通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图
大数据处理及测试,必然需要掌握基础技术,不仅仅需要去了解,更需要去掌握技术并具备实际的项目能力,将技术、测试、业务融会贯通。
接下来会逐步的开始深入到这些技术的学习当中,并记录成笔记。