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')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345