1、数据预处理
2、介绍线性回归、逻辑回归模型
3、python的深拷贝、浅拷贝
3.1 浅拷贝
浅拷贝会创建一个新的对象,但是它包含是对原对象地址的引用,而不是其副本。因此如果原始对象的项是可变的,修改
这些项会影响到拷贝后的对象。
- 创建浅拷贝的方法:
- 使用列表的list.copy()方法
- 切片操作,例如 new_list = old_list[:]
- 使用copy模块的copy函数: from copy import copy; new_list=copy(old_list);
import copy
original = [1, 2, [3, 4]]
shallow = copy.copy(original)
# 修改原始列表中的嵌套列表也会影响浅拷贝
original[2][0] = "changed"
print(shallow) # 输出:[1, 2, ['changed', 4]]
3.2 深拷贝
深拷贝创建一个新的对象,并且递归拷贝原始对象中的所有项。这意味着它将创建所有项的副本,包括嵌套对象。
修改原始对象不会影响到新创建的副本。
- 创建深拷贝
from copy import deepcopy
deep = deepcopy(original)
4、Python lambda匿名函数
在python中,lambda函数是一种轻量级的匿名函数,它通常用以编写简单的,一行的函数,无须定义正式的函数名
- 基本语法:
lambda arguments: expression
- arguments: 参数,可以是多个,用逗号隔开
- expression: 一个表达式,描述函数的行为,返回值是个表达式的结果
- 特点:
- 匿名: lambda函数通常是匿名的,没有函数名
- 一行表达式: 只能有一个表达式,不能包含其他的语句或者多个表达式
- 可随时使用: 可以在任何地方使用
- 灵活性: 常用简化代码,特别是在函数编程或者需要传递小函数作为参数的场合。
# 使用map将每个元素加倍
list(map(lambda x: x*2, [1,2,3,4])) # [2,4,6,8]
# 使用filter()过滤大于2的元素
list(filter(lambda x: x>2, [1,2,3,4])) # [3,4]
# 使用sorted()根据列表的元祖的第二个元素进行排序
sorted([(1, 'one'), (2, 'two'), (3, 'three')], key=lambda x: x[1])
5、python装饰器
在python中,装饰器是一种很勇的设计模式,主要用于在不修改原始函数或方法定义的情况,给函数或方法添加新的功能。
这种功能添加通常关联跨系统的关注点,比兔日志、事务处理等等。。
装饰器本质上是一个函数,它接受一个函数作为参数并返回一个新的函数。
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
装饰器的高级用法:
1.带参数的装饰器:
def decorator_with_args(arg1, arg2):
def my_decorator(func):
def wrapper():
print(f"Arguments received: {arg1}, {arg2}")
func()
return wrapper
return my_decorator
@decorator_with_args("arg1", "arg2")
def say_hello():
print("Hello!")
2.装饰有参数的函数:如果被装饰的函数有参数,装饰器内部的wrapper函数需要能够接受这些参数,并在调用的时候床底给她
def my_decorator(func):
def wrapper(*args, **kwargs):
print("Before calling the function")
result = func(*args, **kwargs)
print("After calling the function")
return result
return wrapper
@my_decorator
def add(a, b):
return a + b
6、python的执行过程
python是一种解释性语言,这意味着python代码在执行时先转换成子字节码,然后由python虚拟机PVM执行
- 源代码::编写的Python文件
- 编译::Python解释器首先将源代码编译成字节码。这一过程涉及到语法分析和语义分析,确保代码符合Python的语法规则。字节码是一种低级、与平台无关的代码,保存在.pyc中
- 字节码::编译得到的字节码是一种中间表示形式,存储在内存中。字节码的执行比直接解释源代码要快。
- python虚拟机::Python虚拟机(PVM)是Python运行时环境的一部分,负责读取字节码,将其转换成机器码,然后执行。PVM是解释器的核心,它执行存储在pyc中
- 执行::PVM逐条执行字节码指令,进行函数调用、内存管理等
7、is 和==的区别
is是比较两个对象的内存地址是是否相等
比较的是两个对象的值是否相当,在使用时,实际上是调用了对象的__eq__()方法, 这意味这==的行为可以根据对象不同改变
8、python多线程, GIL
__END__