您的位置:首页 > 编程语言 > Python开发

python数据分析与展示——Numpy库入门

2019-05-06 11:17 218 查看

在Python中进行数据分析会用到一些模块,使用比较多的有Numpy、Matplotlib、pandas这三个基本的库。这一节主要介绍Numpy 库的基本的使用。

数据的维度

维度:也就是一组数据的组织形式
列表和数组都可以表达一组数据的有序结构,区别在于,列表中的元素类型可以不同,数组中的元素类型补休相同。
一维数据:列表或者集合
二维数据:列表(二维数据由多个一维数据构成,表格是典型的二维数据,表头也是数据的一部分)
多维数据:列表(一维或者二维数据在新的维度上扩展)
高维数据:字典或者数据表示格式(仅利用最基本的二元关系展示数据的复杂结构)
数据表示格式:JSON、XML、YAML

Numpy库

Numpy是Python科学计算的基础库,主要提供了以下功能:

  1. Numpy提供了强大的N维数组对象
  2. 提供了广播功能函数
  3. 提供了傅里叶变换、线性代数、随机数生成等功能

Numpy数组的创建

  1. 使用python列表、元祖创建数组
a=np.array([1,2,3,4])
a=np.array((1,2,3,4))
  1. 使用Numpy提供的函数创建数组
np.arange(n)       --生成一个从0到n-1的一维数组
np.ones(shape)       --生成一个全1的shape形状的数组
np.zeros(shape)        --生成一个全0的shape形状的数组
np.full(shape,values)  --生成一个都是value的shape形状的数组
np.eye(n)              -- 生成一个n阶单位矩阵
np.ones_like(a)     --生成一个类似于a的全1数组
np.zeros_like(a)    --生成一个类似于a的全0数组
np.full_like(a,val)   --生成一个类似于a的指定value值的数组
np.linspace(a,b,n,endpoint=False)   根据起始数据等间距的填充n合格数据,通过参数设置最后一个数据是否在生成的队伍中
np.concatenate((a,b))   将a与b两个数组合并在一起
  1. 使用字节流创建数组
  2. 从文件中读取特定格式,创建数组

数组对象的属性

.ndim 数组对象的尺维度 a.ndim
.shape 数组对象的尺度,对于矩阵n*m a.shape
.size 数组对象元素的大小,共多少个元素 a.size
.dtype 数组对象中元素的类型 a.dtype
.itemsize 数组对象中每个元素的大小,以字节为单位 a.itemsize

数组对象维度的变换

对于定义好的数组,可以进行维度的变换

.reshape(shape) 不改变原数组 a.reshape((3,4))
.resize(shape) 修改原数组 a.resize((3,4))
…swapaxes(ax1,ax2) 将数组对象的两个维度进行调换 a.swapaxes(0,1)
.flatten() 对数组进行降维,返回一维数组,原数组不变 a.flatten()

数组元素类型的变换

对于定义好的数组,可以进行数组元素类型的变换

.astype(newtype) astype方法一定会创建一个新的数组,即使两个类型一致 a.astype(np.int)
.tolist() 数组向列表的转换 a.tolist()

数组的索引与切片

索引:获得特定位置数组元素的过程
切片获得数组的子数组的过程

维度 索引 切片
一维数组 a
a[::]
多维数组 a[x,y,z] a[ : : , : : , : : ]

数组的运算

  1. 数组与标量之间的运算
    数组与标量之间的运算作用于数组的每一个元素
  2. Numpy的一元函数
np.abs(x) ,np.fabs(x) 计算绝对值
np.sqrt(x) 计算各组元素的平方根
np.square(x) 计算各组元素的平方
np.log(x) ,np.log10(x) ,np.log2(x) 计算各组元素的对数值
np.ceil(x),np.floor(x) 计算各组元素的ceiling值或者是floor值
np.rint(x) 计算各组元素的四舍五入值
np.modf(x) 将各组元素的小数与整数部分以两个独立的形式返回
np.cos(x) np.cosh(x) 计算各组元素的三角函数值
np.exp(x) 计算各组元素的指数值
np.sign(x) 计算各组元素的符号1(+),-1(-),0
  1. Numpy的二元函数
+ - * / ** 将链各个数组各元素进行相应运算
np.maximun(x,y),np.minimum(x,y),np.fmax(),np.fmin() 元素级的最大最小值
np.mod(x,y) 元素级的模运算
np.copysign(x,y ) 将数组y中各元素值的符号赋值给数组x对应元素
> < >= <= != == 算术比较,产生布尔型结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: