Skip to content

Files

Latest commit

55d71cb · Jul 20, 2020

History

History
91 lines (55 loc) · 5.12 KB

File metadata and controls

91 lines (55 loc) · 5.12 KB

零、前言

第二版增加了有关新的 NumPy 功能和数据分析的两个新章节。 我们的 NumPy 用户生活在令人兴奋的时代。 与 NumPy 相关的新发展似乎每周,甚至每天都会引起我们的注意。 在第一版的时候,创建了 NumFocus,它是 NumPy 可用科学开放代码基金会的缩写。 同时宣布了 Numba 项目-使用 LLVM 的 NumPy 感知型动态 Python 编译器。 此外,谷歌为他们的云产品 Google App Engine 添加了支持。

将来,我们可以期望改进对 GPU 和 CPU 集群的并发支持。 使用 NumPy 数组可以进行类似 OLAP 的查询。 这是个好消息,但我们必须不断提醒自己,NumPy 在科学(Python)软件生态系统中并不孤单。 有 SciPy,matplotlib(一个非常有用的 Python 绘图库),IPython(一个交互式外壳)和 Scikits。 在 Python 生态系统之外,R,C 和 Fortran 等语言非常流行。 我们将介绍与这些环境交换数据的细节。

本书涵盖的内容

第 1 章,“使用 IPython”介绍了 IPython,这是一个以其 shell 最著名的工具包。 基于 Web 的笔记本是一项激动人心的功能,此处详细介绍。 考虑一下 MATLAB 和 Mathematica,但是在您的浏览器中,它是开源的并且免费的。

第 2 章,“高级索引和数组概念”显示,由于强大的索引机制,NumPy 具有非常易于使用的数组。 本章介绍一些更高级和更棘手的索引技术。

第 3 章,“掌握常用功能”试图记录每个 NumPy 用户应该知道的最基本的功能。 NumPy 具有许多功能,在本书中甚至无法提及!

第 4 章,“将 NumPy 与世界其他地区联系起来”,现实世界中遇到的编程语言,库和工具的数量令人难以置信 。 一些软件在云上运行,而另一些则驻留在本地计算机或远程服务器上。 能够在这样的环境中适应 NumPy 并将其连接起来与编写独立的 NumPy 代码一样重要。

第 5 章,“音频和图像处理”假定,当您想到 NumPy 时,您可能不会想到声音或图像。 阅读本章后,情况将会改变。

第 6 章,“特殊数组和通用函数”介绍了一些非常技术性的主题。 本章介绍如何执行字符串操作,忽略非法值以及存储异构数据。

第 7 章,“分析和调试”展示了生产优质软件所需的技能。 我们演示了几种方便的性能分析和调试工具。

第 8 章,“质量保证”值得关注,因为它与质量有关。 我们使用 NumPy 测试工具讨论了常见的方法和技术,例如单元测试,模拟和 BDD。

第 9 章,“使用 Cython 加速代码”介绍了 Cython,它试图结合 C 的速度和 Python 的优势。 我们从 NumPy 的角度向您展示 Cython 的工作原理。

第 10 章,“Scikits 的乐趣”涵盖了 Scikits,这是迷人的科学 Python 生态系统的又一组成部分。 快速导览将指导您完成一些最有用的 Scikits 项目。

第 11 章,“最新和最强的 NumPy”展示了第一版中未涵盖的新功能。

第 12 章,“使用 NumPy 进行探索性和预测性数据分析”,介绍了现实的气象数据分析。 我已经在第二版中添加了本章。

这本书需要什么

要尝试本书中的代码示例,您将需要最新的 NumPy 版本。 这意味着您还需要拥有 NumPy 支持的 Python 版本之一。 本书提供了用于安装其他相关包的秘籍。

这本书适合谁?

本书适用于具有 Python 和 NumPy 基本知识的科学家,工程师,程序员或分析人员,他们想要进入下一个层次。 此外,还需要对数学和统计学有一定的亲和力,或者至少是有兴趣的。

约定

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

文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字如下所示:“我们可以通过使用include指令包括其他上下文。”

代码块设置如下:

from __future__ import print_function
from matplotlib.finance import quotes_historical_yahoo
from datetime import date
import numpy as np
import matplotlib.pyplot as plt

def get_indices(high, size):
   #2\. Generate random indices
   return np.random.randint(0, high, size)

当我们希望引起您对代码块特定部分的注意时,相关的行或项目将以粗体显示:

from sklearn.datasets import load_sample_images
import matplotlib.pyplot as plt
import skimage.feature

dataset = load_sample_images()
img = dataset.images[0] 
edges = skimage.feature.canny(img[..., 0])
plt.axis('off')
plt.imshow(edges)
plt.show()

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

$ sudo easy_install patsy

新术语重要词用粗体显示。 您在屏幕上看到的字词,例如在菜单或对话框中,将以如下形式出现:“打印按钮实际上并未打印笔记本。”

注意

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

提示

提示和技巧如下所示。