Numpy 比较/逻辑运算

NumPy 提供了几种可以在 NumPy 数组上执行的比较和逻辑运算。

NumPy 的比较运算符允许对两个数组进行逐元素比较。

同样,逻辑运算符执行布尔代数,这是一个处理 TrueFalse 语句的代数分支。

首先,我们将讨论比较运算,然后讨论 NumPy 中的逻辑运算。


NumPy 比较运算符

NumPy 提供了各种逐元素比较运算符,可以比较两个 NumPy 数组的元素。

这是 NumPy 中各种比较运算符的列表。

运算符 描述
< (小于) 如果第一个数组的元素小于第二个数组,则返回 True
<= (小于或等于) 如果第一个数组的元素小于或等于第二个数组,则返回 True
> (大于) 如果第一个数组的元素大于第二个数组,则返回 True
>= (大于或等于) 如果第一个数组的元素大于或等于第二个数组,则返回 True
== (等于) 如果第一个数组的元素等于第二个数组,则返回 True
!= (不等于) 如果第一个数组的元素不等于第二个数组,则返回 True

接下来,我们将看到这些运算符的示例。


示例 1:NumPy 比较运算符

import numpy as np

array1 = np.array([1, 2, 3])
array2 = np.array([3, 2, 1])

# less than operator
result1 = array1 < array2
print("array1 < array2:",result1)    # Output: [ True False False]

# greater than operator
result2 = array1 > array2
print("array1 > array2:",result2)    # Output: [False False  True]

# equal to operator
result3 = array1 == array2
print("array1 == array2:",result3)    # Output: [False  True False]

输出

array1 < array2: [ True False False]
array1 > array2: [False False  True]
array1 == array2: [False  True False]

在这里,我们可以看到比较运算符的输出也是一个数组,其中每个元素根据数组元素的比较是 TrueFalse


NumPy 比较函数

NumPy 还提供了内置函数来执行所有比较运算。

例如,less() 函数在第一个数组的每个元素都小于第二个数组的对应元素时返回 True

以下是所有内置比较函数的列表。

函数 描述
less() 如果第一个值小于第二个值,则逐元素返回 True
less_equal() 如果第一个值小于或等于第二个值,则逐元素返回 True
greater() 如果第一个值大于第二个值,则逐元素返回 True
greater_equal() 如果第一个值大于或等于第二个值,则逐元素返回 True
equal() 如果两个值相等,则逐元素返回 True
not_equal() 如果两个值不相等,则逐元素返回 True

接下来,我们将看到所有这些函数的一个示例。


示例 2:NumPy 比较函数

import numpy as np

array1 = np.array([9, 12, 21])
array2 = np.array([21, 12, 9])

# use of less()
result = np.less(array1, array2)
print("Using less():",result)    # Output: [ True False False]

# use of less_equal()
result = np.less_equal(array1, array2)
print("Using less_equal():",result)     # Output: [ True  True False]

# use of greater()
result = np.greater(array1, array2)
print("Using greater():",result)    # Output: [False False  True]

# use of greater_equal()
result = np.greater_equal(array1, array2)
print("Using greater_equal():",result)    # Output: [False  True  True]

# use of equal()
result = np.equal(array1, array2)
print("Using equal():",result)    # Output: [False  True False]

# use of not_equal()
result = np.not_equal(array1, array2)
print("Using not_equal():",result)    # Output: [ True False  True]

输出

Using less(): [ True False False]
Using less_equal(): [ True  True False]
Using greater(): [False False  True]
Using greater_equal(): [False  True  True]
Using equal(): [False  True False]
Using not_equal(): [ True False  True]

NumPy 逻辑运算

如前所述,逻辑运算符执行布尔代数;这是一个处理 TrueFalse 语句的代数分支。

逻辑运算是逐元素执行的。例如,如果我们有两个形状相同的数组 x1x2,则逻辑运算符的输出也将是具有相同形状的数组。

这是 NumPy 中各种逻辑运算符的列表

运算符 描述
logical_and 计算 x1 AND x2 的逐元素真值
logical_or 计算 x1 OR x2 的逐元素真值
logical_not 计算 NOT x 的逐元素真值

接下来,我们将看到这些运算符的示例。


示例 3:NumPy 逻辑运算

import numpy as np

x1 = np.array([True, False, True])
x2 = np.array([False, False, True])

# Logical AND
print(np.logical_and(x1, x2)) # Output: [False False  True]

# Logical OR
print(np.logical_or(x1, x2)) # Output: [ True False  True]

# Logical NOT
print(np.logical_not(x1)) # Output: [False  True False]

在这里,我们对包含布尔值的两个数组 x1x2 执行了逻辑运算。

它分别使用 np.logical_and()np.logical_or()np.logical_not() 演示了逻辑 ANDORNOT 运算。

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战