本文介绍了NumPy的基础知识,NumPy是使用Python进行科学计算的软件包。
我们将在此处介绍几类基本的数组操作:
- · 创建NumPy数组
- · 重塑数组
- · NumPy的数学运算
- · 数组的索引和切片
- · 遍历数组
首先,让我们将NumPy导入为np。 这使我们可以使用快捷方式np来引用NumPy。
现在,使用array()函数创建第一个数组。
通常,可以将Python中以数组状结构排列的数值数据转换为数组。 最明显的例子是列表和元组。
shape属性用于返回数组的当前形状。 它是整数的元组,给出了相应数组维的长度。
对于arange()函数,我们传入一个开始,一个停止和一个步长,它返回给定间隔内的均匀间隔的值。
因此,假设我们想将此数字数组转换为三乘五数组。 我们可以使用重塑来做到这一点。
linspace()函数类似于arange,不同之处在于我们告诉它要返回多少个数字,并且它将相应地分割间隔。
我们可以使用resize返回具有指定形状的新数组。
NumPy提供了几个函数来创建具有给定形状,类型和初始化值的数组。 ones()返回一个1的数组,zeros()返回一个0的数组。 eye()返回一个对角线为1的数组,其他地方为零,并且diag()构造一个对角线数组。
要创建具有重复值的数组,我们可以传入重复列表,也可以使用Numpy repeat()函数。
我们还可以使用vstack()和hstack()函数组合数组以创建新数组,例如分别按垂直顺序(行方向)和水平顺序(列方向)堆叠数组。
现在,让我们看一下Numpy数组可以执行的一些操作! 执行加法,减法,乘法和除法非常简单,将数组中的所有数字均乘幂即可。
dot()函数返回两个数组的点积。 对于二维向量,它等效于矩阵乘法。 对于一维数组,它是向量的内积。
让我们使用先前的数组y及其平方值创建一个新数组。 该数组的形状为(2,3)。 我们还可以使用T方法对数组进行转置,置换数组的尺寸。转置后的数组的形状为(3,2)。
NumPy还具有许多有用的数学函数供我们使用。 sum()函数返回给定轴上的数组元素之和。 max()返回数组的最大值或沿轴的最大值。 min()返回数组的最小值或沿轴的最小值。 mean()返回数组元素的平均值。 默认情况下,平均值取自展平的数组,否则取自指定的轴。
要找到最大值或最小值的索引,可以使用argmax()和argmin()。
让我们了解如何编制索引和切片!
我们首先创建一个数组,其平方为0到12。我们可以使用方括号表示法来获取特定索引处的值,而使用冒号表示法来获取范围。 请参阅以下示例。
让我们从数组的最后三个元素中分得一杯slice。
在这里,我们从数组的末尾到数组的开头开始第四行,然后倒数三行。
下面的示例显示了它如何扩展到二维数组。
本示例返回一个数组,该数组是原始数组中大于31的元素。
以下分配将这些元素带入我们原始数组中,并将它们分配为新值0。
让我们创建一个新的数组r2,它是数组r的一部分。 现在,让我们将该数组的所有元素设置为一个。 当我们查看数组r的原始版本时,我们可以看到r中r2中的切片也已更改。
如果我们希望创建一个不会更改原始数组的r数组的副本,则可以使用NumPy的copy()函数。 我们看到,如果将r_copy中所有元素的值更改为5,则r保持不变。
最后,让我们看看如何遍历数组。
如果我们希望遍历两个数组,则可以使用zip()。 请参阅以下示例:
如果您想了解有关NumPy的更多信息:
有关NumPy中功能和模块的更多详细信息,请参见https://docs.scipy.org/doc/中的功能和模块。
本教程中包含更多示例:
谢谢阅读。
(本文翻译自Nesrine Ammar的文章《A beginner's guide to NumPy》,参考:https://medium.com/@nesrine.ammar/a-beginners-guide-to-numpy-fcc012841ac5)