如何按指定区间分割数组并提取对应区间内的元素?
从NumPy数组中提取指定区间内的元素
给定一个NumPy数组,需要从中提取出落在多个指定区间内的元素,示例如下:
输入代码
import numpy as np x = np.linspace(0,10,51) intervals = [[2, 2.5], [8.1, 9]]
期望输出
[[2, 2.2, 2.4], [8.2, 8.4, 8.6, 8.8]]
解决方案
可以通过列表推导式结合NumPy的布尔索引实现需求:遍历每个区间,生成布尔掩码筛选符合条件的元素,最后转换为普通列表即可。
实现代码:
import numpy as np x = np.linspace(0,10,51) intervals = [[2, 2.5], [8.1, 9]] # 遍历区间筛选元素并转为列表 result = [x[(x >= low) & (x <= high)].tolist() for low, high in intervals] print(result)
说明
(x >= low) & (x <= high):生成布尔数组,标记数组x中每个元素是否处于当前区间内x[布尔数组]:通过布尔索引提取符合条件的元素.tolist():将NumPy数组转换为普通Python列表,得到嵌套列表格式的结果
内容的提问来源于stack exchange,提问作者user1342516
相关产品推荐
相关产品推荐

