我一遍又一遍地强调数据操作的重要性。
数据操作是数据科学和机器学习中几乎所有其他事情的基础。
因此,要成为一名伟大的数据科学家,你的首要目标之一应该是掌握数据处理工具。
如果你在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数组是保存数字数据的数据结构。 它们可以有一维、二维或多维。

所以它们与数学和线性代数中的向量和矩阵非常相似。
重要的是,你总是需要注意你所处理的数组的形状(即行、列等的数量)。
这是因为一些Numpy函数的变化取决于你所处理的数组的形状。 例如,当你使用Numpy乘法和Numpy除法时,如果你有两个相同大小的数组和两个不同大小的数组,这些函数的工作方式会有所不同。
说到这里,你可以用size 和shape 属性检查大小和形状。
例如,如果你有一个名为my_array 的数组,你可以用my_array.shape 来检查其形状。
3: 学习Numpy轴
你还需要学习Numpy轴的知识。
Numpy数组中的轴与笛卡尔、x/y/z坐标系中的轴非常相似。 请记住,在笛卡尔坐标系中,我们可以通过它沿x轴的位置和沿y轴的位置来识别空间中的一个点。

Numpy中的轴是非常相似的。
与笛卡尔坐标系中的很相似,Numpy的轴是方向。 你可以把它们想象成沿着数组边缘的方向。
例如,在一个二维数组中,轴0指向下方,轴1指向对面。

这一点很重要,有几个原因。
首先,这些轴使你能够定位阵列中的单个单元。 要做到这一点,你需要知道哪个轴是指行,哪个轴是指列,等等。
其次,许多Numpy函数可以在一个特定的方向(即沿着一个特定的轴)操作。 例如,Numpy的sum可以沿着特定的轴操作,计算行和和列。

这一点我怎么强调都不为过。Numpy的轴会反复出现。 它们是Numpy系统中最重要的东西之一。
4: 学习重要的数组创建方法
一旦你了解了数组结构和数组轴的要点,你就需要知道如何创建数组。
创建Numpy数组的方法有很多很多,但我最常使用的是:
- Numpy数组函数
- Numpy arange
- Numpy linspace
- numpy ones和Numpy zeroes
- 一些Numpy的随机函数,如Numpy random normal和Numpy random choice。
说白了,正如我之前提到的,Numpy有很多数组创建方法。 有用各种属性的随机数创建数组的方法。 有用从各种概率分布中抽取的数字创建数组的技术。 我可以继续说下去。
但在开始时,你需要关注最常用的技术。 记住:80/20。
5:学习如何重塑数组
一旦你有一个带有一些数字的数组,需要以某种方式重塑数组是非常常见的。
例如,你可能有一个一维数组,你想把它重塑为二维。 或者反之亦然。

一旦你知道如何做,这是很容易的,但它会反复出现,所以你应该尽早学习它。
6: 学习Numpy聚合技术
接下来,你应该学习一些数组聚合技术。
最常见和最重要的是:
- Numpy sum
- Numpy mean
- Numpy中位数
- Numpy min
- Numpy max
当你需要通过计算汇总统计数据来分析你的数组中的数字时,你通常会使用这些技术。
我想指出的是,当你使用这些汇总函数时,Numpy轴特别重要。 这是因为你经常需要计算列统计和行统计(例如,行平均值等)。
7: 学习Numpy数组数学
最后,学习一些基本的数组数学。
至少,你应该知道如何对数组进行加减法(使用np.add和np.subtract)。
你也应该知道一些简单的数学函数来操作数组中的各个元素,如np.power、np.log和np.exp。
你可能还想学习一下Numpy的点积和其他线性代数操作。 这些对于机器学习和深度学习都很有用。 说了这么多,它们略显高级,你可能在一开始就能避免它们。
在这篇文章中,我试图将Numpy提炼成最重要的东西,以便你能更快地学习Numpy。我试图解释最重要、最常用的技术和概念,你应该首先关注这些技术和概念。