Numpy供应一个多维数组工具和其他派生数组,如掩码数组或掩码多维数组。

代码详解:Numpy——通往人工智能的大年夜门_数组_年夜众 AI快讯

为什么利用Numpy?

Numpy模块供应一个ndarray工具,我们可以用这个工具来对任意维度的数组实行操作。
ndarray代表N维数组,个中N是任意数字。
这意味着Numpy数组可以是任意维度的数组。

与Python列表比较,Numpy有很多优点。
我们可以对Numpy数组实行高性能操作,例如:

1. 数组成员排序

2. 数学和逻辑运算

3. 输入/输出功能

4. 统计和线性代数运算

如何安装Numpy?

想要安装Numpy,须要在电脑系统上安装Python和Pip。

在Windows操作系统上实行以下命令:

pip install numpy

现在可以像这样在脚本中导入Numpy:

import numpy

添加数组元素

你可以利用NumPy模块的append()方法添加一个NumPy数组元素。
append的利用操作如下:

numpy.append(array, value, axis)

这些值将附加在数组的末端,新的ndarray将与上面所示的新值和旧值一起返回。

axis是一个可选的整数,用于定义数组的显示办法。
如果没有指定axis,数组构造将被展平,如你稍后将看到的一样。

请看下面的示例,首先创建一个数组,然后利用append方法向该数组添加更多值:

a = numpy.array([1, 2, 3])newArray = numpy.append (a, [10, 11, 12])

添加列

利用Numpy的append()方法插入列。

请看下面的示例,创建了一个二维数组并插入了两列:

a = numpy.array([[1, 2, 3], [4, 5, 6]])b = numpy.array([[400], [800]])newArray = numpy.append(a, b, axis = 1)

如果未利用axis属性,则输出如下:

这便是数组构造的扁平化过程。

在NumPy中,还可以利用insert()方法插入元素或列。
insert()和append()两种方法之间的差异在于我们在利用insert()方法时,可以指定要在哪个索引处添加元素,而append()方法则会在数组末端添加一个值。

请看以下示例:

a = numpy.array([1, 2, 3])newArray = numpy.insert(a, 1, 90)

这里,insert()方法在索引1处添加元素。
请记住数组索引从0开始。

添加行

在本节中,我们将利用append()方法向数组添加行。
此方法就像在数组中添加元素一样大略。
请看以下示例:

a = numpy.array([[1, 2, 3], [4, 5, 6]])newArray = numpy.append(a, [[50, 60, 70]], axis = 0)

删除元素

可以利用NumPy模块的delete()方法删除NumPy数组元素,以下示例对此进行了演示:

a = numpy.array([1, 2, 3])newArray = numpy.delete(a, 1, axis = 0)

输出如下:

在上面的例子中,可以看到一个单维数组。
delete()方法从数组中删除索引1处的元素。

删除行

同样,可以利用delete()方法删除行。

请看以下示例,从二维数组中删除了一行:

a = numpy.array([[1, 2, 3], [4, 5, 6], [10, 20, 30]])newArray = numpy.delete(a, 1, axis = 0)

在delete()方法中,首先给出数组,然后给出要删除元素的索引。
在上面的示例中,删除索引为1的第二个元素。

检讨 NumPy 数组是否为空值

利用size方法得出数组中元素的总数。

不才面的示例中,我们将会利用一个if语句,该语句通过ndarray.size去检讨数组中是否有元素,个中ndarray是任意给定的NumPy数组:

import numpya = numpy.array([1, 2, 3])if(a.size == 0):print(\"大众The given Array is empty\"大众)

其他:

print(\公众The array = \"大众, a)

输出如下:

在上面的代码中,有三个元素,因此这个数组不是空的,if条件将返回false。

如果没有元素,if条件将变为true,并将显示空缺数组。

如果我们的数组即是:

a = numpy.array([])

上述代码的输出如下:

查找值的索引

利用Numpy模块的where()方法查找值的索引,如下例所示:

import numpya = numpy.array([1, 2, 3, 4, 5])print(\"大众5 is found at index: \"大众, numpy.where(a == 5))

Where()方法还将返回数据类型。
如果你只想获取索引,请利用以下代码:

import numpya = numpy.array([1, 2, 3, 4, 5])index = numpy.where(a == 5)print(\"大众5 is found at index: \"大众, index[0])

NumPy 数组切片

数组切片是从给天命组中提取子集的过程。
可以利用冒号运算符对数组进行切片,并指天命组索引的出发点和终点,例如:

array[from:to]

下面的示例突出了这点:

import numpya = numpy.array([1, 2, 3, 4, 5, 6, 7, 8])print(\"大众A subset of array a = \公众, a[2:5])

这里我们提取索引2到索引5中的元素。
输出将是:

如果想要提取末了三个元素,可以通过利用负片切片来完成此操作,如下所示:

import numpya = numpy.array([1, 2, 3, 4, 5, 6, 7, 8])print(\"大众A subset of array a = \"大众, a[-3:])

将函数运用于所有数组元素

不才面的示例中,我们将创建一个lambda函数,在该函数上通报数组以将其运用于所有元素:

import numpyaddition = lambda x: x + 2a = numpy.array([1, 2, 3, 4, 5, 6])print(\公众Array after addition function: \公众, addition(a))

在此示例中,创建了一个lambda函数,它将每个元素递增2个值。

NumPy 数组长度

你可以通过利用NumPy模块的size属性来获取NumPy数组的长度,如下例所示:

import numpya = numpy.array([1, 2, 3, 4, 5, 6])print(\"大众The size of array = \"大众, a.size)

从列表中创建numpy数组

Python中的列表是方括号之间的多个元素。

假设有一个列表:

l = [1, 2, 3, 4, 5]

现在要根据这个列表创建一个数组,我们将利用NumPy模块的array()方法:

import numpyl = [1, 2, 3, 4, 5]a = numpy.array(l)print(\公众The NumPy array from Python list = \公众, a)

同样地,通过利用array()方法,我们可以根据元组创建一个NumPy数组。
一个元组包含多个用圆括号括起来的元素,如下所示:

import numpyt = (1, 2, 3, 4, 5)a = numpy.array(t)print(\"大众The NumPy array from Python Tuple = \"大众, a)

将NumPy数组转换为列表

想要将数组转换为列表,我们可以利用NumPy模块的tolist()方法。

请看以下代码:

import numpya = numpy.array([1, 2, 3, 4, 5])print(\公众Array to list = \"大众, a.tolist())

在这段代码中,我们大略地利用了能将数组转换为列表的tolist()方法。
然后将新创建的列表打印到输出屏幕。

从NumPy 到CSV

利用NumPy模块的save***()方法将数组导出为CSV文件,如下例所示:

import numpya = numpy.array([1, 2, 3, 4, 5])numpy.save***(\"大众myArray.csv\公众, a)

代码将在Python代码文件存储位置天生一个CSV文件。
你还可以指定其路径。
运行脚本时,文件将天生如下代码:

该文件的内容如下:

你可以删除额外的零添补,如下所示:

numpy.save***(\"大众myArray.csv\"大众, a,fmt='%.2f')

将 NumPy 数组排序

可以利用Numpy模块的sort()方法对numpy数组进行排序:

Sort()函数采取一个可选的axis(整数),默认值为-1。
此axis指定要对数组进行排序的axis。
-1表示数组将根据末了一个axis进行排序。

请看以下示例:

import numpya = numpy.array([16, 3, 2, 6, 8, 10, 1])print(\公众Sorted array = \公众, numpy.sort(a))

在本例中,我们在print语句中利用了sort()方法。
数组“a”被通报给排序函数。
其输出如下:

规范化数组

规范化数组是将数组值设置为某个定义范围内的过程。
例如,我们可以说我们想要规范化一个介于-1和1之间的数组,依此类推。

规范化公式如下:

x = (x – xmin) / (xmax – xmin)

现在将这个公式运用于数组,对它进行规范化操作。
要查找数组中的最大和最小项,分别利用NumPy的max()和min()方法。

import numpyx= numpy.array([400, 800, 200, 700, 1000, 2000, 300])xmax = x.max()xmin = x.min()x = (x - xmin)/(xmax - xmin)print(\"大众After normalization array x = \n\"大众, x)

数组索引

索引指的是数组的一个元素。
在以下示例中,我们在单维和二维数组中都利用了索引:

import numpya = numpy.array([20, 13, 42, 86, 81, 9, 11])print(\公众Element at index 3 = \"大众, a[3])

现在利用二维数组进行索引:

import numpya = numpy.array([[20, 13, 42], [86, 81, 9]])print(\"大众Element at index a[1][2] = \"大众, a[1][2])

索引[1] [2]表示第二行和第三列(索引从0开始)。
因此,我们在输出屏幕上能看到9个索引。

将numpy数组附加到另一个数组上

你可以利用append()方法将一个NumPy数组附加到另一个NumPy数组上。
请看以下示例:

import numpya = numpy.array([1, 2, 3, 4, 5])b = numpy.array([10, 20, 30, 40, 50])newArray = numpy.append(a, b)print(\公众The new array = \公众, newArray)

在本例中,我们创建一个numpy数组“a”,然后创建另一个名为“b”的数组。
然后我们利用append()方法通报两个数组。
当数组“b”作为第二个参数通报时,将被添加到数组“a”的末端。

正如我们所见,利用Numpy数组非常大略。
在利用大多数机器学习库时,Numpy数组非常主要。
以是,我们可以说Numpy是通往人工智能的大门。