python日记——数据分析与展示之numpy—— Part1

python数据分析与展示主要涉及Numpy、matplotlib、pandas三个库,本文将从Numpy开始,逐步介绍python进行数据分析与展示的相关知识,从而掌握表示、清洗、统计和展示数据的能力。
一、Numpy简介

  • Numpy是表达N维数组的最基础库,python接口使用,底层通过c语言实现,计算速度优异,它是python数据分析及科学计算的基础库,支撑pandas库,同时还提供直接的矩阵运算、广播函数、线性代数等功能。

二、ndarray数组对象

  • ndarray的优势
    1、数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据;
    2、设置专门的数组对象,经过优化,可以提升这类应用的运算速度;
    3、数组对象采用相同的数据类型,有利于节省运算和存储空间
  • ndarray基本介绍
    1、ndarray是一个多维数组对象,由实际的数据、描述这些数据的元数据(数据维度、数据类型等)两部分构成;
    2、ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始
    3、numpy.array()用于生成一个ndarray数组,其输出为[ ]形式,输出的数组元素之间由空格分隔;
    4、轴和秩:轴用于保存数据的维度,秩用于表示轴的数量;
    5、ndarray对象的属性
    .ndim:秩,即轴的数量或维度的数量;
    .shape:ndarray对象的尺度,对于矩阵,表示n行m列;
    .size:ndarray对象元素的个数,相当于.shape中n*m的值;
    .dtype:ndarray对象的元素类型;
    .itemsize:ndarray对象中每个元素的大小,以字节为单位。
    6、ndarray的元素类型
    ndarray元素类型很多,主要是因为科学计算涉及数据较多,对存储和性能都有较高要求,并且对元素类型精确定义,有助于Numpy合理使用存储空间并优化性能,有助于程序员对程序规模有合理评估,其元素类型如下:bool、inte、intp、int8、int16、int32、int64、uint8、uint16、uint32、uint64、float16、float32、float64、complex64、complex128;
    7、ndarray数组可以由非同质对象构成,但无法有效发挥Numpy优势,应该尽量避免使用。
  • ndarray数组的创建和变换
    1、ndarray数组的创建方法:
    (1) 从python中的列表、元素等类型创建:x = np.array(list/tuple)
    (2) 使用Numpy中函数创建ndarray数组:
    numpy.arange(n):类似range函数,返回ndarray类型,元素从0到n-1;
    numpy.ones(shape):根据shape生成一个全1数组,shape是元组类型;
    numpy.zeros(shape):根据shape生成一个全0数组。shape是元组类型
    numpy.full(shape,val):根据shape生成一个数组,每个元素值都是val;
    numpy.eye(n):创建一个正方的n*n单位矩阵,对角线为1,其余为0;
    numpy.ones_like(a):根据数组a的形状生成一个全1数组;
    numpy.zeros_like(a):根据数组a的形状生成一个全0数组;
    numpy.full_like(a,val):根据数组a的形状生成一个全val数组;
    numpy.linspace(a,b,size,endpoint=True/False):根据起止数据a,b等间距地填充size个数据,形成数组,endpoint=False时表示不包含b;
    numpy.concatenate():将两个或多个数组合并成一个新的数组。
    2、ndarray数组的变换:
    (1) 维度变换:
    .reshape(shape):不改变数组元素,返回一个shape形状的数组,原数组不变;
    .resize(shape):与.reshape()功能一致,但修改原数组;
    .swapaxes(ax1,ax2):将数组n个维度中两个维度进行调换;
    .flatten():对数组进行降维,返回折叠后的一维数组,原数组不变。
    (2) 元素类型变换 :
    .astype(new_type):创建一个新的数组(原始数据的一个拷贝)。
    (3)ndarray数组向列表转换:
    .tolist()
  • ndarray数组的操作
    1、数组的索引和切片:
    (1)一维数组:与python中列表相似;
    (2)多维数组:
    索引:a[1,2,3]、a[-1,-2,-3];
    切片:a[:,1:3,::2],三维为例,2表示步长。
    python日记Day12——数据分析与展示之numpy —— Part1
    2、ndarray数组的运算:
    (1) 数组与标量之间的运算:作用与数组的每一个元素;
    (2) numpy一元函数,对ndarray中的数据执行元素级运算的函数:
    numpy.abs(x),numpy.fabs(x):计算数组各元素的绝对值;
    numpy.sqrt(x):计算数组各元素的平方根;
    numpy.square(x):计算数组各元素的平方;
    numpy.log(x),numpy.log10(x),numpy.log2(x):计算各元素的对数;
    numpy.ceil(x),numpy.floor(x):计算数组各元素的ceiling值或floor值;
    numpy.rint(x):计算数组各元素的四舍五入值;
    numpy.modf(x):将数组各元素的小数和整数部分以两个独立数组形式返回;
    numpy.cos(x)等:计算三角函数值;
    numpy.exp(x):计算数组各元素的指数值;
    numpy.sign(x):计算数组各元素的符号值,1(+),0,-1(-)。
    (3) numpy二元函数:
    numpy.maxmun(x,y)、numpy.minmun(x,y)、numpy.fmax()、numpy.fmin()、numpy.mod(x,y)、numpy.copysign(x,y)—将数组y中各元素值的符号赋值给数组x对应元素、加减乘除、算术比较。

相关文章: