首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 为何选择机器学习
1.1.1 机器学习能够解决的问题
1.1.2 熟悉任务和数据
1.2 为何选择Python
1.3 scikit-learn
1.4 必要的库和工具
1.4.1 Jupyter Notebook
1.4.2 NumPy
1.4.3 SciPy
1.4.4 matplotlib
1.4.5 pandas
1.4.6 mglearn
1.5 Python 2 与Python 3 的对比
1.7 第 一个应用:鸢尾花分类
1.7.1 初识数据
1.7.2 衡量模型是否成功:训练数据与测试数据
1.7.3 要事第 一:观察数据
1.7.4 构建第 一个模型:k 近邻算法
1.7.5 做出预测
1.7.6 评估模型
2.1 分类与回归
2.2 泛化、过拟合与欠拟合
2.3 监督学习算法
2.3.1 一些样本数据集
2.3.2 k 近邻
2.3.3 线性模型
2.3.4 朴素贝叶斯分类器
2.3.5 决策树
2.3.6 决策树集成
2.3.7 核支持向量机
2.3.8 神经网络(深度学习)
2.4 分类器的不确定度估计
2.4.1 决策函数
2.4.2 预测概率
2.4.3 多分类问题的不确定度
3.1 无监督学习的类型
3.2 无监督学习的挑战
3.3 预处理与缩放
3.3.1 不同类型的预处理
3.3.2 应用数据变换
3.3.3 对训练数据和测试数据进行相同的缩放
3.3.4 预处理对监督学习的作用
3.4 降维、特征提取与流形学习
3.4.1 主成分分析
3.4.2 非负矩阵分解
3.4.3 用t-SNE 进行流形学习
3.5 聚类
3.5.1 k 均值聚类
3.5.2 凝聚聚类
3.5.3 DBSCAN
3.5.4 聚类算法的对比与评估
3.5.5 聚类方法小结
当前位置:
首页>>
技术小册>>
Python机器学习基础教程(上)
小册名称:Python机器学习基础教程(上)
### 1.5 Python 2 与 Python 3 的对比 在Python的发展历程中,Python 2和Python 3是两个重要的里程碑,它们之间虽一脉相承,但在语法、库支持、性能优化等方面存在显著差异。随着Python社区的不断推动和时间的推移,Python 2已于2020年1月1日正式停止官方支持,标志着Python 3成为Python编程的唯一官方版本。对于初学者及希望深入学习Python机器学习的人来说,了解Python 2与Python 3之间的区别至关重要,这不仅能帮助我们更好地理解Python的发展脉络,还能确保编写的代码具有更好的兼容性和未来性。 #### 1.5.1 版本历史背景 - **Python 2**:自2000年发布以来,Python 2系列版本(如2.5、2.6、2.7)广泛应用于科学计算、Web开发、数据分析等多个领域。Python 2的设计考虑了向后兼容性,允许旧的Python代码在新版本中继续运行,但这种设计也带来了一些问题,如代码库的老旧、语言特性的更新缓慢等。 - **Python 3**:为了解决Python 2中存在的诸多问题,如Unicode字符串处理、整数除法行为、打印函数等,Python 3于2008年发布。Python 3在设计时就明确表示不再支持Python 2的某些旧特性,而是引入了更为现代和强大的功能,如更简洁的语法、更好的性能优化、以及对Unicode的原生支持等。 #### 1.5.2 主要差异概述 ##### 1.5.2.1 语法差异 - **打印函数**:Python 2使用`print`作为语句(如`print "Hello, World!"`),而Python 3将其改为函数(需使用圆括号,如`print("Hello, World!")`)。 - **除法**:Python 2中,`/`运算符对于整数执行的是经典除法(得到浮点数结果),而`//`是地板除(向下取整)。Python 3则统一使用`/`进行真除法,`//`进行地板除,无论操作数是否为整数。 - **Unicode**:Python 2中,字符串分为`str`(字节串)和`unicode`(Unicode字符串)两种类型,而Python 3中,所有字符串都是Unicode字符串(即`str`类型),字节串则通过`bytes`类型表示。 - **异常处理**:Python 3修改了异常处理的语法,引入了`as`关键字来明确异常变量(如`except Exception as e:`)。 ##### 1.5.2.2 标准库与第三方库 - **标准库**:Python 3对标准库进行了大量更新,移除了不再推荐使用或已废弃的模块,并引入了许多新模块。例如,Python 2中的`repr`库在Python 3中被合并到内置模块中,而`configparser`(用于处理配置文件)等新模块则被引入。 - **第三方库**:随着Python 3的普及,越来越多的第三方库开始仅支持Python 3,或优先更新Python 3版本。这包括许多在机器学习领域广泛使用的库,如NumPy、Pandas、SciPy、TensorFlow、PyTorch等。 ##### 1.5.2.3 性能优化 Python 3在性能优化方面做了大量工作,引入了新的编译器和解释器特性,如PEP 380引入的生成器表达式和PEP 3118中定义的缓冲区协议改进,这些都使得Python 3在处理大数据集和复杂计算时更为高效。 #### 1.5.3 迁移策略与注意事项 对于仍在使用Python 2的开发者或项目,迁移到Python 3是不可避免的趋势。以下是一些迁移时需要注意的要点: - **使用兼容性工具**:如`2to3`脚本,它是Python官方提供的一个自动化工具,可以帮助将Python 2代码转换为Python 3代码。但请注意,`2to3`并不能处理所有情况,特别是在涉及到特定库或复杂逻辑时。 - **逐步迁移**:建议采用逐步迁移的策略,先对代码库中的一小部分进行迁移和测试,确保没有问题后再继续迁移其他部分。 - **更新依赖库**:检查并更新所有依赖的第三方库,确保它们支持Python 3。对于不再维护或无法更新的库,可能需要寻找替代方案。 - **测试与调试**:迁移过程中,充分的测试是必不可少的。确保新代码在功能上与旧代码保持一致,并特别注意处理Unicode字符串、文件读写、网络通信等可能受影响的领域。 #### 1.5.4 结论 Python 2与Python 3之间的对比,不仅是版本号的简单更迭,更是Python语言在发展过程中不断自我革新、追求卓越的体现。对于学习Python机器学习的读者而言,掌握Python 3是通往成功之路的关键一步。虽然Python 2的辉煌历史值得铭记,但面向未来,选择Python 3将使我们能够充分利用最新的语言特性和工具,更高效地解决复杂问题。在本书后续章节中,我们将基于Python 3展开深入讲解,帮助读者掌握Python在机器学习领域的强大功能。
上一篇:
1.4.6 mglearn
下一篇:
1.7 第 一个应用:鸢尾花分类
该分类下的相关小册推荐:
机器学习算法原理与实战
Python合辑10-函数
Python爬虫入门与实战开发(上)
Python合辑8-变量和运算符
Python神经网络入门与实践
Python机器学习基础教程(下)
Python机器学习实战
剑指Python(磨刀不误砍柴工)
Python合辑3-字符串用法深度总结
Python编程轻松进阶(五)
实战Python网络爬虫
Python与办公-玩转PPT