pandas预备知识:python和numpy基础
目录
- 1 python基础
- 1.1 列表推导式与条件赋值
- 1.2 匿名函数与map方法
- 1.3
zip
对象与enumerate
方法
- 2 numpy基础
- 2.1 np数组的构造
- 2.2 np数组的变形与合并
- 2.3 np数组的切片与索引
- 2.4 常用函数
- 2.5 广播机制
- 2.6 向量与矩阵的计算
1 python基础
1.1 列表推导式与条件赋值
列表推导式:[* for i in]
,支持多层嵌套
条件赋值:value = a if condition else b
1.2 匿名函数与map方法
匿名函数: lambda
map
方法:需要list()
转换为列表
1.3 zip
对象与enumerate
方法
zip
函数将多个可迭代对象打包成一个元组构成的可迭代对象,通过tuple
和list
可以获得相应结果。
enumerate
在迭代时绑定迭代元素的遍历序号。
*zip
可进行解压。
2 numpy基础
2.1 np数组的构造
-
一般方法:
np.array([])
-
等差序列
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
,一般设置起点、终点(包含)和样本个数。
np.arange([start,] stop[, step,], dtype=None, *, like=None)
,一般设置起点、终点(不包含)和步长。
- 特殊矩阵
zeros
:全零矩阵
eye
:单位矩阵,可设置偏移主对角线量
full
:指定值填充矩阵
- 随机矩阵
np.random
rand
:0-1均匀分布的随机数组
randn
: 标准正态分布的随机数组
randint
: 随机整数组
choice
:随机列表抽样
permutation
:打散原列表
2.2 np数组的变形与合并
转置:.T
上下合并:r_
左右合并:c_
维度变换:reshape
,order=\'C/F\'
表示逐行/列读取,维度空缺使用-1
2.3 np数组的切片与索引
支持使用slice
类型的start:end:step
切片,也可直接传入列表指定某个维度的索引进行切片。
可以利用np.ix_
在对应维度上使用布尔索引,此时不能使用slice切片。
一维数组可直接进行布尔索引,无需np.ix_
。
2.4 常用函数
where
条件函数
指定满足条件与不满足条件位置对应的填充值
nonzero,argmax,argmin
nonzero
返回非零数的索引,argmax
, argmin
分别返回最大和最小数的索引
-
any, all
any
:序列至少存在一个True
或非零元素时返回True
,否则返回False
all
:序列元素全为True
或非零元素时返回True
,否则返回False
-
cumprod,cumsum,diff
cumprod,cumsum
分别表示累乘和累加函数,返回同长度数组。diff
表示与前一元素做差,返回长度比原数组少1。 -
统计函数
常用统计函数:max, min, mean, median, std, var, sum, quantile
通过array.max()
调用,其中quantile
为全局方法,通过np.quantile
调用。
略过缺失值可使用相应的nan*
方法,如nanmax
。
协方差和相关系数:np.cov(s1, s2)
,np.corrcoef(s1, s2)
2.5 广播机制
NumPy官方文档
-
标量与数组
概念上将标量拉伸到数组大小,再逐个运算
实际上直接使用原标量运算,内存和计算效率更高
-
数组与数组
操作两个数组时,NumPy按位比较维度形状。
两个维度兼容的情况:维度相同或其中一个维度为1
2.6 向量与矩阵的计算
向量内积:dot
向量范数和矩阵范数:np.linalg.norm
矩阵乘法:@
参考:
joyful pandas教程 https://github.com/datawhalechina/joyful-pandas
NumPy官方文档 https://numpy.org/doc/stable/user/basics.broadcasting.html
来源:https://www.cnblogs.com/ikventure/p/15968443.html
本站部分图文来源于网络,如有侵权请联系删除。