NumPy 提供了几种可以在 NumPy 数组上执行的比较和逻辑运算。
NumPy 的比较运算符允许对两个数组进行逐元素比较。
同样,逻辑运算符执行布尔代数,这是一个处理 True
和 False
语句的代数分支。
首先,我们将讨论比较运算,然后讨论 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]
在这里,我们可以看到比较运算符的输出也是一个数组,其中每个元素根据数组元素的比较是 True
或 False
。
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 逻辑运算
如前所述,逻辑运算符执行布尔代数;这是一个处理 True
和 False
语句的代数分支。
逻辑运算是逐元素执行的。例如,如果我们有两个形状相同的数组 x1
和 x2
,则逻辑运算符的输出也将是具有相同形状的数组。
这是 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]
在这里,我们对包含布尔值的两个数组 x1 和 x2 执行了逻辑运算。
它分别使用 np.logical_and()
、np.logical_or()
和 np.logical_not()
演示了逻辑 AND、OR 和 NOT 运算。