Python简介与开发环境搭建
常见问题
admin
发布时间:2025-02-27
浏览:156 次 1.1 Python是什么?为什么选择Python?
Python是什么?
Python是一种高级编程语言,由Guido van Rossum于1991年首次发布。它的设计哲学强调代码的可读性和简洁性,使得开发者可以用更少的代码实现复杂的功能。Python支持多种编程范式,包括面向对象编程、函数式编程和过程式编程,因此具有极高的灵活性。
Python的语法简单直观,接近自然语言,这使得它成为初学者学习编程的理想选择。同时,Python拥有丰富的标准库和第三方库,能够快速实现各种功能,从简单的脚本到复杂的机器学习模型。
为什么选择Python?
在众多编程语言中,Python因其独特的优势,成为了机器学习(Machine Learning)和深度学习(Deep Learning)领域的首选语言。以下是选择Python的主要原因:
简单易学,开发效率高
强大的生态系统
跨平台与可扩展性
广泛的应用领域以及社区支持与持续发展
在机器学习和深度学习中的优势
1.2 安装Python与配置开发环境(使用Conda)
在开始学习Python之前,我们需要完成开发环境的搭建。这包括安装Python解释器、配置虚拟环境以及选择合适的集成开发环境(IDE)。本节将重点介绍如何使用 Anaconda 和 Conda 来安装Python并配置开发环境。
什么是Conda?
Conda 是一个开源的包管理工具和环境管理工具,广泛用于数据科学、机器学习和深度学习领域。它不仅可以轻松安装和管理Python及其相关库,还可以创建独立的虚拟环境,避免不同项目之间的依赖冲突。
Anaconda 是一个基于 Conda 的发行版,包含了 Python、Conda 以及许多常用的科学计算和数据分析库(如 NumPy、Pandas、Matplotlib 等)。因此,Anaconda 是初学者和数据科学家的理想选择。
步骤 1:下载并安装 Anaconda
访问 Anaconda 官网
https://www.anaconda.com/?spm=5aebb161.2ef5001f.0.0.4881c921ccmLSL
下载安装程序
Windows 用户:下载 .exe 文件。
macOS 用户:下载 .pkg 文件。
Linux 用户:下载 .sh 脚本文件。
运行安装程序
Windows :双击下载的 .exe 文件,按照提示完成安装。
macOS :双击 .pkg 文件,按照安装向导完成安装。
Linux :在终端中运行以下命令
bash Anaconda3-<version>-Linux-x86_64.sh
验证安装
安装完成后,打开终端(或命令提示符),输入以下命令检查 Conda 是否安装成功:
conda --version
步骤 2:创建虚拟环境
虚拟环境是一种隔离的 Python 环境,可以为每个项目单独管理依赖,避免版本冲突。以下是使用 Conda 创建虚拟环境的步骤:
创建新环境
在终端中运行以下命令,创建一个名为 ml_env 的虚拟环境,并指定 Python 版本(例如 3.9):
conda create --name ml_env python=3.9
激活虚拟环境
创建完成后,使用以下命令激活虚拟环境:
conda activate ml_env
激活后,终端的提示符前会显示环境名称,例如 (ml_env)。
安装必要的库
在虚拟环境中,你可以根据需要安装所需的库。例如,安装 NumPy 和 Pandas:
conda install numpy pandas
退出虚拟环境
如果需要退出当前环境,可以运行以下命令:
conda deactivate
步骤 3:选择并配置 IDE
为了更高效地编写和调试代码,建议选择一个合适的集成开发环境(IDE)。以下是几种常用的 Python IDE 及其配置方法:
1. Jupyter Notebook
Jupyter Notebook 是一个交互式的开发工具,特别适合数据分析和机器学习任务。它允许你以单元格的形式运行代码,并实时查看结果。
启动 Jupyter Notebook
在终端中运行以下命令:
jupyter notebook
这会在浏览器中打开 Jupyter Notebook 界面。
优点
支持 Markdown 文档和代码混合编写。
实时可视化数据和图表。
非常适合教学和实验性项目。
2. Visual Studio Code (VS Code)
VS Code 是一款轻量级但功能强大的代码编辑器,支持多种编程语言和插件。
安装 VS Code
从 VS Code官网 下载并安装。
安装 Python 插件
打开 VS Code,点击左侧扩展图标,搜索并安装“Python”插件。
配置虚拟环境
在 VS Code 中打开项目文件夹,按下 Ctrl+Shift+P(或 Cmd+Shift+P),输入 Python: Select Interpreter,选择刚刚创建的虚拟环境路径(如 ml_env)。
3. PyCharm
PyCharm 是一款专为 Python 开发设计的 IDE,提供了强大的调试和项目管理功能。
安装 PyCharm
从 PyCharm官网 下载并安装社区版(免费)或专业版(付费)。
配置虚拟环境
打开 PyCharm,创建新项目时选择“Existing Interpreter”,并指向 Conda 创建的虚拟环境路径。
图片
步骤 4:验证开发环境
完成上述步骤后,可以通过以下方式验证开发环境是否正常工作:
运行简单的 Python 脚本
在终端中运行以下命令,检查 Python 是否正常工作:
python --version
测试安装的库
在 Python 解释器中导入已安装的库,例如
import numpyprint(numpy.__version__)
运行 Jupyter Notebook 示例
在 Jupyter Notebook 中创建一个新的 Notebook 文件,运行以下代码
import matplotlib.pyplot as pltplt.plot([1, 2, 3], [4, 5, 6])plt.show()
1.3 编写第一个Python程序
下面以鸢尾花分类为例,利用神经网络搭建第一个python程序
# 导入必要的库import numpy as npimport matplotlib.pyplot as pltfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.neural_network import MLPClassifierfrom sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay, accuracy_score
# 1. 加载鸢尾花数据集iris = load_iris()X = iris.data # 特征 (150, 4)y = iris.target # 标签 (150,)
# 2. 数据预处理# 标准化特征scaler = StandardScaler()X = scaler.fit_transform(X)
# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 3. 构建神经网络模型mlp = MLPClassifier( hidden_layer_sizes=(10, 10), # 两个隐藏层,每层 10 个神经元 activation='relu', # 激活函数为 ReLU solver='adam', # 使用 Adam 优化器 max_iter=1, # 设置为 1,因为我们使用 partial_fit 手动控制训练 warm_start=True, # 允许增量训练 random_state=42 # 随机种子)
# 4. 训练模型并记录损失与准确率epochs = 1000train_loss_list, test_loss_list = [], []train_acc_list, test_acc_list = [], []
for epoch in range(epochs): mlp.partial_fit(X_train, y_train, classes=np.unique(y)) # 增量训练
# 记录训练集的损失和准确率 train_loss = mlp.loss_ train_pred = mlp.predict(X_train) train_accuracy = accuracy_score(y_train, train_pred) train_loss_list.append(train_loss) train_acc_list.append(train_accuracy)
# 测试集评估 y_pred_proba = mlp.predict_proba(X_test) # 获取预测概率 test_loss = -np.mean(np.log(y_pred_proba[np.arange(len(y_test)), y_test])) # 手动计算交叉熵损失 y_pred = mlp.predict(X_test) test_accuracy = accuracy_score(y_test, y_pred) test_loss_list.append(test_loss) test_acc_list.append(test_accuracy)
if (epoch + 1) % 20 == 0: print(f"Epoch [{epoch+1}/{epochs}], Train Loss: {train_loss:.4f}, Train Acc: {train_accuracy:.4f}, " f"Test Loss: {test_loss:.4f}, Test Acc: {test_accuracy:.4f}")
# 5. 绘制训练集和测试集的损失与准确率曲线plt.figure(figsize=(12, 9))
# 绘制损失曲线plt.subplot(2, 2, 1)plt.plot(train_loss_list, label='Train Loss')plt.plot(test_loss_list, label='Test Loss')plt.title('Loss Curve')plt.xlabel('Epochs')plt.ylabel('Loss')plt.legend()
# 绘制准确率曲线plt.subplot(2, 2, 2)plt.plot(train_acc_list, label='Train Accuracy')plt.plot(test_acc_list, label='Test Accuracy')plt.title('Accuracy Curve')plt.xlabel('Epochs')plt.ylabel('Accuracy')plt.legend()
plt.show()
# 绘制混淆矩阵cm = confusion_matrix(y_test, y_pred)disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=iris.target_names)disp.plot(cmap=plt.cm.Blues)plt.title("Confusion Matrix")
plt.show()


售前咨询专员