Python数据分析与展示笔记整理

一、数据

1. 一维数据:列表和数组——列表和集合类型

	* 列表:数据类型可以不同
	* 数组:数据类型必须相同
2. 二维数据和多维数据只是在数据维度进行拓展——列表类型
3. 高维数据:字典类型或数据表示格式(json)

二、NumPy 广播功能函数
1. axis(数据的维度)和rank(轴的数量)
2. 对象属性

	* .ndim 得到rank
	* .shape
	* .size 对象个数
	* .dtype
	* .itemsize 每个元素的大小 比如列表的长度
3. 元素的类型

	* bool
	* intc 等同于int
	* intp
	* int8-64
	* uint8-64
	* float16-64
	* complex64-128
4. 数组创建方法

	* np.array(list) 参数为数组
	* .arange() 类似range 元素从0-n-1
	* .ones(shape) 生成全1的数组,shape的输入格式为(a,b,c)
	* .zeros
	* .full(shape,val)生成一个全为val,形状为shape的数组
	* .eye(n)创建一个正方的n*n单位矩阵,对角线为1,其余为0
	* .ones-like(a) 生成一个形状为a的全1的数组
	* .zeros_like(a)
	* .full_like(a,val)
	* .linspace(first,last,分成的个数,endpoint=True/False?包含最后一个元素进行计算:不包含)     根据起止等间距地填充数据
	* .concatenate()将两个或多个数组合并一个新的数组
5. 数组的维度表换

	* .reshape(shape) 产生一个新的数组
	* .resize(shape) 在原数组上进行修改
	* .swapaxes(ax1,ax2)维度交换
	* .flatten()对数组进行降维,返回折叠后的一位数组
6. 数组的类型转换

	* astype() 改变数据的类型
7. 数组向列表的转换

	* .tolist()
8. 数组的索引和切片

	* a[begin:last:step]
	* 切片 a[:,1:3,:]每个维度都可以进行切片
	* a[:,:,::2]每个维度也可以进行跳跃切片
9. 数组与标量之间的运算

	* .mean()平均值
	* .abs()计算各个元素绝对值
	* .fabs()各个元素的绝对值
	* .sqrt各个元素的平方根
	* square各个元素的平方
	* log,log10,log2 自然对数,10底对数
	* ceil 和 floor
	* rint 计算各个元素四舍五入的值
	* modf 将数组各元素的小数和整数部分以两个独立数组形式返回
	* cos,cosh
	* exp各元素的指数值
	* sign 计算数组各元素的符号值 1(+),0,-1(-)
10. 加减乘除 元素之间分别计算

	* maximum(x,y) fmax() 元素级的最大值计算

		* >> np.maximum([-2, -1, 0, 1, 2], 0)
		* array([0, 0, 0, 1, 2])
	* mod(x,y)元素级的模运算
	* copysign(x,y) 将数组y各元素符号赋给x
	* <>比较产生布尔数组
11. 统计函数

	1. sum(a,axis=None)根据给定轴axis计算数组a相关元素之和
	2. mean
	3. average(a,axis=None,weight=None)weight表示权重,用一个列表表示[1,2,3]
	4. std
	5. var
	6. min,max
	7. argmin 计算数组a元素最小值降一维的下标
	8. unravel_index(index,shape)根据shape将一维下标index转换成多维下标
	9. ptp 计算数组中最大值和最小值的差
	10. median 计算数组a中元素的中位数
12. 梯度函数

	1. gradient

三、数据的存储
1. CSV文件存取

	* CSV是一种常见的文件格式,comma-separated Value
	* 一维二维数据的存储 
		* .savetxt(frame,array,fmt="'%.18e",delimiter=None)
			* frame:文件、字符串或产生器
			* array:存入文件的数组
			* fmt 写入文件的格式
			* 分割字符串,默认为任何空格,用什么分割?
		* .loadtxt(frame,dype=np.float,delimiter=None,unpace=False)
			* dtype:数据类型
			* unpack:如果True,读入属性将分别写入不同变量
	* 多维数据的存取
		* tofile(frame,sep=‘’,format='')
		* fromfile(frame,dytpe=float,count=-1,sep='')
			* count表示读取元素个数,-1表示全部
			* sep表示数据分割字符串,如果为空,写入文件为二进制
	* 便捷方法
		* save(frame,array) 或者savez
			* frame 扩展名为.npy
		* load(frame)
3. 随机数函数库
	* .rand(shape)创建随机数数组,浮点数[0,1)
	* randn(shape) 标准正态分布
	* randint(low,high,shape)
	* seed(s)随机数种子
	* shuffle(a)根据数组a的第1轴随机排列数组a,改变数组a
	* permutation(a)根据数组a的第1轴产生一个新的乱序数组,不改变数组a
	* choice(a,size,replace,p)
		* 从一维数组a中以概率p随机抽取元素,
		* replace表示替换新的元素,这里可以通过a这个参数进行函数运算
	* uniform(low,high,size)均匀分布数组
	* normal(loc,scale,size)
		* loc均值
		* scale标准差
		* size形状
	* poisson(lam,size)
		* 随机事件发生率
		* 形状

四、Matplotlib.pyplot

1. pyplot绘图区域
	* plt.subplot(nrows,ncols,plot_number)
		* 可以省略,
		* 在绘图之前使用
2. plot函数
	1. plot(x,y,format_string,**kwargs)
		1. format_string控制格式的字符串
			1. 颜色:‘b’,'g','r',‘0.8’灰度值
			2. 曲线风格:‘-’,‘-·’
			3. 标记符号‘x’
			4. 标记颜色:markerfacecolor
		2. **kwargs更多的plot
3. 中文显示
	1. rcParams['font,family']='SimHei' 全局字体
		1. font.family
		2. font.style
		3. font.size
	2. fontproperties,fontsize
4. 其他函数
	1. xlabel
	2. ylabel
	3. title
	4. annotate(文本,xy=(),xytext=()) 在图形中增加箭头注解
			1. 箭头的开始位置,结束位置(文本开始位置)
			2. 2,1代表位置
	5. grid网格
	6. text(2,1,文本,fontsize) 在任意位置增加文本
5. 子绘图区域
	1. subplot2grid((3,3),(1,0),(colspan=2))整体大小,开始位置,延伸区域
	2. subplot(gs[0,:])
6. 基础图标函数
	1. plot(x,y,format_string)绘制坐标图
	2. boxplot(data,notch,postion)箱型图
	3. bar(left,hegiht,width,bottom)条形图
	4. barh(width,bottom,left,height)横向条形图
	5. polar(theta,r)
	6. pie(data,explode)
	7. hist直方图
	8. scatter(x,y)散点图

五、Pandas

1. ​Series
	1. 一组数据及其相关的索引构成
	2. Series的创建
		1. Python列表
		2. 标量值
			1. pd.Series(25,index=['a','b']) 产生两个不同index,值为25的Series
		3. 字典 index从字典中进行选择操作
			1. pd.Series({},index=[])一个字典,如果index中有多多余的值,创建NaN数据
		4. ndarray 索引可以通过ndarray类型创建
			1. pd.Series(np.arange())
			2. pd.Series(np.arrange(),index=np.arange(9,4,-1))
		5. 其他函数 range()
	3. Series基本操作
		1. index,values
			1. Series(value,index)
			2. b.index
			3. .values
			4. b['c','b'] 根据字典查找Series
		2. 类似ndarray
			1. 【】切片
			2. b[b>b.median()]
		3. 类似Python
			1. 自定义索引
			2. 保留字in
			3. .get(key,填充值)
	4. 对其操作
		1. 加减乘除在 相同索引上进行
		2. .name 
			* .name
			* .index.name
2. DataFrame
	1. 多列数据 column和index
	2. 创建
		1. 二维ndarray
			* .DataFrame(np.arange(10).reshape(2,5))
		2. 从一维ndarray对象字典创建
			* dt={'one':pd.Series([1,2,3],index=['a','b','c'])}
			* d=DataFrame(dt,index=[])
	3. 重新索引 
		1. .reindex(index[])
			1. 可以通过新的index顺序排序
		2. .reindex(column=[])
			1. 可以通过新的column顺序排序
		3. 其他参数
			1. fill_value 填补缺失位置的值
			2. method 填充方法
				* ffill向前填充
				* bfill先后填充
				* 填充就是复制数据
			3. limit 最大填充量
			4. copy 
				1. True 生产新的对象
				2. False 新旧相等不复制
		4. 索引类型的常用方法.index
			1. .append(idx) 连接另一个index对象产生index对象
			2. .diff(a) 计算差集,产生新的index
			3. .intersection(a)计算交集
			4. .union(a) 计算并集
			5. .delete(x) 删除位置x的元素
			6. .insert(a,b)在a位置增加一个元素b 
	4. 删除
		1. drop(axis=0,'')
			1. 需要指定axis和参数名
	5. 加减乘除
		1. add(b,参数)
		2. sub(b)
		3. mul(b)
		4. div(b)
		5. 可以指定运算轴,axis,可以填充NANfiill_value

你可能感兴趣的:(Python学习,Python数据分析与展示,北京理工大学,Mooc,嵩天)