- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境配置
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 数组的创建和操作
- NumPy - 数组创建例程
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 数组迭代
- NumPy - 数组重塑
- NumPy - 数组拼接
- NumPy - 数组堆叠
- NumPy - 数组分割
- NumPy - 数组扁平化
- NumPy - 数组转置
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy 数组属性和操作
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步长
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组操作
- NumPy - 交换数组轴
- NumPy - 字节交换
- NumPy - 副本和视图
- NumPy - 元素级数组比较
- NumPy - 数组过滤
- NumPy - 数组连接
- NumPy - 排序、搜索和计数函数
- NumPy - 数组搜索
- NumPy - 数组并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高级操作
- NumPy - 数组排序
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- Numpy - 加载数组
- Numpy - 保存数组
- NumPy - 向数组追加值
- NumPy - 交换数组列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 缺失数据插补
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行矢量化
- NumPy - 数组的内存布局
- Numpy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位数
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy - 元素级数组比较
NumPy 中的元素级比较
NumPy 中的元素级比较允许您将一个数组的每个元素与另一个数组的对应元素或标量值进行比较。
比较操作贯穿整个数组,结果是一个形状相同的新的布尔数组(True 或 False),指示比较的结果。
基本的元素级比较运算
NumPy 支持多种可以逐元素执行的基本比较运算。这些包括:
- 相等 (==):检查两个数组(或一个数组和一个标量)中的元素是否相等。
- 不相等 (!=):检查元素是否不相等。
- 大于 (>):检查第一个数组中的元素是否大于第二个数组或标量的对应元素。
- 小于 (<):检查第一个数组中的元素是否小于第二个数组或标量的对应元素。
- 大于等于 (>=):检查元素是否大于或等于第二个数组或标量的对应元素。
- 小于等于 (<=):检查元素是否小于或等于第二个数组或标量的对应元素。
示例
在下面的示例中,每个比较操作都在“array1”和“array2”的对应元素之间执行:
import numpy as np # Creating two arrays for comparison array1 = np.array([10, 20, 30, 40, 50]) array2 = np.array([15, 20, 25, 40, 55]) # Performing element-wise comparisons equality = array1 == array2 inequality = array1 != array2 greater_than = array1 > array2 less_than = array1 < array2 greater_equal = array1 >= array2 less_equal = array1 <= array2 # Displaying the results print("Equality:", equality) print("Inequality:", inequality) print("Greater than:", greater_than) print("Less than:", less_than) print("Greater than or equal to:", greater_equal) print("Less than or equal to:", less_equal)
结果是一个布尔数组,指示每个比较的结果,如下所示:
Equality: [False True False True False] Inequality: [ True False True False True] Greater than: [False False True False False] Less than: [ True False False False True] Greater than or equal to: [False True True True False] Less than or equal to: [ True True False True True]
与标量的元素级比较
您还可以将整个数组与单个标量值进行比较。标量值与数组的每个元素进行比较,结果是一个形状相同的布尔数组。
示例
在这个示例中,"array1" 的每个元素都与 "30" 进行比较,结果指示每个元素是否大于 "30":
import numpy as np # Creating two arrays for comparison array1 = np.array([10, 20, 30, 40, 50]) # Comparing array elements with a scalar value scalar_value = 30 comparison_result = array1 > scalar_value print("Array elements greater than 30:", comparison_result)
这将产生以下结果:
Array elements greater than 30: [False False False True True]
链接多个比较
NumPy 中链接多个比较涉及使用逻辑运算符组合多个比较运算。例如,您可能需要检查数组的元素是否落在特定范围内,或者是否满足多个条件。
这些运算按顺序计算,结果是一个布尔数组,其中每个元素都指示组合条件是否满足。
在 NumPy 中,您可以使用逻辑运算符,如&(与)、|(或)和~(非)来链接比较。链接比较时,请确保每个比较运算都用括号括起来,以保持正确的运算顺序。以下是链接比较的通用语法:
(condition1) & (condition2) & ... & (conditionN)
示例:链接比较
在下面的示例中,我们检查数组的元素是否在特定范围内,以及是否满足其他条件:
import numpy as np # Creating an array array = np.array([5, 10, 15, 20, 25, 30]) # Chaining multiple comparisons result = (array > 10) & (array < 25) & (array % 5 == 0) # Displaying the results print("Array:", array) print("Result of Chained Comparisons:", result)
以下是上述代码的输出:
Array: [ 5 10 15 20 25 30] Result of Chained Comparisons: [False False True True False False]
示例:与标量值的链接
在这里,比较检查数组的每个元素是否在 "3" 和 "7" 之间(包括 "3" 和 "7"):
import numpy as np # Creating an array array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # Chaining comparisons with scalar values result = (array >= 3) & (array <= 7) # Displaying the results print("Array:", array) print("Result of Chained Comparisons with Scalar:", result)
获得的输出如下所示:
Array: [1 2 3 4 5 6 7 8 9] Result of Chained Comparisons with Scalar: [False False True True True True True False False]
使用 where() 函数进行条件选择
np.where() 函数使用元素级比较的结果从两个数组(或值)中选择性地选择元素。这对于根据条件过滤或替换元素特别有用。
示例
在这个示例中,大于 "25" 的 "array1" 元素被保留,而所有其他元素被替换为 "0":
import numpy as np # Creating an array array1 = np.array([10, 20, 30, 40, 50]) # Using np.where to replace elements based on a condition replaced_array = np.where(array1 > 25, array1, 0) print("Replaced array:", replaced_array)
执行上述代码后,我们将获得以下输出:
Replaced array: [ 0 0 30 40 50]
使用比较查找最大和最小元素
元素级比较可以与np.maximum()和np.minimum()等函数结合使用,以查找两个数组之间的最大值或最小值。
示例
在这个示例中,我们使用 np.maximum() 函数和 np.minimum() 函数来比较 "array1" 和 "array2" 的元素,分别返回最大值和最小值的数组:
import numpy as np # Creating an array array1 = np.array([10, 20, 30, 40, 50]) array2 = np.array([15, 20, 25, 40, 55]) # Finding maximum and minimum values between two arrays max_array = np.maximum(array1, array2) min_array = np.minimum(array1, array2) print("Maximum values:", max_array) print("Minimum values:", min_array)
产生的结果如下:
Maximum values: [15 20 30 40 55] Minimum values: [10 20 25 40 50]