【pandas】第一章 预备知识

【pandas】第一章 预备知识

Datawhale提供的pandas学习的开源地址:Joyful Pandas
https://datawhalechina.github.io/joyful-pandas/build/html/%E7%9B%AE%E5%BD%95/ch1.html


一、Python基础

1. 列表推导式与条件赋值

列表推导式:

 [* for i in *] 。
 其中,第一个 * 为映射函数,其输入为后面 i 指代的内容,第二个 * 表示迭代的对象。

在这里插入图片描述
多层嵌套:第一个 for 为外层循环,第二个为内层循环
在这里插入图片描述
另一个实用的语法糖是带有 if 选择的条件赋值,其形式为value = a if condition else b :
在这里插入图片描述
例子:截断列表中超过5的元素,即超过5的用5代替,小于5的保留原来的值:
在这里插入图片描述

2. 匿名函数与map方法

匿名函数
在这里插入图片描述

但上面的用法其实违背了“匿名”的含义,事实上它往往在无需多处调用的场合进行使用,例如上面列表推导式中的例子,用户不关心函数的名字,只关心这种映射的关系:

在这里插入图片描述
对于上述的这种列表推导式的匿名函数映射, Python 中提供了 map 函数来完成,它返回的是一个 map 对象,需要通过 list 转为列表:
在这里插入图片描述
对于多个输入值的函数映射,可以通过追加迭代对象实现:
在这里插入图片描述

3. zip对象与enumerate方法

zip函数能够把多个可迭代对象打包成一个元组构成的可迭代对象,它返回了一个 zip 对象,通过 tuple, list 可以得到相应的打包结果:
在这里插入图片描述
循环迭代的时候使用到 zip 函数:
在这里插入图片描述
enumerate 是一种特殊的打包,它可以在迭代时绑定迭代元素的遍历序号:
在这里插入图片描述
等价于下述zip方式

for index, value in zip(range(len(L)), L):
    print(index, value)

当需要对两个列表建立字典映射时,可以利用 zip 对象:
在这里插入图片描述
解压
在这里插入图片描述

二、Numpy基础

1. np数组的构造

迭代构造
在这里插入图片描述
特殊矩阵:zeros, eye, full
在这里插入图片描述
随机矩阵: np.random

最常用的随机生成函数:rand, randn, randint, choice 分别代表
0-1均匀分布的随机数组、标准正态的随机数组、随机整数组和随机列表抽样:

rand:0-1均匀分布的随机数组
在这里插入图片描述
对于服从区间 a 到 b 上的均匀分布可以如下生成:
在这里插入图片描述
生成了 N(0,I) 的标准正态分布
在这里插入图片描述
对于服从方差为 σ2 均值为 μ 的一元正态分布可以如下生成:
在这里插入图片描述
randint 可以指定生成随机整数的最小值最大值(不包含)和维度大小:
在这里插入图片描述
choice 可以从给定的列表中,以一定概率和方式抽取结果,当不指定概率时为均匀采样,默认抽取方式为有放回抽样:

无放回抽样:replace=True
有放回抽样:replace=False
在这里插入图片描述
当返回的元素个数与原列表相同时,等价于使用 permutation 函数,即打散原列表:
在这里插入图片描述
最后,需要提到的是随机种子,它能够固定随机数的输出结果:
在这里插入图片描述

2. np数组的变形与合并

【a】转置: T
在这里插入图片描述

【b】合并操作: r_, c_:
对于二维数组而言, r_ 和 c_ 分别表示上下合并和左右合并:
在这里插入图片描述
【c】维度变换: reshape

注意对order的理解
在这里插入图片描述

3. np数组的切片与索引

数组的切片模式支持使用 slice 类型的 start: end:step 切片,还可以直接传入列表指定某个维度的索引进行切片

取出不包括最后一行的,第0列和第2列:
在这里插入图片描述
此外,还可以利用 np.ix_ 在对应的维度上使用布尔索引,但此时不能使用 slice 切片:
在这里插入图片描述

4. 常用函数

【a】 where
where 是一种条件函数,可以指定满足条件与不满足条件位置对应的填充值:
在这里插入图片描述
【b】 nonzero, argmax, argmin
这三个函数返回的都是索引, nonzero 返回非零数的索引, argmax, argmin 分别返回最大和最小数的索引:
在这里插入图片描述
【c】 any, all
any 指当序列至少 存在一个 True 或非零元素时返回 True ,否则返回 False
all 指当序列元素 全为 True 或非零元素时返回 True ,否则返回 False
【d】 cumprod, cumsum, diff
cumprod, cumsum 分别表示累乘和累加函数,返回同长度的数组, diff 表示和前一个元素做差,由于第一个元素为缺失值,因此在默认参数情况下,返回长度是原数组减1
在这里插入图片描述
【e】 统计函数
常用的统计函数包括 max, min, mean, median, std, var, sum, quantile ,其中分位数计算是全局方法,因此不能通过 array.quantile 的方法调用:

注意:但是对于含有缺失值的数组,它们返回的结果也是缺失值,如果需要略过缺失值,必须使用 nan* 类型的函数,上述的几个统计函数都有对应的 nan* 函数。

在这里插入图片描述
对于协方差和相关系数分别可以利用 cov, corrcoef 如下计算:
在这里插入图片描述

5. 广播机制

在这里插入图片描述

6. 向量与矩阵的计算

【a】向量内积: dot
在这里插入图片描述
在这里插入图片描述

三、练习

Ex1:利用列表推导式写矩阵乘法
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

补漏

  1. reshape中注意对order的理解:
    order=‘C’ 按照行读取和填充
    order=‘F’ 按照列读取和填充
  2. n np.ix_ 在对应的维度上使用布尔索引,但此时不能使用 slice 切片
  3. array. cumprod, cumsum, diff: 累乘、累加、差值
  4. 统计函数都有对应的 nan* 函数
  5. r_ 和 c_ 分别表示上下合并和左右合并

思考

在本篇中,本队思考了这样一个问题,对于axis多维度的理解:
通俗来讲,逐个拿出或统计也就是按照维度下标逐一进行,如从axis=0,…,-1依次取出或计算第0个下标,到第-1个下标

在这里插入图片描述
像这个二维的,(2,3)其索引方式可以表示成上图的形式,axis=0就是从第0个下标开始计算或统计,也就是从0到1;axis=1从第1个下标开始算,也就是从0到1到2

因此,在按照axis=0进行求和时我们会得到按列进行求和的结果,00+10,01+11,02+12

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿芒Aris

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

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

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

打赏作者

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

抵扣说明:

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

余额充值