matplotlib
绘制折线图
plt.plot( x[可迭代对象] , y[可迭代对象] ,
label = 标签 ,
color = 颜色 ,
linestyle = 样式 ,
linewidth = 线粗 ,
alpha = 透明度)
plt.plot(...)
plt.show()
设置图片大小
fig = plt.figure(figsize = (长 , 宽) , dpi = 每英寸点个数)
保存到本地
plt.savefig(路径)
设置中文字体
font = {参数 : 值 , 参数 : 值...}
matplotlib.rc('font' , **font )
或
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname = '字体.tts')
x,y刻度间距 , 命名 , 标题
plt.xticks(可迭代对象 , 别名 ,rotation = 45 , fontproperties = my_font)
plt.yticks(可迭代对象...)
plt.xlabel(x轴命名 , fontproperties = my_font)
plt.ylabel(...)
plt.title(...)
绘制网格
plt.grid(alpha = 透明度0到1)
添加图例
plt.legend(prop = my_font , loc = 位置)
绘制散点图
plt.scatter(x可迭代对象 , y可迭代对象...)
绘制条形图
plt.bar(x可迭代对象 , y可迭代对象 , width = 条宽度...)
绘制横向条形图
plt.barh(x , y , height = 条高度...)
绘制直方图
plt.hist(原数据 , 分组数)
numpy
创建数组
np.array(数组 , dtype = 数据类型)
np.arange(起始值 , 终止值 , 步长)
类型 , 形状 , 展平
array.astype(数据类型)
np.round(array , 小数位)
array.shape
array.reshape(维度元组) 返回新array
array.flatten()
nan与inf
array/0 结果是 nan 或 inf
np.count_nonzero( array ) 统计非零
np.count_nonzero(array != array) 统计nan
np.isnan(array) 统计nan
nan为float类型
常用基础统计函数
array.sum(axis = None)
array.mean(axis = None)
np.median(array , axis = None)
array.max(axis = None)
array.min(axis = None)
np.ptp(array , axis = None) 极差
array.std(axis = None) 标准差
广播
array1[ + - * / ]array2
按shape自右向左或自内向外从第一个不为1的维数开始一一对应相等匹配满足广播运算
轴
shape自左向右分别表示为0轴 , 1轴...
读取文件
np.loadtext(frame文件 ,
dtype ,
delimiter 分隔符 ,
skiprows 跳过前n行 ,
usecols 指定字段 ,
unpack 转置默认false)
转置
array.transpose() ,
array.T ,
array.swapaxes(1,0) 三种转置
切片
array( 数组 , 数组...) 切片取数
np.where(条件 , 成立执行 , 不成立执行)
array.clip(下限 , 上限) 裁剪
拼接
np.vstack(array1 , array2) 垂直拼接
np.hstack(array1 , array2) 水平拼接
随机数
np.random.rand(d0 , d1...dn) d0-dn维度随机浮点数组 , 范围0-1
np.random.randn(...) 标准正态分布
np.random.randint(下限 , 上限shape元组) 随机整数
np.random.uniform(下限 , 上限 , size) 均匀分布
np.random.normal(loc均值 , scale标准差 , size) 正态分布
np.random.seed(种子值) 随机数种子生成随机数
复制
array2 = array1 无拷贝
array2 = array1[:] 仅拷贝view
array2 = array1.copy() 深拷贝
pandas
Series
pd.Series(一维数组 , index = 索引数组)
pd.Series(字典)
Series.astype()
Series.index
Series.value
读取文件
pd.read_csv(文件)
pd.read_sql(sql语句 , 连接)
DataFrame
pd.DataFrame(二维数组 , index = 行索引 , columns = 列索引)
pd.DataFrame(字段:值...) 键对应字段值对应行
DataFrame.shape
DataFrame.dtypes
DataFrame.ndim
DataFrame.head()
DataFrame.tail()
DataFrame.info() 行数 , 列数 , 列索引 , 列非空个数 , 列类型 , 内存占用
DataFrame.describe() 快速统计计数 , 均值 , 标准差 , 最值 , 四分位数
DataFrame.sort_values(by = 排序字段) 排序
取值
DataFrame.[行索引][列索引] 取值
DataFrame.loc[行索引 , 列索引] 取值 , :对字符串索引有效
DataFrame.iloc[行数值索引 , 列数值索引]
DataFrame.((条件1) & | | (条件2))
去重
DataFrame.unique() 去重
DataFrame.nunique() 去重后计数
DataFrame.tolist() 转列表
nan处理
DataFrame.isnull(DataFrame)
DataFrame.notnull(DataFrame)
DataFrame.dropna(axis = 轴 , how = 'all' 或 'any' , inplace = True | False) 删除nan所在行或列
DataFrame.fillna(填充值) 填充nan
np.nan可以直接赋值给DataFrame
连接
DataFrame1.join(DataFrame2) 左连接
DataFrame.merge(DataFrame , on = 连接字段 , how = 连接方式)
left_on , right_on 选择连接字段
'left' 左连接
'right' 右连接
'outer' 外连接
分组
DataFrame.groupby(by = 分组字段)
groupbyobject[字段].count()
基础聚合
sum() mean() median() std() var() min() max()
复合索引
DataFrame.reindex(列表)
DataFrame.set_index(索引1 , 索引2) 复合索引
DataFrame.swaplevel()
时间序列
pd.data_range(start = 起始时间 , end = 结束时间(含) , freq = 'D'日步长)
pd.data_range(start = 起始日期 , period = 总数 , freq = 'M'月步长)
freq取值 : D日 , B工作日 , H时 , T | min分 , S秒 , L |ms毫秒 , U微秒 ,
M月最后一日 , BM月最后一工作日 , MS月第一日 , BMS月第一工作日
pd.todatetime(原序列 , format='')
重采样 : 时间序列由高频转低频为降采样,低频转高频为升采样
DataFrame.resample(重采样频率)
pd.PeriodIndex(year = data['year'] , month = data['month'] , day = data['day'] , hour = data['hour'] , freq = 'H')