环境搭建
- Jupyter notebook是一个功能强大的交互式shell上的python代码可以分段运行,更方便与分析
- Jupyter notebook是一个友好的集文本、代码、图像、公式于一体的python web界面
启动Jupyter notebook
安装完后按home键在所有程序中找到Anaconda3 (64-bit)文件夹启动Jupyter notebook会进入到一个网页
常用命令
#help()查询命令
help(len)
#或者用命令+?
len?
命令补全Tab
#运行外部python文件
%run 文件路劲
#计算代码运行时间
%time 代码
#计算代码执行的平均时间
%timeit 代码
#计算多行代码
%%timeit 代码1 代码2
notebook快捷键
- Enter进入编辑模式
- Ctrl+Enter 运行该段代码
- Shift+Enter 执行该段代码,并且另起一行选中
- Alt+Enter 执行该段代码,并且在下面生成一行
- b 不执行代码在下面生成新的一行
- a 不执行代码在代码上面生成新的一行
- m 将代码段变成markdown段,可以输入markdown语法
- y 变成代码段
Numpy模块
#导入
import numpy as np
#创建ndarray类型
list = [1,2,3,5,4]
array = np.array(list)
- 几种快速创建ndarray方法
- np.ones(shape, dtype=None, order='C') #生成参数都为1的array
- np.zeros(shape, dtype=float, order='C') #生成参数都为0的array
- np.full(shape, fill_value, dtype=None, order='C') #生成参数都为fill_value的array
- np.eye(N, M=None, k=0, dtype=float) #生成对角线为1其他为0的array,k控制对角线位置
- np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) #生成(start-stop)长度为50的array对象
- np.arange([start, ]stop, [step, ]dtype=None) #生成(start-stop)长度为50元素间隔为1的array对象
- np.random.randint(low,high,size) #随机生成(low-high),长度为size的array
- np.random.randn(size) #生成正态分布array
- np.random.normal(loc=0.0, scale=1.0, size=None)
- np.random.random(size=None) #生成0到1的随机数,左闭右开
- 参数分析
- shape 维度
- dtype 里面元素的类型
- size 长度
- fill_value 填充的变量
- 维度变换reshape
参数传入一个元组(x,y),x*y必须等于原本的元素个数
- np.concatenate()级联
- 级联的必须要是列表
- 维度要相同
- 默认级联方向为行级联
- 可通过axis改变级联方向
- np.hstack()与np.vstack()
- np.hstack()为以columns级联
- np.vstack()为以index级联
- ndarray的聚合操作
Function Name NaN-safe Version Description
np.sum np.nansum Compute sum of elements
np.prod np.nanprod Compute product of elements
np.mean np.nanmean Compute mean of elements
np.std np.nanstd Compute standard deviation
np.var np.nanvar Compute variance
np.min np.nanmin Find minimum value
np.max np.nanmax Find maximum value
np.argmin np.nanargmin Find index of minimum value
np.argmax np.nanargmax Find index of maximum value
np.median np.nanmedian Compute median of elements
np.percentile np.nanpercentile Compute rank-based statistics of elements
np.any N/A Evaluate whether any elements are true
np.all N/A Evaluate whether all elements are true
np.power 幂运算
-
广播机制
- 两个维度不同的ndarray进行运算会用NaN补充不存在的元素但只限于相差一个维度
ndarray排序
np.sort(ndarray) #不改变原来的ndarry
ndarray.sort() #改变原来的ndarry