numpy和pandas


typora-copy-images-to: upload


01 numpy的基本属性与方法

1. numpy数组的创建

  • 直接使用array转换列表
  • zeros(shape, dtype)创建全部为0的数组
  • ones(shape, dtype)创建全部为1的数组
  • full(shape, value, dtype)创建值全部为某一个数字的数组
  • arange(始,终,步长).reshape(shape)创建某个范围规定形状的数组
  • random.random(shape)创建指定形状的0到1的随机小数
  • 使用eye(value,dtype) 创建单位数组,对角线是1,并且是正方形. value是正方形长度
  • diag(list, k=0) 创建指定对角线的单位矩阵,k>0时候往上移动,k<0往下移动

例子: array转换:

image-20210131203547216

例子:zeros 和 ones 生成:

image-20210131204653926

例子:full生成全是某一个数字的数组:

image-20210131204930533

例子:arange().reshape()生成有序整数列的数组:

image-20210131205429346

例子:random.random()生成指定形状的0到1的随机数组

image-20210131205634007

例子: eye创建单位矩阵

image-20210131210915712

例子:使用diag()创建指定对角线的单位矩阵

image-20210131211618316

2.numpy(array)的属性

  • ndim 查看维度

  • shape 查看形状

  • size 查看有多少种元素

  • dtype 查看数据类型

例子:全部演示

image-20210131212040357

3.数组的索引操作

  • 一维数组索引取值与列表一样
  • 二维数组索引取值有两种方法
  • 多维数组以此类推

image-20210131220733359

image-20210131220749424

  • 迭代数组的行列
    • 这里有个知识点 array.transpose() 等于 array.T 即把数组转置过来

image-20210131221533292

  • 迭代数组每个元素
    • array.flatten() ----把数组的多行转换为一行 等于 array.flat

image-20210131222000709

4.numpy的基本运算

  • 与MATLAB不一样的是,在numpy中, + - * /都是直接作用于对应的元素
    • 而想要实现矩阵乘法则是使用dot()函数

image-20210201203106256

image-20210201203428137

  • numpy的自带三角函数运算但是注意这里自动采用弧度制

image-20210201203923173

  • numpy判断元素的大小

image-20210201220449841

5.numpy的合并

  • 垂直合并和横向合并(vstackhstack)

image-20210201221704920

  • 实现单排横向数组变成竖直状态

image-20210201222606427

没注意,上面打错了,注释里面多打印了一个int.

image-20210201223352653

6.numpy计算最值,平均数,标准差,极差,方差

  • 最值

image-20210201224235249

  • 平均数 中位数 方差 极差 标准差 累加和

image-20210201230056198

  • 累加和

image-20210201230410424

  • argmix() argmax() 返回最大值的索引,不加轴时候,按照列表索引,加时候,每一轴索引

image-20210202075752360

7.其他一些比较常用函数

  • sort() 默认逐行排序,可以加轴
    linspace(始,终,端点数)
    clip(array,min,max) 小于min的值用min表示,大于max的值用max表示

image-20210202081225647

image-20210202081248500

02 pandas的基本属性与方法

1.读取文件和显示文件信息

  • **使用pd.read_csv(path,encoding="")读取文件,这里最好用gbk,因为csv文件默认gbk编码 **
  • 使用df.head(number)显示前number排数据.
  • 使用df.info()显示数据表详细信息

image-20210202095712493

显示详细信息

image-20210202095813788

2.pd.Series(object,index="",columns="") 简单叙述就是竖直的列表有索引 索引用列表接收

  • 可以转化列表
    • 把列表的每一个元素作为行内容
  • 可以转化字典
    • 把字典的key当成行索引,value当成行内容

image-20210202131707531

  • 同时Series()还可以类似字典可以通过名字读取值,类似列表通过所以取值

image-20210202131958819

3.Series()的文本处理

有时候文本开头结尾可能含有空格,我们查找时候不容易注意,然后就收到报错,例子:

image-20210202134231037

索引 "name"报错,因为仔细看其实name后面有空格.因此采用str.strip()

  • str.strip() 去除字符两端的空格

image-20210202134832105

前面忘记写了,pandas有 index和columns属性,分别是行索引和列索引

  • 结合相关条件可以进行条件筛选

image-20210202135111498

4.DataFrame(data,index,columns)的运用

1.DataFrame()的创建

  • 通过read_csv()读取文件,返回df格式

image-20210202135832443

  • 通过转化字典,key作为列索引,value作为行索引

image-20210202135959686

  • 通过转化列表 列表的嵌套列表作为行内容,索引自定义

image-20210202140317533

5.DataFrame的数据处理

1.数据的增删改查

类似字典的增删改查

image-20210202142749938

image-20210202143357433

image-20210202143510070

  • 删除

image-20210202143653217

2.条件筛选

  • 可以使用条件语句加 |&

image-20210202144316962

上述意思是显示满足"residual sugar">5.0 且 “total sulfur dioxide” < 180.0的前8排

image-20210202144546716

上述意思是显示满足"residual sugar">5.0 且 “free sulfur dioxide” < 30.0的前8排

  • 可以求和等操作

image-20210202145020298

3.缺失值的处理

  • 处理缺失值有两种方式:

    • 删除该行
    • 使用numpy.nan填充缺失值
  • 检测缺失值 pd.isnull(df)
    pd.isnull(df[“columns”])
    有则返回True 无则返回False

image-20210202150148898

  • 删除缺失值的行

df.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
subset 作用是指定某一列,如果该列有缺失值,就删除有缺失值的行.未指定就默认删除所有列的缺失值行
how 等于all时值所有都是缺失值才删除
thresh 可以给值,比如3 意思是,出现了3次缺失值在删除

image-20210202151746436

只删除了"chlorides"列的缺失值

  • 填充缺失值 fillna(value=)
    • 单列填充

image-20210202152425464

所有填充

image-20210202152534550

4.转化Series()

image-20210202153703992

5.loc[“行索引”,“列索引”]

image-20210202160715012

6.iloc(n,n)接收纯数字

image-20210202160853047

01 numpy的基本属性与方法

1. numpy数组的创建

  • 直接使用array转换列表
  • zeros(shape, dtype)创建全部为0的数组
  • ones(shape, dtype)创建全部为1的数组
  • full(shape, value, dtype)创建值全部为某一个数字的数组
  • arange(始,终,步长).reshape(shape)创建某个范围规定形状的数组
  • random.random(shape)创建指定形状的0到1的随机小数
  • 使用eye(value,dtype) 创建单位数组,对角线是1,并且是正方形. value是正方形长度
  • diag(list, k=0) 创建指定对角线的单位矩阵,k>0时候往上移动,k<0往下移动

例子: array转换:

image-20210131203547216

例子:zeros 和 ones 生成:

image-20210131204653926

例子:full生成全是某一个数字的数组:

image-20210131204930533

例子:arange().reshape()生成有序整数列的数组:

image-20210131205429346

例子:random.random()生成指定形状的0到1的随机数组

image-20210131205634007

例子: eye创建单位矩阵

image-20210131210915712

例子:使用diag()创建指定对角线的单位矩阵

image-20210131211618316

2.numpy(array)的属性

  • ndim 查看维度

  • shape 查看形状

  • size 查看有多少种元素

  • dtype 查看数据类型

例子:全部演示

image-20210131212040357

3.数组的索引操作

  • 一维数组索引取值与列表一样
  • 二维数组索引取值有两种方法
  • 多维数组以此类推

image-20210131220733359

image-20210131220749424

  • 迭代数组的行列
    • 这里有个知识点 array.transpose() 等于 array.T 即把数组转置过来

image-20210131221533292

  • 迭代数组每个元素
    • array.flatten() ----把数组的多行转换为一行 等于 array.flat

image-20210131222000709

4.numpy的基本运算

  • 与MATLAB不一样的是,在numpy中, + - * /都是直接作用于对应的元素
    • 而想要实现矩阵乘法则是使用dot()函数

image-20210201203106256

image-20210201203428137

  • numpy的自带三角函数运算但是注意这里自动采用弧度制

image-20210201203923173

  • numpy判断元素的大小

image-20210201220449841

5.numpy的合并

  • 垂直合并和横向合并(vstackhstack)

image-20210201221704920

  • 实现单排横向数组变成竖直状态

image-20210201222606427

没注意,上面打错了,注释里面多打印了一个int.

image-20210201223352653

6.numpy计算最值,平均数,标准差,极差,方差

  • 最值

image-20210201224235249

  • 平均数 中位数 方差 极差 标准差 累加和

image-20210201230056198

  • 累加和

image-20210201230410424

  • argmix() argmax() 返回最大值的索引,不加轴时候,按照列表索引,加时候,每一轴索引

image-20210202075752360

7.其他一些比较常用函数

  • sort() 默认逐行排序,可以加轴
    linspace(始,终,端点数)
    clip(array,min,max) 小于min的值用min表示,大于max的值用max表示

image-20210202081225647

image-20210202081248500

02 pandas的基本属性与方法

1.读取文件和显示文件信息

  • **使用pd.read_csv(path,encoding="")读取文件,这里最好用gbk,因为csv文件默认gbk编码 **
  • 使用df.head(number)显示前number排数据.
  • 使用df.info()显示数据表详细信息

image-20210202095712493

显示详细信息

image-20210202095813788

2.pd.Series(object,index="",columns="") 简单叙述就是竖直的列表有索引 索引用列表接收

  • 可以转化列表
    • 把列表的每一个元素作为行内容
  • 可以转化字典
    • 把字典的key当成行索引,value当成行内容

image-20210202131707531

  • 同时Series()还可以类似字典可以通过名字读取值,类似列表通过所以取值

image-20210202131958819

3.Series()的文本处理

有时候文本开头结尾可能含有空格,我们查找时候不容易注意,然后就收到报错,例子:

image-20210202134231037

索引 "name"报错,因为仔细看其实name后面有空格.因此采用str.strip()

  • str.strip() 去除字符两端的空格

image-20210202134832105

前面忘记写了,pandas有 index和columns属性,分别是行索引和列索引

  • 结合相关条件可以进行条件筛选

image-20210202135111498

4.DataFrame(data,index,columns)的运用

1.DataFrame()的创建

  • 通过read_csv()读取文件,返回df格式

image-20210202135832443

  • 通过转化字典,key作为列索引,value作为行索引

image-20210202135959686

  • 通过转化列表 列表的嵌套列表作为行内容,索引自定义

image-20210202140317533

5.DataFrame的数据处理

1.数据的增删改查

类似字典的增删改查

image-20210202142749938

image-20210202143357433

image-20210202143510070

  • 删除

image-20210202143653217

2.条件筛选

  • 可以使用条件语句加 |&

image-20210202144316962

上述意思是显示满足"residual sugar">5.0 且 “total sulfur dioxide” < 180.0的前8排

image-20210202144546716

上述意思是显示满足"residual sugar">5.0 且 “free sulfur dioxide” < 30.0的前8排

  • 可以求和等操作

image-20210202145020298

3.缺失值的处理

  • 处理缺失值有两种方式:

    • 删除该行
    • 使用numpy.nan填充缺失值
  • 检测缺失值 pd.isnull(df)
    pd.isnull(df[“columns”])
    有则返回True 无则返回False

image-20210202150148898

  • 删除缺失值的行

df.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
subset 作用是指定某一列,如果该列有缺失值,就删除有缺失值的行.未指定就默认删除所有列的缺失值行
how 等于all时值所有都是缺失值才删除
thresh 可以给值,比如3 意思是,出现了3次缺失值在删除

image-20210202151746436

只删除了"chlorides"列的缺失值

  • 填充缺失值 fillna(value=)
    • 单列填充

image-20210202152425464

所有填充

image-20210202152534550

4.转化Series()

image-20210202153703992

5.loc[“行索引”,“列索引”]

image-20210202160715012

6.iloc(n,n)接收纯数字

image-20210202160853047

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

捕获一只小肚皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值