Skip to content

Latest commit

 

History

History
80 lines (47 loc) · 4.92 KB

File metadata and controls

80 lines (47 loc) · 4.92 KB

零、前言

欢迎阅读《学习 NumPy 数组》! 这是一项明智的投资,可以保证节省大量时间在 Google 上搜索和搜索(在线)文档。 您将学习成为 NumPy 自信用户所需的所有基本知识。 NumPy 最初是 SciPy 的一部分,然后被选作基础库,其他开源 Python API 都在此基础上构建。 因此,它是用于数值和数据分析的通用 Python 栈的关键部分。

NumPy 代码比尝试完成相同任务的“直接” Python 代码干净得多。 由于操作直接在数组和矩阵上进行,因此所需的循环更少。 许多便利和数学函数也使生活更轻松。 底层算法经受了时间的考验,并在设计时考虑了高性能。

与在基本 Python 中的等效数据结构(如列表列表)中相比,NumPy 的数组存储效率更高。 数组 IO 也明显更快。 性能提高与数组元素的数量成比例。 对于大型数组,使用 NumPy 确实值得。 可以将大小高达数 TB 的文件映射到数组,从而实现最佳的数据读写。 NumPy 数组的缺点是它们比普通列表更专业。 在数值计算之外,NumPy 数组的用处不大。

NumPy 的大部分内容都是用 C 编写的。这使 NumPy 的速度比纯 Python 代码快。 最后,由于 NumPy 是开源的,因此您可以获得所有相关优势。 价格是最低的,与啤酒一样免费。 您不必每次有人加入您的团队时就担心许可证问题,也不需要升级软件。 源代码可供所有人使用。 这当然有利于代码质量。

这本书涵盖的内容

第 1 章, “NumPy 入门”将指导您完成在系统上安装 NumPy 所需的步骤,并帮助您创建基本的 NumPy 应用。 我们还成功运行了向量加法程序。

第 2 章,“NumPy 基础知识”向您介绍 NumPy 数组和基础知识。 在本章中,我们还将学习可以有效地对 NumPy 数组进行切片和索引。 在这里,我们将了解各种数组形状的操纵。

第 3 章,“使用 NumPy 进行基本数据分析”,以天气数据分析为例介绍学习数据分析。 我们还将探索 KNMI 气象站的数据。

第 4 章,“使用 NumPy 进行简单预测分析”可帮助我们尝试使用简单模型(例如带有滞后 1 的自回归模型和带有滞后的自回归模型)来预测天气 2。

第 5 章,“信号处理技术”提供了信号处理和时间序列分析的示例。 我们看一下窗口函数和移动平均线的平滑处理。 我们还介绍了科学家用来得出黑子周期的过滤过程。 我们还将演示协整。

第 6 章,“分析,调试和测试”涉及概要分析,调试和测试,这是开发周期中的重要阶段。 我们还将介绍单元测试,断言函数和深度浮点精度。

第 7 章,“Python 科学生态系统”概述了 NumPy 在其中发挥重要作用的 Python 生态系统。 我们还将研究 Cython,这是一种相对较年轻的基于 Python 的编程语言。 我们还研究了聚类(一种机器学习算法)。

这本书需要什么

要尝试本书中的代码示例,您将需要最新的 NumPy 版本。 这意味着您还需要拥有 NumPy 支持的 Python 版本之一。 一些代码示例出于说明目的使用 Matplotlib。 Matplotlib 并非严格遵循这些示例,但建议您也安装它。

这是用于开发和测试代码示例的软件的列表:

  • Python 2.7
  • Cython-0.17-py2.7-macosx-10.8-intel.egg
  • ipython-2.0.0_dev-py2.7.egg
  • matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg
  • numpy-1.9.0.dev_e886943-py2.7-macosx-10.9-intel.egg
  • Pandas-0.8.2.dev_f5a74d4_20120725-py2.7-macosx-10.8-x86_64.egg
  • pip-1.4.1-py2.7.egg
  • statsmodels-0.6.0-py2.7-macosx-10.9-intel.egg

不用说,您不需要在计算机上完全拥有此软件和这些版本。 Python 和 NumPy 是您所需的绝对最小值。

这本书适合谁

本书适用于寻找高质量开源数学库的科学家,工程师,程序员或分析师。 假定具备 Python 的知识。 此外,还需要对数学和统计学有一定的亲和力或至少要有兴趣。

约定

在本书中,您会发现许多可以区分不同类型信息的文本样式。 以下是这些样式的一些示例,并解释了其含义。

文本中的代码字如下所示:“在此示例中,我们选择numpy-1.8.0-win32-superpack-python2.7.exe。”

代码块设置如下:

start = datetime.now()
c = pythonsum(size)
delta = datetime.now() - start
print "The last 2 elements of the sum", c[-2:]
print "PythonSum elapsed time in microseconds", delta.microseconds

任何命令行输入或输出的编写方式如下:

$ python vectorsum.py 4000

新术语重要词用粗体显示。 您在屏幕上看到的单词,例如在菜单或对话框中,将以如下形式出现:“单击继续按钮。”

注意

警告或重要提示会出现在这样的框中。

提示

提示和技巧如下所示。