知识点-numpy,pandas和matplotlib

参考笔记:

一、numpy

1、创建ndarray(可以是多维的但是数据类型必须一致):np.array()
#举例
np.array(range(100))

*T 转置
*dtype 类型
*size 大小
*ndim 维数
*shape 维度大小(返回元组)

#reshape 改变排列
#arange 相当于列表的range,并可以支持步长且可以是小数步长
#zeros 创建多维需要传入一个元组(3,5)
在这里插入图片描述
*多维数组切片,比如[1:3][1:3],联系两个切片不是先横切再后切,这是相当于两个横切,所以建议多写在一起[1:3,1:3]
在这里插入图片描述
#判断和、或、非,这里是用& | ~
在这里插入图片描述
#花式索引切片里面再加个[]包起来表示
在这里插入图片描述
#abs绝对值,sqrt开根号,ceil向上取整,floor向下取整,round四舍五入,trunc向0取整,modf小数返回两个值一个小数点前整数,一个是小数点后的数的两个数组,nan表示缺失不是个数(另外0/0值也是nan),inf表示无穷大的数(除以0)
#maximum 取两个数组对应位置的最大数形成数组
举例:不是nan的取出,结合布尔型索引 a[~np.isnan(a)]
在这里插入图片描述
#cumsum返回的还是一个数组,各位置值对应前面位置的累积和
在这里插入图片描述
另例子:import random
random.randint(1,10) 表示随机整数, random.choice([1,5,7,10]) 随机取值, random.uniform(1.0,10.0) 随机小数, random.random() 返回0-1间随意数, random.shuffle([1,5,7,10]) 随机打乱列表,
#numpy结合random一样,np.random.randint(1,10,3)表示随机产生3个各1-10的数组, np.random.randint(1,10,(3,5))表示随机产生3行5列各1-10的二维数组,rand==random
还有randn这是返回一个随机浮点数,大概-1.96~+1.96之间
在这里插入图片描述

二、pandas

1、Series
#创建可以列表,字典和数组进行创建 pd.Series(np.arange(10))
#pd.Series([3,5,6,2],index=list(“abcd”)) 注意Series 大写第一位,另外index索引是个列表
#Series取值 a=pd.Series([3,5,6,2],index=list(“abcd”)) a.index 和 a.values
#Series像列表与字典的结合体,可以两种索引字典取值和切片取值 a=pd.Series([3,5,6,2],index=list(“abcd”)) a[‘b’]=a[1]
在这里插入图片描述
在这里插入图片描述

#拿标签做切片是包括末尾标签的 a=pd.Series([3,5,6,2],index=list(“abcd”)) a[‘a’:‘c’]
在这里插入图片描述
#因为不确定你这是标签还是下标所以乱,这可以用iloc和loc(Series切片索引是以标签进行解释,可以用iloc改下标解释)
在这里插入图片描述
#如果两个标签不完全相同,则运算没有相同标签的运算值为NaN,然后避免结果值为nan可以采用fill_value=0方法
在这里插入图片描述
#缺失值处理也很重要
在这里插入图片描述

2、DataFrame
#dataframe每一列数据类型相同就行
在这里插入图片描述

#dataframe表格属性 df.index 行索引, df.columns 列索引, df.values 值。
#df.T 倒置 df.describe() 描述
#行索引起名 df.index.name 列索引改名 df.rename(columns{旧名:新名})
#df.shift() 向上下移动行传-1或1,填充nan
#df.rolling() 整体窗口多少依次向下滚动,df.rolling(5) .mean() 依次向下5各依次滚动再求平均值
df.groupby().get_group() 分组
df.merge() 多数组合并
在这里插入图片描述
#困惑点,dataframe直接进行取值df[0]这样不行行索引,必须先有列df[“aaa”][0],但是切片选取就可以先用行df[0:2,“aaa”]
$还有df[“aaa”]取一列出来相当于是一个series,所以后面再切相当于只能是标签,所以取下标对应值要结合iloc再切
在这里插入图片描述
#布尔型索引与series布尔型不一样,series布尔型是直接丢掉flase值,而dataframe每行每列可能多个true,这边是吧flase变成nan
另外dataframe各列数据类型不一样,所以用df[df<10]可能出错,因为假如里面也有str报错,需要切掉str才能使用赋值
在这里插入图片描述
#两dataframe运算也是讲究行索引列索引对其
#axis=1表示对列操作 ,how=“any” 表示行有任意一个nan, how=“all” 表示行都是nan
在这里插入图片描述
#排序,可以按照索引和列两张排序,sort_index(ascending=Ture或者Flase)一个升序一个降序
在这里插入图片描述
多重索引
在这里插入图片描述
#header=None就是不把第一行当成列索引,names是自己单独给列索引起名
index_col 制定某列作为行索引,parse_dates 转化为时间格式,一般可以用于行索引传列

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、matplotlib
在这里插入图片描述

#plt.plot([3,6,8,11],“ro”) 一个列表时候x轴值是0,1,2,3…
plt.plot([2,4,5,7],[3,6,8,11],“r*”) 或多个一起写plt.plot([2,4,5,7],[3,6,8,11],“r*”,[2,4,5,7],[3,6,8,11],“gx-”) 这个画图 “gx-” 第一个颜色第二个图标形状第三个串联线类型
在这里插入图片描述
#dataframe也支持画图 df[“aaa”].plot() plt.show() 某列画图
在这里插入图片描述
#一个画布画多图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42357472/article/details/84182024