Python 基础
- append() 方法用于在列表末尾添加新的对象。
- 列表推导式进行写法上的简化:[* for i in ]。其中,第一个为映射函数,其输入为后面i指代的内容,第二个*表示迭代的对象。
3.列表表达式还支持多层嵌套,如下面的例子中第一个for为外层循环,第二个为内层循环
除了列表推导式,另一个实用的语法糖是条件赋值,其形式为value = a if condition else b:
- 匿名函数与map方法
有一些函数的定义具有清晰简单的映射关系,例如my_func函数,这时候可以用匿名函数的方法简洁地表示:
4.zip函数能够把多个可迭代对象打包成一个元组构成的可迭代对象,它返回了一个zip对象,通过tuple, list可以得到相应的打包结果:
Numpy 基础
- np数组的构造
最一般的方法是通过array来构造:
2.特殊矩阵
3.随机矩阵:np.random
最常用的随机生成函数为rand, randn, randint, choice,它们分别表示0-1均匀分布的随机数组、标准正态的随机数组、随机整数组和随机列表抽样:
4. np数组的变形与合并
5.维度变换:reshape
reshape能够帮助用户把原数组按照新的维度重新排列。在使用时有两种模式,分别为C模式和F模式,分别以逐行和逐列的顺序进行填充读取。
由于被调用数组的大小是确定的,reshape允许有一个维度存在空缺,此时只需填充-1即可:
下面将n*1大小的数组转为1维数组的操作是经常使用的:
6. np数组的切片与索引
数组的切片模式支持使用slice类型的start🔚step切片,还可以直接传入列表指定某个维度的索引进行切片:
还可以利用np.ix_在对应的维度上使用布尔索引,但此时不能使用slice切片:
当数组维度为1维时,可以直接进行布尔索引,而无需np.ix_:
7. 常用函数
【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如下计算:
\二维Numpy数组中统计函数的axis参数,它能够进行某一个维度下的统计特征计算,当axis=0时结果为列的统计指标,当axis=1时结果为行的统计指标:
8. 广播机制
广播机制用于处理两个不同维度数组之间的操作,这里只讨论不超过两维的数组广播机制。
【a】标量和数组的操作
当一个标量和数组进行运算时,标量会自动把大小扩充为数组大小,之后进行逐元素操作:
9.向量与矩阵的计算
【a】向量内积:dot
【b】向量范数和矩阵范数:np.linalg.norm
在矩阵范数的计算中,最重要的是ord参数,可选值如下:
作业(明天做)