你是否在大规模上工作数据分析,对地理空间建​​模感兴趣或想要解决您的线性方程深度学习应用程序,您将迟早遍及Numpy库进行数值计算。

这种强大的框架允许您高速处理表格数据。但是什么是numpy阵列,你怎么能充分利用它?

什么是numpy?

numpy.是用于数值计算的Python库(名称代表数字erPYThon)。它针对速度进行了优化,在许多人使用蟒蛇图书馆(如熊猫或SCIPY)需要快速准确地计算大数据收集。您可以使用PIP轻松安装NUMPY:

在Python shell中,您通常使用别名导入numpy:

快速提示:随着NP别名导入Numpy,每当我们想要使用库的功能时,可以保存我们的时间和空间。

什么是数值计算?

数值计算用于创建通过迭代过程近似复杂数学函数的算法。当我们使用复杂的数据帧运行时,我们使用线性代数和微积分来查找合适的解决方案。数值计算旨在将这些降到更简单的方程式。

什么是numpy阵列?

我们之前提到“数据帧”和“表格数据”。这两个术语都指的是类似于以结构化方式表示数值的网格状数据类型。在数学中,我们称这些结构“向量”(当它们是一维时)或“矩阵”(多维时)。numpy用单个数据类型表示它们:numpy数组。

创建numpy阵列的各种方式,最简单的是通过转换python列表:

请注意,虽然我们通常调用此数据类型numpy数组,但官方姓名为numpy.ndarray(对于n维数组),这更加难以发音:

我们的阵列的尺寸是多少?

正如我们所看到的,NDIM真的只打印尺寸的数量。形状方法为我们提供有关我们的斐波纳契序列的更多信息:

这个元组告诉我们两件事:我们的数组是一维的(因为我们只看到一个值),它保存6个值。二维阵列怎么样?我们再次从Python列表初始化它,但这一次我们使用嵌套列表来让Numpy知道它正在处理二维数组(或表格,因为我们通常称之为)。

要在某个位置获取数组的值,我们可以使用方括号使用正常的Python语法索引。假设我们希望在第一行中获取第二个条目的值(请调用Python从零计算的)。我们总是先给出行价:

我们的小型数阵列的第一行中的第二个值为4.逗号分隔索引返回相同的结果:

为什么使用numpy阵列而不是嵌套列表?

在上面的示例中,我们可以通过索引Python嵌套列表来实现相同的结果,即使不将其转换为Numpy数组:

那么为什么我们会去这些长度来使用numpy来处理我们的数组?有许多论据为什么,所有这些都归结为这两个性能效益:与普通Python相比,Numpy为a)对于计算机和b)更快地为程序员更快。

更快的计算机

当您使用数百万个数据点处理高维数据帧时,您发现处理速度大大变化了框架。为了优化性能,Numpy用C - 一种强大的较低级别编程语言编写。Python本身也被写入C并允许C扩展。

虽然Python列表被实现为指向不同内存位置的指针集合,但C存储连续内存中的阵列。这意味着我们可以更轻松地访问C型数据帧的元素!每当我们在C(或NUMPY中)中创建一个数组时,NUMPY扩展代码保留内存中的空间,以确保它可以连续地存储数据。

更快的程序员

当然,大阵列的更快计算也可以节省程序员时间。同样,Numpy通过为矩阵操作提供一系列有用的功能来节省我们的编码时间。假设例如要划分矩阵的划分。您必须在Python中编写嵌套的循环以实现这一目标。但是在Numpy中,这就是它所需要的一切:

相当优雅,不是吗?在下一节中,我们将向您展示您可以使用Numpy阵列进行的更多酷炫的事情 - 从Matrix算术到从头开始创建大型数组。

什么有用的numpy阵列操作?

矩阵算术

想象一下,你的朋友克莱尔搬到了一个偏远的岛屿,并希望通过向您发送过去的六个月的平均气温清单来加入她。唉,你的朋友使用华氏,你只懂摄氏度!我们可以轻松地将她的价值转换为我们使用numpy理解的东西。

看起来我们应该开始包装我们的行李......请注意,这种类型的操作并不像普通的Python一样轻松执行。当您尝试在Python列表上执行相同的两个操作时,您将收到错误。那是因为numpy隐含地使用广播,意味着它在内部将Scalar值转换为数组。让我们来看看更多有用的Numpy数组操作。

阵列生成

除了我们上面看到的方法,还有一些用于生成Numpy阵列的功能。np.ones生成满满1s的矩阵。刚刚通过所需矩阵的形状:

同样,NP.Zeros生成满满0s的数组:

如果您想使用其他号码填充您的数组,请使用np.full。第一个参数再次是阵列的形状;第二个是您想要填充它的价值。

有时,您需要使用大矩阵,但不会关注细胞内的确切值(例如,当您想尝试使用玩具数据时的代码)。在这种情况下,NP.Random来到你的帮助。您可以从一定范围的数量生成随机整数的数组,或者您可以使用浮点数填充矩阵的单元格。

在第一个示例中,我们讲述Numpy以生成具有两行的矩阵,三列填充有0到100之间的整数。在第二个中,Numpy创建了一个具有相同尺寸的阵列,这次从0到1之间的均匀分布采样。。

学到更多

我们相信您能够拿起关于Numpy阵列的一两件事。但是,您将学习作为Python程序员。

看看我们的编程纳米迪格格介绍188金宝搏安不安全在像Web和App开发这样的令人兴奋的领域做好准备,机器学习数据科学AI.

开始学习