NumPy 比较和过滤数组

NumPy 比较和过滤数组

NumPy库有各种工具可以对数组进行比较和过滤。数组的比较将根据数组的维度逐个元素逐行和逐列进行。当我们想要获取特定的数组元素时,我们可以应用过滤。

NumPy是Numerical python的缩写,用于在多维数组和矩阵上执行数学和科学计算。NumPy提供了各种函数和方法来执行数组的过滤和比较。

比较NumPy数组

以下是NumPy库中可用于执行数组比较操作的方法:

  • equal()

  • greater()

  • array_equal()

  • all_close()

使用equal()方法

NumPy库中的equal()方法逐个元素比较两个NumPy数组,并返回每个比较的布尔值。具体而言,当将第一个数组中的一个元素与第二个数组中对应的元素进行比较时,如果它们相等,则返回True值,否则返回False值。这个过程针对这两个数组中的所有元素重复进行。

得到的所有这些布尔值存储在另一个数组中,并作为输出显示。如果输出数组包含全部为True的值,则这些数组被称为相同的,否则为False。

示例

让我们看一个简单的示例,使用equal()方法逐个元素比较两个NumPy数组:

import numpy as np
a = np.array([1,2,3])
b = np.array([34,2,10])
out = np.equal(a,b)
print("The Boolean output of the equal function:",out)

输出

以下是应用于数组的equal函数的输出,我们可以观察到布尔输出。

The Boolean output of the equal function: [False True False]

使用greater()方法

greater()方法用于逐元素比较任意两个NumPy数组。该方法返回True,如果第一个数组中的元素大于第二个数组中的对应元素;否则返回False。

示例

在这个例子中,我们使用greater()方法来比较两个NumPy数组的元素。每次比较后的返回值储存在另一个数组中。

import numpy as np
a = np.array([1,2,3])
b = np.array([34,2,10])
out = np.greater(a,b)
print("The Boolean output of the greater function:",out)

输出

当对两个数组应用greater函数时,以下是输出结果。

The Boolean output of the greater function: [False False False]

使用array_equal()方法

array_equal()方法用于逐个元素比较两个NumPy数组,以检查这两个数组是否相等。如果两个数组相等,则返回True;否则返回False。

注意:只有当数组中的所有元素都相等时,才认为这两个数组相等。

示例

当我们将两个形状和大小相同的数组传递给array_equal()函数时,输出结果将为布尔格式。

import numpy as np
a = np.array([1,2,3])
b = np.array([34,2,10])
out = np.array_equal(a,b)
print("The Boolean output of the array_equal function:",out)

输出

以下是array_equal()函数的输出。

The Boolean output of the array_equal function: False

使用allclose()方法

allclose()方法按元素比较两个NumPy数组,并检查哪些元素彼此接近。

示例

在此示例中,如果将两个输入数组传递给allclose()函数,则在元素接近时返回true,否则返回false。

import numpy as np
a = np.array([1,2,3])
b = np.array([3,4,2])
out = np.allclose(a,b)
print("The Boolean output of the allclose function:",out)

输出

下面是allclose()函数的输出结果,返回布尔值。

The Boolean output of the allclose function: False

筛选NumPy数组

以下是对数组执行筛选操作的函数。

  • 布尔索引

  • where()方法

  • extract()方法

  • delete()方法

布尔索引

布尔索引允许我们根据布尔条件从数组中选择元素,即仅提取满足布尔条件的元素。这个条件需要满足数组元素,也被称为布尔掩码。

示例

在这个示例中,我们尝试使用布尔索引检索数组的筛选元素。要筛选元素,我们首先创建一个布尔掩码,条件为a > 2,然后提取满足该条件的元素。

import numpy as np
a = np.array([34,2,10])
mask = a > 2
filtered_array = a[mask]
print("The output of the Boolean indexing:",filtered_array)

输出

以下是对数组应用布尔索引的输出。

The output of the Boolean indexing: [34 10]

使用where()方法

where()方法用于根据用户提供的条件从数组中筛选元素。它返回满足给定条件的数组元素的索引。

示例

以下示例演示了如何使用where()方法筛选NumPy数组中的元素。在这里,我们将条件(a>=2)作为参数传递给where()方法,只有满足此条件的值才会在输出数组中显示。

import numpy as np
a = np.array([34,2,10])
filtered_array = np.where(a <=2)
print("The output of the where function :",filtered_array)

输出

下面是应用”where”函数到输入数组的输出结果。

The output of the where function : (array([1]),)

使用extract()方法

extract()方法会提取满足给定条件的所有元素,正如其名称所示。

示例

在这里,我们将一个数组和条件作为参数传递给extract()函数。预计会提取满足给定条件的数组中的元素。

import numpy as np
a = np.array([34,2,10])
filtered_array = np.extract(a <=2, a)
print("The output of the extract function :",filtered_array)

输出

以下是对给定输入数组应用提取函数后的输出。

The output of the extract function : [2]

使用delete()方法

delete()方法用于根据用户指定的条件从NumPy数组中删除元素。

返回值将是根据条件删除给定数组中的元素后的数组。我们在这个方法中使用的条件参数是从where()方法获得的。

示例

在这个示例中,当我们将输入数组与条件(从where()方法获得的条件)一起传递给delete()方法时,满足给定条件的数组元素将被删除。

import numpy as np
a = np.array([34,2,10])
filtered_array = np.delete(a, np.where(a == 2))
print("The output of the delete function :",filtered_array)

输出

以下是delete()函数的输出结果。

The output of the delete function : [34 10]

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程