matplotlib , numpy , pandas入门

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')

你可能感兴趣的:(matplotlib , numpy , pandas入门)