数据分析——numpy教程

avatar
作者
猴君
阅读量:0

1.NumPy:

是Python的一个开源的数值计算库。可以用来存储和处理大型矩阵,比python自身的嵌套列表结构要高效,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅里叶变换、基本线性函数,基本统计运算和随机模拟等。

2.Jupyter NoteBook

Web应用程序,用途是数据清理和转换,数值模拟,统计建模,机器学习等

运行外部python文件:

%run *.py

计算statement运行时间:

%time statement                一般用于耗时比较长的代码

%timeit statement                  会多次运行statement,得到一个更精准的时间,一般用于耗时较短的

返回当前会话的所有变量和函数名称:

%who_ls

3.Numpy数组:

1.使用np.array()创建

numpy默认ndarray的所有元素类型都是相同的,如果传进来的列表包含不同的类型,则统一为同一类型,优先级str>float>int

ndarray的常见数据类型:int、float、str

2.使用np的routines函数创建

  1. 创建一个所有元素都为一的多维数组:np.ones(shape,dtype=None,order='C')

shape:形状

dtype=None:元素类型

order:{'C','F'},默认值为C,C(行主序),F(列主序)

  1. 创建一个所有元素都为0的多维数组:np.zeros(shape,dtype=None,order='C')

dtype默认值为float

  1. 创建一个所有元素都为指定元素的多维数组:np.full(shape,fill_value,dtype=None,order='C')

shape:形状

fill_value:填充值

dtype=None:元素类型

order:{'C','F'},默认值为C,C(行主序),F(列主序)

  1. 创建一个对角线为1其他位置为0的二维数组:np.eye(N,M=None,k=0,dtype=None)

N:行数

M:列数,默认为None,表示和行数一样

k=0:向右偏移0个位置

dtype默认值为float

  1. 创建一个等差数列:np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)

start:开始值

stop:结束值

num=50:等差数列中默认有50个数

endpoint=True:是否包含结束值

retstep=Flase:是否返回等差值

dtype=None:元素类型

  1. 创建一个数值范围的数组(和python的range类似): np.arange(start,stop,step,dtype=None)

start:开始值

stop:结束值

step:步长

dtype=None:元素类型

  1. 创建一个随机整数的多维数组:np.random.randint(low,high=None,size=None,dtype='l')

low:最小值

high:最大值

  1. high=None时,生成的数值在[0,low]区间

size=None,数组形状,默认只输出一个随机值

dtype=None:元素类型

  1. 创建一个都为1的服从标准正态分布的多维数组:np.random.randn(d0,d1,…,dn)

dn:第n个维度的数值

  1. 创建一个服从正态分布的多维数组:np.random.normal(loc=0.0,scale=0.0,size=None)

loc=0.0:均值,对应正态分布的多维数组

scale:标准差,对应分布的宽度,scale越大,正态分布的曲线越矮胖,scale越小,曲线越高瘦

size=None:数组形状

  1. 创建一个元素为 [ 0,1 )的随机数的多维数组:np.random.random(size=None)

size=None:数组形状

  1. 创建一个元素为 [ 0,1 )的随机数的多维数组:np.random.rand(),与np.random.random(size=None)类似:

dn:第n个维度的数值

4.ndarray属性:

ndim:维度

shape:形状(有几个数字就表示几维)

size:总数据数量

dtype:元素类型

5.索引:

一维与列表完全一致,多维时同理,可通过索引修改数组

6.切片:

一维与列表一致,多维同理。

翻转:

二维数组行操作:

二维数组取单行:

二维数组取连续多行:

取不连续多行:

二维数组列操作:

二维数组取单列:

二维数组取连续多列:

取不连续多列:

7.数组变形reshape

-1表示任意剩余维度的长度:

8.级联:np.concatenate()

参数是列表或元组

级联的数组为度必须相同,

可以通过axis参数改变联的方向,axis=0:第一个维度,axis:第二个维度…..

水平级联:

np.hstack()

垂直级联:

np.vstack()

9.拆分:

垂直拆分:np.vsplit()

按照指定位置拆分

水平拆分:np.hsplit()

水平或垂直拆分:split() (axis=0行,axis=1列)

10.数组拷贝:

copy()创建副本

11.聚合操作:

  1. 求和:np.sum

  1. np.max():最大值
  2. np.min():最小值
  3. np.mean():平均值
  4. np.average():平均值
  5. np.median():中位数
  6. np.percentile(n,q=50):百分位数,q=50代表中位数
  7. np.argmax():第一个最大值对应下标
  8. np.argmin():第一个最小值对应的下标
  9. np.power(n,3):次方,此处为3次方
  1. np.std():标准差
  2. np.var():方差
  3. np.nansum():排Nan值求和

12.矩阵操作

基本矩阵操作:

算术运算符:加减乘除、整除(//)、次方(**)、余数(%)

矩阵和矩阵之间运算

数与矩阵运算

矩阵乘积:

矩阵与矩阵相乘,np.dot

矩阵逆运算:np.linalg.inv()

矩阵行列式:np.linalg.det()

矩阵秩:np.linalg.maxtrix_rank(n)

广播机制:

为不同维度的矩阵尽量提供运算的可能性

规则一:为缺失的维度补维度

规则二:缺失元素用已有值填充

其他数学操作:

np.abs():绝对值

np.sqrt():平方根

np.square():平方

np.exp():指数e

np.log():自然对数,以e为底的对数

np.sin():正弦

np.cos():余弦

np.tan():正切

np.round():四舍五入   eg:np.round(n,2)小数点2位四舍五入

np.ceil():向上取整

np.floor():向下取整

np.cumsum():累加

13.排序操作:

np.sort():不改变输入排序

ndarray().sort():本地处理,不占用空间,但是改变输入

14.文件操作:

np.save():保存ndarray到一个npy文件

np.savez():将多个ndarray到一个npz文件中

np.savetxt():保存到csv或txt中

np.load():读取文件

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!