python内置类型性能分析:
timei模块
可以用来测试一小段python代码的执行速度
class timeit.Timer(stmt='pass',setup='pass',timer=<timer function>)
Timer:是测量小段代码执行速度的类
stmt:参数是要测试的代码语句
setup:参数是运行代码时需要的设置
timer:参数是一个定时函数,与平台有关
python内置类型性能分析:
timei模块
可以用来测试一小段python代码的执行速度
class timeit.Timer(stmt='pass',setup='pass',timer=<timer function>)
Timer:是测量小段代码执行速度的类
stmt:参数是要测试的代码语句
setup:参数是运行代码时需要的设置
timer:参数是一个定时函数,与平台有关
消耗时间大小:
O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)
数据结构与算法:
算法是一种独立的解决问题的方法和思想,语言并不重要,重要的是思想
算法的五大特性:
1.输入:算法具有0个或多个输入
2.输出:算法至少有1个或多个输出
3.有穷性:算法在有限的步骤之后就会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间范围内
4.确定性:算法中的每一步都有确定性的含义,不会出现二义性
5.可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成
数组的形状
shape即可查看数组的各个维度长度(输出按三维二维依次降低,块、行、个)
reshape方法可以重新设置行列,是有返回值的,而不改变本身
有返回值才会输出
结合shape和reshape可以做到在不清楚维度长度的情况下降维
flatten可以将数组展开变成一维
数组的计算
numpy数组对数字进行+*-/计算,是对全部单元进行计算
nan>>not a number 0/0
inf>>infinite x/0
数组对数组进行计算:
不同维度的数组进行计算至少有一个维度的长度相同
广播会在缺失或者长度为1的维度上进行(不同维度的计算本质上是广播)
广播原则:如果两个数组的后缘维度,即从末尾开始算起的维度轴长相符,或者某一方的长度为1,即广播jian'r
一维数组只有0轴,二维有0、1轴,三维有0、1、2轴
reshape(0,1,2),shape输出(2,1,0)
CSV逗号分隔值文件
numpy的读取文件方法
unpack参数实现行列转置
transpose,T,swapaxes(1,0)方法实现行列转置
numpy的索引和切片
索引从0开始
2:取得连续多行,[[2,5,6]]多一个[]取得不连续的行
:,1取得单列
:,1:取得连续列
:,[]取得不连续列
取得行列交叉的内容
取得不相邻的点
这个老师的逻辑能力和语言组织能力真的是匮乏 前言不搭后语 自己把自己绕进去了
讲的真垃圾
这课程讲的就和拿着稿子照本宣科一样
最大熵模型:
步长定义
good 重点内容
秩 铺垫
要点总结
算法的五大特性:输入、输出、有穷性、确定性、可行性
上确界:M=supE
下确界:M=infE
向量组的秩
所有等价线性无关组含有的向量个数相等
提升:
梯度提升
特征选择:方差过滤
```python
from sklearn.feature_selection import VarianceThreshold #特征选择,根据方差进行过滤
def var():
'''
特征选择-选择低方差的特征
:return:None
'''
var=VarianceThreshold(threshold=1.0)#保留方差值为1的数值
data=var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])#三行四列的二维数组
print(data)
return None
if __name__=='__main__': #调用
var()
```
PCA:主成分分析
把维度降低,但是数据信息尽可能不损耗