数据基础

数据基础总结

一 ipython
1 魔法指令 记录算法的时间
%time %%time 记录单行 多行的时间
%timeit %%timeit 记录一段代码运行n次取平均值
2 帮助文档
help()
指令?
3 查看当前变量
who 查看当前所有变量
whos 查看当前所有变量的详细信息
who_ls 把当前所有变量以列表返回
4 运行LINUX指令

5 运行windows指令
%

二 numpy
1 构造函数
1.np.array(list)列表可以事多维的
2 np.ones() np.zeros() np.full(shape,fill_value,dtype)
dtype 要使用Numpy的数据类型 np.int8 np.float32
3 np.eye(N M K)
4np.linspace(start,stop,num) np.arange(start ,stop,steep)
5 np.random.randint( low,high,size)
6np.random.randn(d0,d1,d2) np.random.normal(loc,scale,size)
7 np.random.random(size)
2 ndarray属性
1 size
2 shape
3 ndim
4dtype
3 索引
1 arr[loc1,loc2,loc3……]
4 切片
1行切片 arr[loc1:lpc2]
2列切片 arr[:,loc1:loc2]
3高维切片 arr[:,:,loc1:loc2]
5 编写
1,arr.reshape(tuple) 变形时 size必须相同
6 级联
1 np.concatenate((arr1,arr2,……),axis)
2注意 再级联的维度上 数据的个数必须一致
3 横向级联 np.hstack((arr1,arr2,……)) 纵向级联 np.vstack
7 切分
1.np.split(indicates_of_sections)
1 在切分的维度上,能整除 可以设置一个整数 表示按该整数等分
2 设置一个[m,n] 表示在该维度上,按照0-m,m-n,n-切分
2 np.hsplit() np.vsplit() 横向切分 纵向切分
8 副本
1 copy 深拷贝
9 聚合
1 聚合默认以整个数组为单位的 注意使用axis 来控制维度
2 普通聚合 arr.sum() arr.mean() std()
np.meadian(arr) 求一个arr的中位数
可以求出一个集合的整个指标
3 空值聚合 np.nansum() np.nanmean()
10 矩阵操作
1 普通±*/
2 矩阵乘法 np.dot(arr1,arr2)
11 广播机制
1 缺失维度补1
2 用已有值填充新值
3 不是所有的numpy对象运算都可以广播 通过一次变形 可以得到相同形状 才能广播
12 排序
1 np.sort() arr.sort() 全部排序
2 np.partion(arr,k) 取k个最小值 或最大值
3 冒泡排序 快速排序 选择排序

三 Series
1创建
1 列表创建 创建的事副本
2 numpy.array 创建 创建的事引用
3 字典创建 字典的键会成为Series的索引
4Series(data,index)
2 索引
1 使用列表的访问 s[index]
2 使用字典的方式访问 s[key]
3 使用Series方式访问 s.loc[key] s.iloc[index] 推荐使用这种办法
3 切片
1 使用索引标签(左必有闭区间) s[key1:key2]
2 使用隐式索引切片(左闭右开区间) s.iloc[loc1:loc2]
4 基本概念
1 基本属性 shape size index values
2 函数 head() tail() isnull() notnull()
3 name属性 表示series对象在dataframe中的列表签
5 运算
1 索引对齐 如果不对齐 补充np.nan
2 add() sub() mul() div() 可以对填充空值做其他处理
3 支持广播
四pandas
1 创建
1 DataFrame(data,index,columns)
2 使用字典构造 一般字典的值事一个数组 成为DataFrame的一列

3 构造一个空字典 在分别赋值每一列数据

4 从文件读取一个DataFrame对象
5 pd.read_csv(step="",headers=[])  step  设置分隔符 headers  设置表头

2 索引
1 字典访问 访问一列df[column]
2 想访问行 df.loc[index]
3 df.loc[index,column] 访问元素
4 其他访问方式 都属于间接访问 只读不写 补改变原来的
5 隐式访问 df.iloc[indexloc,columnloc]
3 运算
1 DataFrame 和 DataFrame运算 索引对齐 不对齐补充空值
2 DataFrame 和 Series运算 注意行列方向 add(axis) sub()
3 DataFrame和整数运算
4 丢失值处理
1 NaN np.nan 和任何数运算都得np.nan
2 np.nan事一个np.float32类型 运算效率高 None是一个object类型 不能运算 需要处理成np.nan才能运算
3 pands会自动把None类型转换成np.nan类型
4 fillna(fill_value,method,axis,limit)
1 fill_value填充的值
2 method 填充方式 不能和fill_value一起使用 bfill ffill
5 dropna(how)
1 how any\all any 有一个空值就过滤一行或一列 all 所有值都为空就过滤
6 drop(labels,axis)
1 labels 要过滤的行或列表签
2 axis 控制方向

1 复杂pandas类型 (多层级索引)
1 构造函数
1 pd.Mulltindex_form_array([[1,1,1],[a,b,c]])
2 pd.Mrlltindex_form_tuples()
3 pd.Mulltindex_form_product([[1,2],[a,b,c]])
2 索引
1 可以使用(level1 index1 ,level2 index2)
2 访问行多级索引的行 df.loc[(level1_index,livel2_index)]
3

3 切片
1 如果只是访问 先把多级索引 变为一极索引 再访问
2如果涉及到写入 借助隐式索引访问 或者做stack unstack 变换再切片

2 级联
	1 pd.concat(objs,axis,join_axes,ignore_index,keys)
	objs  级联的对象列表
	axis  控制级联的方向
	join  inner  内连接 取交集 只保留共同的索引 
	outter   外连接 取并集 保留所有索引
	join_axes  指定索引进行级联 lift.index  左连接 right.index 右连接 index([A,B])自定义连接标签
	ignore-index 重排索引 (索引没有保留价值可以使用)
	keys  如果希望保留重复索引  可以设置分区 变成多层级索引

3 合并
pd.merge()
1 lift\right 只能使用两个表合并
2left_on\right_on 当两个表中 合并的参考列的标签不相同时 用来指定列表签
3 left_index\right_index 当某个表希望以行索引作为合并参考列时使用
4 on 两个表中有多列相同的列表签 可以使用on来指定哪一列或那几列作为合并参考列
5 suffiexes 用来指定列表签相同但是不参与和并参考的列的后缀 通常和on参数一起使用
合并的一些注意事项
1 合并参考列来进行
2 如果两个表中两列数据满足一对一 一对多 多对多的关系的一种 就可以作为合并参考列
3 合并时 尽量使用离散型数据的列作为合并项

1删除重复元素
1 检测重复值 df.duplicated(keep=“first\last”) 只能删除行 要想删除列 要借助drop函数
2 删除重复值 df.drop_duplicates(keep=first\last)
2映射
1 replace(to_replace,value,inplace) 替换数值
1 to_replace; 一个值(单值替换) 列表(多值替换) 字典(多值替换 指定列替换)
2 value;一个值(单值替换,指定列替换) 一个列表(多值替换)
3 inplace True 修改输入 默认不修改
2 rename() 替换索引
1mapper 字典={要查找的值:要替换的值,……}
2 index 字典 替换行索引
3 columns 字典 替换列索引
4 level 指定多级索引的层级
3map() 映射一列
1 字典 一般用于离散型数据处理
1 键值对多 无所谓
2 键值对少 dict.get(x,x)
2 lambda
处理简单数学 业务逻辑
3function
处理 复杂业务逻辑
3异常值检测和过滤
1 空值检测 isnull().any(aixs)
2 异常值检测 : (df>4).any(axis)
3 df.drop(labels = 异常值的索引)
4 df.description() df.info() df.dtypes 常用的参考函数
4排序
1 随机排序 take(np.random.permutation(10))
2 随机抽样 take(np.random.randint(0,100,5))
3 df.sort_values(labels) 根据某一列的值进行排序
4 df.set_index(column_name) 把某一列数据设置为行索引 然后再绘图展示
5数据分组
1 groupby() 接受一个列表签或列表签列表 表示根据那一列或那几列做数据分组
作为分组的列最好时离散型数据 不要使用连续性数据
2 groups()
1 用来查看分组情况 返回一个字典 字典里每一个键值对(该列的某一个内容:该内容对应的行索引列表,}
3 聚合操作
1 通常会使用分组对象进行聚合处理 g = df.groupby([“item”])
2 g.sum() g.mean() g.agg({“price”:“mean”,……})
6 高级聚合
1 apply() 返回一个分组Series 适合于原始表做合并
2transform() 返回一个不分组的Series 行索引于原始表对齐 所以适合于原始表做索引

七 Scipy
1 scipy
1 傅里叶变化 fftpackage.fft2 ifft2 应用于滤波操作
2 图形处理 misc ndimage
1 misc
1 misc.face(gray=True)
2 misc.imrotate()
3 misc.imresize()
4misc.imfillter()
2 ndimage
1 ndimage.rotate()
2 ndimage.zoom()
3 ndimage.shift()
4 中值滤波 高斯滤波
3 维纳滤波 singnal
3数学运算 积分函数
1 scipy.integrate.quad(func,a,b)
4 文件输入输出 scipy.io
1 io.savemat()
2 io.loadmat()
2 绘图
matplotlib.pyplot
%matplotlib inline
1 画板
1 figure = plt.figure(figsize=(),facecolor=())
2图片保存 figure.savefig(facecolor)
2 画布
1 axes = figure.add_subplot(1,1,1)
2 axes = plt.subplot(1,1,1)
3 画布标题
1 axes.set_title()
2 plt.title()
4画布网格线
1 axes.grid(linewidth,color,alpha,axis=‘x,y,both’)
2 plt.grid()
5 坐标轴
1 axes.axis(‘off’)
2 axes.axis(‘equal,scaled’)
6 坐标轴标签
1 axes.set_xlabel() axes.set_ylabel
2 plt.xlabel(fontdict={}) plt.ylabel(fontsize,color,rotation)
7 坐标轴刻度
1 plt.xlim() plt.ylim() 上下边界设置
2 axes.set_xlim() axes.set_ylim() 上下边界设置
3.axes.xticts([刻度列表],[标签列表]),axes.yticts([刻度列表],[标签列表])
4 axes.set_xtickets() axes.set_ytickets() 只能设置刻度
8 坐标轴刻度标签
1 axes.set_xticklabels() axes.set_yticklabels()
9 绘制曲线
1 axes.plot(x,y)
2 plt.plot(x,y)
10 线的外观设置
1 linewidth
2color
3linestyle
4dashes
5marker
6markersize
7markeredagecolor
8markderfacecolor
9markeredagewdith
11 获取线对象
1 lines = plt.plot(x,y1 , x,y2 , x ,y3)
2 lines[0].set_linewidth()
3 lines[0].set_color()@TOC

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值