消耗时间大小:
O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)
消耗时间大小:
O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)
开发环境
IDE(intergrated development environment 集成开发环境)
数据结构与算法:
算法是一种独立的解决问题的方法和思想,语言并不重要,重要的是思想
算法的五大特性:
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)方法实现行列转置
当我们导入某个模块文件时, Python 解释器去哪里找这个文件呢?只有找到这个文 件才能读取、装载运行该模块文件。
它一般按照如下路径寻找模块文件(按照顺序寻找,找 到即停不继续往下寻找):
1. 内置模块
2. 当前目录
3. 程序的主目录
4. pythonpath 目录(如果已经设置了 pythonpath 环境变量)
5. 标准链接库目录
6. 第三方库目录(site-packages 目录)
7. .pth 文件的内容(如果存在的话)
8. sys.path.append()临时添加的目
导入包操作和本质 上一节中的包结构,
我们需要导入 module_AA.py。
方式如下:
1. import a.aa.module_AA 在使用时,必须加完整名称来引用,比如:a.aa.module_AA.fun_AA()
2. from a.aa import module_AA 在使用时,直接可以使用模块名。 比如:module_AA.fun_AA()
3. from a.aa.module_AA import fun_AA 直接导入函数 在使用时,直接可以使用函数名。 比如:fun_AA(
模块:
递归算法:
shutil模块:
作为os模块的补充,主要用来文件的拷贝和压缩
walk()递归遍历所有文件和目录
os.walk()方法:
返回一个 3 个元素的元组,(dirpath, dirnames, filenames)
dirpath:要列出指定目录的路径
dirnames:目录下的所有文件夹
filenames:目录下的所有文件
round函数 可以做四舍五入操作 不过不会改变原有值,而是产生新的值
一个新的知识点:
三种进制的表示方法:
0b 或者 0B 二进制
0o 或者 0O 八进制
0x 或者 0X 十六进制
os:和os.path模块:
os.system 可以帮助我们直接调用系统的命令
使用pickle实现序列化和反序列化:
pickle.dump(obj,file) obj就是要被序列化的对象,file指的是存储的文件
pickle.load(file) 从file读取数据,反序列化成对象
seek(offset,[whence])
off为正往结束方向移动,为负往开始方向移动
whence:
0:从文件头开始计算(默认值)
1:从当前位置开始计算
2:从文件尾开始计算
enumerate()函数:
将序列进行枚举,使用元组包含起来并每一个元素前面加上索引符。
文本文件的读取:
1.read([size])
从文件中读取size个字符,并作为结果返回。如果没有size参数,则读取整个文件。
2.readline()
读取一行内容作为结果返回。读取到文件末尾,会返回字符串。
3.readlines()
文本文件中,每一行作为一个字符串存入列表中,返回该列表。
中文乱码问题:
windows操作系统默认的编码是GBK,Linux操作系统默认的编码是UTF-8。当用open()时,调用的时操作系统打开的文件,默认编码是GBK