7个技巧帮助你快速学习Numpy

185 阅读5分钟

我一遍又一遍地强调数据操作的重要性。

数据操作是数据科学和机器学习中几乎所有其他事情的基础。

因此,要成为一名伟大的数据科学家,你的首要目标之一应该是掌握数据处理工具。

如果你在Python中进行数据操作,这意味着你需要学习Numpy。

Numpy在很多方面都很简单,但很多人还是在它上面卡住了。

所以在这篇文章中,我将给你5个提示来帮助你学习Numpy。

1: 使用80/20规则

Numpy是一个非常强大的工具箱。

它如此强大的原因之一是Numpy包内有大量的工具和技术。

我不知道确切的数字,但Numpy系统内可能有远远超过100个函数、方法和工具。

但这也带来了一个问题。

很多东西可能需要学习。

你可以很容易地跳进Numpy的兔子洞,并试图学习所有东西

这是个糟糕的策略。

当你学习Numpy时,少量的工具会占你代码的绝大部分。

这就是80/20规则的一个例子。 你可能已经听说过这个了。

根据80/20规则,80%的输出来自20%的输入。

80/20法则适用于各种事物,在大多数情况下,它也适用于Numpy。

尽管Numpy中有100多个函数和方法,但你实际上可能只使用其中的几十个。

你应该不遗余力地学习和掌握那些常用的技术。

(我将在接下来的章节中指出其中的大部分。)

2: 学习数组的结构方式

那么,现在让我们来谈谈Numpy的一些具体内容。

你需要知道的第一件也是最重要的一件事就是Numpy数组是如何结构的。

让我们从基础知识开始。

Numpy数组是保存数字数据的数据结构。 它们可以有一维、二维或多维。

An example of a Numpy array with 3 rows and 4 columns, containing random integers.

所以它们与数学和线性代数中的向量和矩阵非常相似。

重要的是,你总是需要注意你所处理的数组的形状(即行、列等的数量)。

这是因为一些Numpy函数的变化取决于你所处理的数组的形状。 例如,当你使用Numpy乘法Numpy除法时,如果你有两个相同大小的数组和两个不同大小的数组,这些函数的工作方式会有所不同。

说到这里,你可以用sizeshape 属性检查大小和形状。

例如,如果你有一个名为my_array 的数组,你可以用my_array.shape 来检查其形状。

3: 学习Numpy轴

你还需要学习Numpy轴的知识。

Numpy数组中的轴与笛卡尔、x/y/z坐标系中的轴非常相似。 请记住,在笛卡尔坐标系中,我们可以通过它沿x轴的位置和沿y轴的位置来识别空间中的一个点。

An example of defining a point in Cartesian coordinates by it's value along the x axis and y axis.

Numpy中的轴是非常相似的

与笛卡尔坐标系中的很相似,Numpy的轴是方向。 你可以把它们想象成沿着数组边缘的方向。

例如,在一个二维数组中,轴0指向下方,轴1指向对面。

An image that helps you learn Numpy axes by showing that axes are like directions.

这一点很重要,有几个原因。

首先,这些轴使你能够定位阵列中的单个单元。 要做到这一点,你需要知道哪个轴是指行,哪个轴是指列,等等。

其次,许多Numpy函数可以在一个特定的方向(即沿着一个特定的轴)操作。 例如,Numpy的sum可以沿着特定的轴操作,计算行和和列。

An image that shows how Numpy sum works.

这一点我怎么强调都不为过。Numpy的轴会反复出现。 它们是Numpy系统中最重要的东西之一。

4: 学习重要的数组创建方法

一旦你了解了数组结构和数组轴的要点,你就需要知道如何创建数组。

创建Numpy数组的方法有很多很多,但我最常使用的是:

说白了,正如我之前提到的,Numpy有很多数组创建方法。 有用各种属性的随机数创建数组的方法。 有用从各种概率分布中抽取的数字创建数组的技术。 我可以继续说下去。

但在开始时,你需要关注最常用的技术。 记住:80/20

5:学习如何重塑数组

一旦你有一个带有一些数字的数组,需要以某种方式重塑数组是非常常见的。

例如,你可能有一个一维数组,你想把它重塑为二维。 或者反之亦然。

Visual representation of how we re-shape data with the NumPy reshape method.

一旦你知道如何做,这是很容易的,但它会反复出现,所以你应该尽早学习它。

6: 学习Numpy聚合技术

接下来,你应该学习一些数组聚合技术。

最常见和最重要的是:

当你需要通过计算汇总统计数据来分析你的数组中的数字时,你通常会使用这些技术。

我想指出的是,当你使用这些汇总函数时,Numpy轴特别重要。 这是因为你经常需要计算列统计和行统计(例如,行平均值等)。

7: 学习Numpy数组数学

最后,学习一些基本的数组数学。

至少,你应该知道如何对数组进行加减法(使用np.add和np.subtract)。

你也应该知道一些简单的数学函数来操作数组中的各个元素,如np.powernp.lognp.exp

你可能还想学习一下Numpy的点积和其他线性代数操作。 这些对于机器学习和深度学习都很有用。 说了这么多,它们略显高级,你可能在一开始就能避免它们。

在这篇文章中,我试图将Numpy提炼成最重要的东西,以便你能更快地学习Numpy。我试图解释最重要、最常用的技术和概念,你应该首先关注这些技术和概念。