基于python进行数据分析(python基础代码大全)

导读:Python中常会用到一些专门的库,如NumPy、SciPy、Pandas和Matplotlib。数据处理常用到NumPy、SciPy和Pandas,数据分析常用到Pandas和Scikit-Learn,数据可视化常用到Matplotlib,而对大规模数据进行分布式挖掘时则可以使用Pyspark来调用Spark集群的资源。

基于python进行数据分析(python基础代码大全)

01 NumPy关于NumPy,本节主要介绍ndarray多维数组对象和数组属性。1. ndarray 多维数组对象NumPy库中的ndarray是一个多维数组对象,由两部分组成:实际的数据值和描述这些值的元数据。大部分的数组操作仅仅涉及修改元数据的部分,并不改变底层的实际数据。数组中的所有元素类型必须是一致的,所以如果知道其中一个元素的类型,就很容易确定该数组需要的存储空间。可以用array()函数创建数组,并通过dtype获取其数据类型。importnumpyasnpa=np.array(6)a.dtypeoutput:dtype(‘int64’)上例中,数组a的数据类型为int64,如果使用的是32位Python,则得到的数据类型可能是int32。2. 数组属性NumPy数组有一个重要的属性——维度(dimension),它的维度被称作秩(rank)。以二维数组为例,一个二维数组相当于两个一维数组。只看最外面一层,它相当于一个一维数组,该一维数组中的每个元素也是一维数组。那么,这个一维数组即二维数组的轴。了解了以上概念,接着来看NumPy数组中比较重要的ndarray对象的属性:ndarray.ndim:秩,即轴的数量或维度的数量ndarray.shape:数组的维度,如果存的是矩阵,如n×m矩阵则输出为n行m列ndarray.size:数组元素的总个数,相当于.shape中n×m的值ndarray.dtype:ndarray对象的元素类型ndarray.itemsize:ndarray对象中每个元素的大小,以字节为单位ndarray.flags:ndarray对象的内存信息ndarray.real:ndarray元素的实部ndarray.imag:ndarray元素的虚部ndarray.data:包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性02 MatplotlibMatplotlib是Python数据分析中常用的一个绘图库,常用来绘制各种数据的可视化效果图。其中,matplotlib.pyplot包含了简单的绘图功能。1. 实战:绘制多项式函数为了说明绘图的原理,下面来绘制多项式函数的图像。使用NumPy的多项式函数poly1d()来创建多项式。#引入所需要的库importnumpyasnpimportmatplotlib.pyplotasplt#使用polyld()函数创建多项式func=1×3 2×2 3x 4func=np.poly1d(np.array([1,2,3,4]).astype(f?loat))#使用NumPy的linspace()函数在-10和10之间产生30个均匀分布的值,作为函数x轴的取值x=np.linspace(-10,10,30)#将x的值代入func()函数,计算得到y值y=func(x)#调用pyplot的plot函数(),绘制函数图像plt.plot(x,y)#使用xlable()函数添加x轴标签plt.xlabel(‘x’)#使用ylabel()函数添加y轴标签plt.ylabel(‘y(x)’)#调用show()函数显示函数图像plt.show()多项式函数的绘制结果如图2-13所示。

▲图2-13 多项式函数绘制2. 实战:绘制正弦和余弦值为了明显看到两个效果图的区别,可以将两个效果图放到一张图中显示。Matplotlib中的subplot()函数允许在一张图中显示多张子图。subplot()常用的3个整型参数分别为子图的行数、子图的列数以及子图的索引。下面的实例将绘制正弦和余弦两个函数的图像。#导入相关包importnumpyasnpimportmatplotlib.pyplotaspltfrommatplotlib.pyplotimportf?iguref?igure(num=None,f?igsize=(12,8),dpi=80,facecolor=’w’,edgecolor=’k’)#计算正弦和余弦曲线上点的x和y坐标x=np.arange(0,3*np.pi,0.1)y_sin=np.sin(x)y_cos=np.cos(x)#subplot的3个参数,2、1、1,表示绘制2行1列图像中的第一个子图plt.subplot(2,1,1)#绘制第一个子图#绘制第一个图像plt.plot(x,y_sin)plt.title(‘Sin’)plt.subplot(2,1,2)#绘制2行1列图像中的第二个子图plt.plot(x,y_cos)plt.title(‘Cos’)plt.show()#显示图像正弦和余弦函数的绘制结果如图2-14所示。

▲图2-14 正弦和余弦函数绘制03 PySpark在大数据应用场景中,当我们面对海量的数据和复杂模型巨大的计算需求时,单机的环境已经难以承载,需要用到分布式计算环境来完成机器学习任务。Apache Spark是一个快速而强大的框架,可以对弹性数据集执行大规模分布式处理。通过图2-15所示的Apache Spark架构图可以非常清晰地看到它的组成。

▲图2-15 Apache Spark架构图Spark支持丰富的数据源,可以契合绝大部分大数据应用场景,同时,通过Spark核心对计算资源统一调度,由于计算的数据都在内存中存储,使得计算效率大大提高。Spark原生支持的语言是Scala,但为了丰富应用场景和满足各研发人员的语言偏好,Spark同时支持Java、Python与R。PySpark是Spark社区发布的在Spark框架中支持Python的工具包,它的计算速度和能力与Scala相似。通过PySpark调用Spark的API,配合MLlib与ML库,可以轻松进行分布式数据挖掘。MLlib库是Spark传统的机器学习库,目前支持4种常见的机器学习问题:分类、回归、聚类和协同过滤。MLlib的所有算法皆基于Spark特有的RDD(Resilient Distributed Dataset,弹性分布式数据集)数据结构进行运算。由于RDD并不能很好地满足更为复杂的建模需求,ML库应运而生。ML库相较MLlib库更新,它全面采用基于数据帧(Data Frame)的API进行操作,能够提供更为全面的机器学习算法,且支持静态类型分析,可以在编程过程中及时发现错误,而不需要等代码运行。

划重点??

干货直达??

终于有人把ROS机器人操作系统讲明白了

6个实例,8段代码,详解Python中的for循环

这10本硬核技术书,带你读懂5G、物联网和边缘计算,玩转元宇宙

手把手教你获取、编译和调试Flink的源代码

发表评论

登录后才能评论