利用Python进行数据分析·3代·2.环境搭建和python第三方库简介

版权声明

这些笔记基于《Python for Data Analysis, 3rd Edition》一书的内容总结和理解。原书由 Wes McKinney 编写,出版商为 O’Reilly,ISBN 978-1-098-10403-0。版权声明如下:

MIT License
Original work Copyright (c) 2024 Wes McKinney
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

今天,又往下阅读了一下,发现还需要安装环境, 不知道是不是冥冥之中,搭建环境所需的 mamba 已经安装,也省了不少事

这本书对很多库进行了简单的介绍,我一个单词也不认识,所以就把音标弄上方便自己拼读,英语是学习的阻碍,让本应有兴趣的学习,变得痛苦,光是搭建环境总结库的含义,就浪费太多时间,不知道自己能坚持多久,唉

环境搭建和 Python 第三方库大致介绍

最主要的可能是安装环境,至于第3方库的简介,我觉得大概看看有个印象就行,这本书之后肯定会详细介绍的

环境搭建

不知道是不是机缘巧合,这个安装需要安装 conda 环境,而我在 python学习之路☞1.安装环境 就已经安装了 mamba 所以现在轻松很多

其他系统环境安装 mamba 可以参考书籍里的介绍 installation_windowsinstallation_mac

安装必要的包

  1. 设置 conda-forge 作为默认包渠道

    conda config --add channels conda-forge
    conda config --set channel_priority strict
    
  2. 创建新的 conda 环境并安装 Python 3.10

    mamba create -y -n pydata-book python=3.10
    mamba activate pydata-book
    

    以后要是分析数据什么的需要手动切换 pydata-book 环境

    就执行这个命令 mamba activate pydata-book 就能激活切换了

  3. 安装书中使用的主要包

    mamba install -y pandas jupyter matplotlib
    
  4. 安装其他必要的包

    mamba install lxml beautifulsoup4 html5lib openpyxl \
                requests sqlalchemy seaborn scipy statsmodels \
                patsy scikit-learn pyarrow pytables numba -fy
    
  5. 更新包的命令如下

    这里的 package_name 是指代要更新的包名,就是个例子

    • 使用 mamba 更新:
      mamba update package_name
      
    • 使用 pip 更新:
      pip install --upgrade package_name
      
  6. 注意:避免混用 mamba 和 pip 更新包,因为可能导致环境问题。

集成开发环境和文本编辑器推荐

我已经搭建好的 VS Code 如果不是刚需就不安装其他软件了

  • 标准开发环境:IPython 加文本编辑器。
  • 推荐的集成开发环境(IDE)和编辑器
    • PyDev(免费),基于 Eclipse 平台的 IDE。
    • PyCharm(JetBrains 提供,商业用户需订阅,开源开发者免费)。
    • Python Tools for Visual Studio(适用于 Windows 用户)。
    • Spyder(免费),Anaconda 自带的 IDE。
    • Komodo IDE(商业)。
    • 流行的文本编辑器,如 VS Code 和 Sublime Text 2,也有很好的 Python 支持。

Python 库大致介绍

看看就行,这都是从书籍里获得的概念,我也不是很理解,但是感觉不写不太好

NumPy: /ˈnʌmˌpaɪ/

  1. 核心功能

    • 多维数组对象 (ndarray):高效处理数值数据。
    • 数组运算函数:执行元素级运算和数组间数学运算。
    • 数据存储工具:读写基于数组的数据集。
    • 线性代数操作、傅里叶变换和随机数生成
    • C API:使 Python 扩展和原生 C/C++ 代码能够访问 NumPy 的数据结构和计算功能。
  2. 效率和互操作性

    • 高效的数据存储和操作:比其他内置 Python 数据结构更高效。
    • 与低级语言的兼容性:如 C 或 FORTRAN,可以直接操作 NumPy 数组而无需复制数据。

pandas: /ˈpændəs/

  1. 数据结构

    • DataFrame:表格型、列向数据结构,带有行和列标签。
    • Series:一维标记数组对象。
  2. 功能特性

    • 数据操作能力:结合了 NumPy 的数组计算理念和类似于电子表格及关系数据库的功能。
    • 数据清洗和准备:支持灵活的索引功能、数据切片、聚合及选择数据子集。
  3. 历史背景

    • 起初在 AQR 资本管理公司开发,旨在解决金融和业务分析问题。

matplotlib: /ˌmætˈplɒtˌlɪb/

  • 功能:最流行的Python绘图库,适用于二维数据可视化。
  • 特点:由John D. Hunter创建,适合出版的图形制作,广泛用于Python生态系统中。

IPython: /ˈaɪˌpaɪθən/ 和 Jupyter: /ˈdʒuːpɪtər/

  1. IPython

    • 交互计算和软件开发:鼓励执行-探索的工作流程,提供与操作系统的集成访问。
    • 开发背景:Fernando Pérez 于2001年创立,现为Jupyter项目的一个组件。
  2. Jupyter

    • 互动计算工具:支持多达40种编程语言的互动计算。
    • 功能:作为增强的Python外壳,加速编写、测试和调试代码。支持在 Markdown 和 HTML 中编写内容。

SciPy: /ˈsaɪˌpaɪ/

SciPy 是一个解决科学计算中基础问题的包集合,包含多个模块:

  • scipy.integrate:数值积分和微分方程求解器。
  • scipy.linalg:线性代数操作和矩阵分解,扩展了 numpy.linalg 提供的功能。
  • scipy.optimize:函数优化和根查找算法。
  • scipy.signal:信号处理工具。
  • scipy.sparse:稀疏矩阵和稀疏线性系统求解器。
  • scipy.special:SPECFUN 库的封装,实现许多常用数学函数,如伽马函数。
  • scipy.stats:标准连续和离散概率分布、统计测试及描述统计等。

NumPy 和 SciPy 共同形成了一个完整的、成熟的计算基础,适用于许多传统科学计算应用。

scikit-learn: /ˈsaɪkɪt ˌlɜrn/

自2007年项目启动以来,scikit-learn 已成为 Python 程序员的通用机器学习工具包。包含以下模型的子模块:

  • 分类:支持向量机(SVM)、最近邻、随机森林、逻辑回归等。
  • 回归:Lasso、岭回归等。
  • 聚类:k-means、谱聚类等。
  • 降维:主成分分析(PCA)、特征选择、矩阵分解等。
  • 模型选择:网格搜索、交叉验证、评估指标。
  • 预处理:特征提取、归一化。

scikit-learn 与 pandas、statsmodels 和 IPython 一起,使 Python 成为高效的数据科学编程语言。

statsmodels: /ˈstætsˌmɒdəlz/

statsmodels 是一个统计分析包,由斯坦福大学统计学教授 Jonathan Taylor 的工作为基础创建。与 scikit-learn 相比,statsmodels 包含经典(主要是频率学派)统计学和计量经济学的算法。包含以下子模块:

  • 回归模型:线性回归、广义线性模型、稳健线性模型、线性混合效应模型等。
  • 方差分析(ANOVA)
  • 时间序列分析:自回归(AR)、自回归滑动平均(ARMA)、自回归积分滑动平均(ARIMA)、向量自回归(VAR)等模型。
  • 非参数方法:核密度估计、核回归。
  • 统计模型结果的可视化

statsmodels 更专注于统计推断,提供参数的不确定性估计和 p 值。与之相比,scikit-learn 更专注于预测。

参考

essential_libraries
installation_and_setup

14 个赞

感谢你的分享

1 个赞

谢谢你来看看我

1 个赞

太强了,大佬

1 个赞

还不是大佬,等我哪天成为大佬的吧,我再睡一会就学习 :bili_018: